From e2a47f809bfc63d49b2a2c9318b120e63a8fa531 Mon Sep 17 00:00:00 2001 From: Tony Cook Date: Sat, 9 Apr 2011 10:45:37 +1000 Subject: [PATCH] check --whole-archive is supported (in cc.cbu) before using it netbsd for pre 4.6 gcc requires --whole-archive to build shared libraries, but this is rejected and not required in 4.6.0. --- hints/netbsd.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/hints/netbsd.sh b/hints/netbsd.sh index d812f60..4ecd181 100644 --- a/hints/netbsd.sh +++ b/hints/netbsd.sh @@ -35,7 +35,17 @@ case "$osvers" in d_dlopen=$define d_dlerror=$define cccdlflags="-DPIC -fPIC $cccdlflags" - lddlflags="--whole-archive -shared $lddlflags" + lddlflags="-shared $lddlflags" + cat >UU/cc.cbu <<'EOCBU' +# gcc 4.6 doesn't support --whole-archive, but it's required for the +# system gcc to build correctly, so check for it +echo 'int f(void) { return 0; }' >try.c +if ${cc:-cc} $cccdlflags -c try.c -otry.o 2>&1 && + ${cc:-cc} --whole-archive $lddlflags try.o -otry.so 2>&1 ; then + lddlflags="--whole-archive $lddlflags" +fi +rm try.c try.o try.so 2>/dev/null +EOCBU rpathflag="-Wl,-rpath," case "$osvers" in 1.[0-5]*) -- 2.7.4