t9c, 9l: accept CC9FLAGS from config - 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 9444b8e4bc847f8fd9d02466976b962288cedf31
 (DIR) parent 154140a22b1c697f6a3edb3e5913efded1be082a
 (HTM) Author: Russ Cox <rsc@swtch.com>
       Date:   Sun, 17 May 2020 20:07:52 -0400
       
       9c, 9l: accept CC9FLAGS from config
       
       Also, if CC9FLAGS includes -fsanitize=address (ASAN),
       predefine PLAN9PORT_ASAN for use by programs that need
       tto 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.
       
       Diffstat:
         M bin/9c                              |      34 +++++++++++++++++++++----------
         M bin/9l                              |      14 +++++++-------
         M man/man1/install.1                  |       9 +++++++++
       
       3 files changed, 39 insertions(+), 18 deletions(-)
       ---
 (DIR) diff --git a/bin/9c b/bin/9c
       t@@ -4,7 +4,7 @@ test -f $PLAN9/config && . $PLAN9/config
        usegcc()
        {
                cc=${CC9:-gcc}
       -        ngflags=" \
       +        cflags=" \
                        -O2 \
                        -c \
                        -Wall \
       t@@ -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()
       t@@ -60,7 +65,7 @@ quiet()
        useclang()
        {
                cc=${CC9:-clang}
       -        ngflags=" \
       +        cflags=" \
                        -O2 \
                        -c \
                        -Wall \
       t@@ -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 \
       t@@ -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}"
       t@@ -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
       t@@ -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
 (DIR) diff --git a/bin/9l b/bin/9l
       t@@ -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 $@"
       t@@ -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"
                ;;
 (DIR) diff --git a/man/man1/install.1 b/man/man1/install.1
       t@@ -89,6 +89,15 @@ If
        contains a line
        .B WSYSTYPE=nowsys
        then the system is built without using X11.
       +.B LOCAL.config
       +may also list settings for
       +.B CC9
       +(the host C compiler)
       +and
       +.B CC9FLAGS
       +(any additional flags to pass to the compiler).
       +Values more complex than single words should be quoted
       +with single quotes.
        .PP
        On most Linux systems, the X11 header packages need to be installed
        to build using X11.  On Debian. the required packages are