diff options
author | Ben Huntsman <BHuntsman@mail2.cu-portland.edu> | 2020-05-04 19:52:02 -0700 |
---|---|---|
committer | Russ Cox <rsc@swtch.com> | 2020-05-07 20:36:03 -0400 |
commit | 4982d4ebc3bd4924d73f2f2ad584309e9ec97435 (patch) | |
tree | 64391bc34075ce7fe5d9a2f6ad50c71f27e428c3 | |
parent | c3c9c7b6ae7c6a8bf9c6d040d3af89e020fd92de (diff) | |
download | plan9port-4982d4ebc3bd4924d73f2f2ad584309e9ec97435.tar.gz plan9port-4982d4ebc3bd4924d73f2f2ad584309e9ec97435.tar.bz2 plan9port-4982d4ebc3bd4924d73f2f2ad584309e9ec97435.zip |
all: update build scripts to fix AIX XL/C compatibility
-rwxr-xr-x | bin/9c | 19 | ||||
-rwxr-xr-x | bin/9l | 13 | ||||
-rw-r--r-- | include/u.h | 4 | ||||
-rw-r--r-- | src/cmd/mkfile | 2 | ||||
-rw-r--r-- | src/mk.AIX-power | 2 | ||||
-rw-r--r-- | src/mkmk.sh | 6 |
6 files changed, 35 insertions, 11 deletions
@@ -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 ;; @@ -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__" ;; *) @@ -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 @@ -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 @@ -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)$' ` diff --git a/include/u.h b/include/u.h index 3bea890e..137b6161 100644 --- a/include/u.h +++ b/include/u.h @@ -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 @@ -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 */ diff --git a/src/cmd/mkfile b/src/cmd/mkfile index bc8b5a0d..2d0c657e 100644 --- a/src/cmd/mkfile +++ b/src/cmd/mkfile @@ -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 diff --git a/src/mk.AIX-power b/src/mk.AIX-power new file mode 100644 index 00000000..39f8ee8a --- /dev/null +++ b/src/mk.AIX-power @@ -0,0 +1,2 @@ +INSTALL=installbsd + diff --git a/src/mkmk.sh b/src/mkmk.sh index dae87ddf..0d52d3f9 100644 --- a/src/mkmk.sh +++ b/src/mkmk.sh @@ -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 .. |