9c, 9l: accept CC9FLAGS from config

Also, if CC9FLAGS includes -fsanitize=address (ASAN),
predefine PLAN9PORT_ASAN for use by programs that need
to know (mainly libthread).

The 9c script used to have a variable called ngflags, which
was ccflags except -g (ng stood for "no g"), but nothing needs
it split out anymore, so simplify to just ccflags.
This commit is contained in:
Russ Cox 2020-05-17 20:07:52 -04:00
parent 154140a22b
commit 9444b8e4bc
3 changed files with 39 additions and 18 deletions

34
bin/9c
View file

@ -4,7 +4,7 @@ test -f $PLAN9/config && . $PLAN9/config
usegcc()
{
cc=${CC9:-gcc}
ngflags=" \
cflags=" \
-O2 \
-c \
-Wall \
@ -24,7 +24,12 @@ usegcc()
"
# want to put -fno-optimize-sibling-calls here but
# that option only works with gcc3+ it seems
cflags="$ngflags -ggdb"
cflags="$cflags -ggdb"
cflags="$cflags $CC9FLAGS"
case "$cflags" in
*sanitize=address*)
cflags="$cflags -DPLAN9PORT_ASAN"
esac
}
quiet()
@ -60,7 +65,7 @@ quiet()
useclang()
{
cc=${CC9:-clang}
ngflags=" \
cflags=" \
-O2 \
-c \
-Wall \
@ -79,13 +84,19 @@ useclang()
-fsigned-char \
-fno-caret-diagnostics \
"
cflags="$ngflags -g"
cflags="$cflags -g"
cflags="$cflags $CC9FLAGS"
case "$cflags" in
*sanitize=address*)
cflags="$cflags -DPLAN9PORT_ASAN"
esac
}
usexlc()
{
cc=${CC9:-xlc_r}
ngflags=" \
cflags=" \
-c \
-O0 \
-qmaxmem=-1 \
@ -96,7 +107,8 @@ usexlc()
-qsuppress=1506-1300 \
-qsuppress=1506-342 \
"
cflags="$ngflags -g -qfullpath"
cflags="$cflags -g -qfullpath"
cflags="$cflags $CC9FLAGS"
}
tag="${SYSNAME:-`uname`}-${OBJTYPE:-`uname -m`}-${CC9:-cc}"
@ -105,14 +117,14 @@ case "$tag" in
*DragonFly*clang|*BSD*clang*) useclang ;;
*Darwin-x86_64*)
useclang
cflags="$ngflags -g3 -m64"
cflags="$cflags -g3 -m64"
;;
*Darwin*clang*)
useclang
cflags="$ngflags -g3 -m32"
cflags="$cflags -g3 -m32"
;;
*Darwin*) usegcc
cflags="$ngflags -g3 -no-cpp-precomp -m32" ;;
cflags="$cflags -g3 -no-cpp-precomp -m32" ;;
*HP-UX*) cc=${CC9:-cc}; cflags="-g -O -c -Ae" ;;
*Linux*) usegcc
case "${CC9:-gcc}" in
@ -134,11 +146,11 @@ case "$tag" in
u=`uname`
v=`uname -r`
s=`echo $u$v | tr '. ' '__'`
cflags="$ngflags -g"
cflags="$cflags -g"
cflags="$cflags -D__sun__ -D__${s}__"
;;
*AIX*) usexlc
cflags="$ngflags -g -D__AIX__"
cflags="$cflags -g -D__AIX__"
;;
*)
echo 9c does not know how to compile on "$tag" 1>&2

14
bin/9l
View file

@ -12,29 +12,29 @@ extralibs="-lm"
tag="${SYSNAME:-`uname`}-${OBJTYPE:-`uname -m`}"
case "$tag" in
*DragonFly*|*BSD*)
ld=${CC9:-gcc}
ld="${CC9:-gcc} $CC9FLAGS"
userpath=true
extralibs="$extralibs -lutil"
;;
*OSF1*)
ld=${CC9:-cc}
ld="${CC9:-cc} $CC9FLAGS"
userpath=true
extralibs="$extralibs -lutil"
nmflags="-B"
;;
*Linux*)
ld=${CC9:-gcc}
ld="${CC9:-gcc} $CC9FLAGS"
userpath=true
extralibs="$extralibs -lutil -lresolv -lpthread"
;;
*Darwin*x86_64*)
ld="${CC9:-gcc} -m64"
ld="${CC9:-gcc} -m64 $CC9FLAGS"
;;
*Darwin*)
ld="${CC9:-gcc} -m32"
ld="${CC9:-gcc} -m32 $CC9FLAGS"
;;
*SunOS*)
ld="${CC9:-cc} -g"
ld="${CC9:-cc} -g $CC9FLAGS"
extralibs="$extralibs -lrt -lpthread -lsocket -lnsl"
# Record paths to shared libraries to avoid needing LD_LIBRARY_PATH
for i in "$libsl $@"
@ -61,7 +61,7 @@ case "$tag" in
esac
;;
*AIX*)
ld="${CC9:-xlc_r} -g -O0"
ld="${CC9:-xlc_r} -g -O0 $CC9FLAGS"
nmflags="-A -B"
extralibs="$extralibs -lpthread"
;;