all: update build scripts to fix AIX XL/C compatibility

This commit is contained in:
Ben Huntsman 2020-05-04 19:52:02 -07:00 committed by Russ Cox
parent c3c9c7b6ae
commit 4982d4ebc3
6 changed files with 35 additions and 11 deletions

19
bin/9c
View file

@ -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__"
;;
*)

13
bin/9l
View file

@ -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)$'
`

View file

@ -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 */

View file

@ -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

2
src/mk.AIX-power Normal file
View file

@ -0,0 +1,2 @@
INSTALL=installbsd

View file

@ -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 ..