tall: update build scripts to fix AIX XL/C compatibility - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 4982d4ebc3bd4924d73f2f2ad584309e9ec97435
 (DIR) parent c3c9c7b6ae7c6a8bf9c6d040d3af89e020fd92de
 (HTM) Author: Ben Huntsman <BHuntsman@mail2.cu-portland.edu>
       Date:   Mon,  4 May 2020 19:52:02 -0700
       
       all: update build scripts to fix AIX XL/C compatibility
       
       Diffstat:
         M bin/9c                              |      19 ++++++++++++++++++-
         M bin/9l                              |      13 +++++++------
         M include/u.h                         |       4 ++--
         M src/cmd/mkfile                      |       2 +-
         A src/mk.AIX-power                    |       2 ++
         M src/mkmk.sh                         |       6 +++++-
       
       6 files changed, 35 insertions(+), 11 deletions(-)
       ---
 (DIR) diff --git a/bin/9c b/bin/9c
       t@@ -82,6 +82,23 @@ useclang()
                cflags="$ngflags -g"
        }
        
       +usexlc()
       +{
       +        cc=${CC9:-xlc_r}
       +        ngflags=" \
       +                -c \
       +                -O0 \
       +                -qmaxmem=-1 \
       +                -qsuppress=1506-236 \
       +                -qsuppress=1506-358 \
       +                -qsuppress=1500-010 \
       +                -qsuppress=1506-224 \
       +                -qsuppress=1506-1300 \
       +                -qsuppress=1506-342 \
       +        "
       +        cflags="$ngflags -g -qfullpath"
       +}
       +
        tag="${SYSNAME:-`uname`}-${OBJTYPE:-`uname -m`}-${CC9:-cc}"
        case "$tag" in
        *DragonFly*gcc*|*BSD*gcc*)        usegcc ;;
       t@@ -120,7 +137,7 @@ case "$tag" in
                        cflags="$ngflags -g"
                        cflags="$cflags -D__sun__ -D__${s}__"
                        ;;
       -*AIX*)                usegcc
       +*AIX*)        usexlc
                        cflags="$ngflags -g -D__AIX__"
                        ;;
        *)
 (DIR) diff --git a/bin/9l b/bin/9l
       t@@ -61,8 +61,9 @@ case "$tag" in
                esac
                ;;
        *AIX*)
       -        ld=${CC9:-gcc}
       -        nmflags="-B"
       +        ld="${CC9:-xlc_r} -g -O0"
       +        nmflags="-A -B"
       +        extralibs="$extralibs -lpthread"
                ;;
        *)
                echo do not know how to link on "$tag" 1>&2
       t@@ -113,8 +114,8 @@ then
                then
                        a=`
                                nm $nmflags $ofiles |
       -                        grep '__p9l_autolib_[a-zA-Z0-9+-]*$' |
       -                        sed 's/.*__p9l_autolib_//' |
       +                        grep '__p9l_autolib_[a-zA-Z0-9+-]*' |
       +                        sed 's/.*__p9l_autolib_//; s/:.*//' |
                                sort -u
                        `
                        for i in $a
       t@@ -144,8 +145,8 @@ then
                                do
                                        b=`
                                                nm $lpath/lib$i.a 2>/dev/null |
       -                                        grep '__p9l_autolib_[a-zA-Z0-9+-]*$' |
       -                                        sed 's/.*__p9l_autolib_//' |
       +                                        grep '__p9l_autolib_[a-zA-Z0-9+-]*' |
       +                                        sed 's/.*__p9l_autolib_//; s/:.*//' |
                                                sort -u |
                                                egrep -v '^(thread|draw)$'
                                        `
 (DIR) diff --git a/include/u.h b/include/u.h
       t@@ -20,7 +20,7 @@ extern "C" {
        #define _NETBSD_SOURCE 1        /* NetBSD */
        #define _SVID_SOURCE 1
        #define _DEFAULT_SOURCE 1
       -#if !defined(__APPLE__) && !defined(__OpenBSD__)
       +#if !defined(__APPLE__) && !defined(__OpenBSD__) && !defined(__AIX__)
        #        define _XOPEN_SOURCE 1000
        #        define _XOPEN_SOURCE_EXTENDED 1
        #endif
       t@@ -33,7 +33,7 @@ extern "C" {
        #        define __LONG_LONG_SUPPORTED
        #endif
        #if defined(__AIX__)
       -#        define _XOPEN_SOURCE 1
       +#        define _XOPEN_SOURCE 600
        #endif
        #if defined(__APPLE__)
        #        define _DARWIN_NO_64_BIT_INODE        /* Snow Leopard */
 (DIR) diff --git a/src/cmd/mkfile b/src/cmd/mkfile
       t@@ -27,7 +27,7 @@ $PLAN9/bin/lex: $PLAN9/bin/yacc
        
        # This should not be necessary.
        $PLAN9/bin/yacc: $O.yacc
       -        install -c $O.yacc $PLAN9/bin/yacc
       +        $INSTALL -c $O.yacc $PLAN9/bin/yacc
        $O.yacc: yacc.$O
                $LD -o $target $prereq
        yacc.$O: yacc.c
 (DIR) diff --git a/src/mk.AIX-power b/src/mk.AIX-power
       t@@ -0,0 +1,2 @@
       +INSTALL=installbsd
       +
 (DIR) diff --git a/src/mkmk.sh b/src/mkmk.sh
       t@@ -211,5 +211,9 @@ echo cd `pwd`
        9c  word.c
        9c  unix.c
        9l -o o.mk arc.o archive.o bufblock.o env.o file.o graph.o job.o lex.o main.o match.o mk.o parse.o recipe.o rc.o rule.o run.o sh.o shell.o shprint.o symtab.o var.o varsub.o word.o unix.o 
       -install o.mk $PLAN9/bin/mk
       +if [ `uname` = AIX ]; then
       +        installbsd o.mk $PLAN9/bin/mk
       +else
       +        install o.mk $PLAN9/bin/mk
       +fi
        cd ..