X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Fnetbsd.sh;h=07c6099e28a096aeb13f806b2470625693259b27;hb=c48e04e60e0b6832c6f967240cc478d08e77d54f;hp=741413ed4fc48221f726636e7b3f75b4e3dc8879;hpb=068ac78d80d6b49d0ecc09d01392eda125ed68e7;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/netbsd.sh b/hints/netbsd.sh index 741413e..07c6099 100644 --- a/hints/netbsd.sh +++ b/hints/netbsd.sh @@ -37,16 +37,21 @@ case "$osvers" in cccdlflags="-DPIC -fPIC $cccdlflags" lddlflags="--whole-archive -shared $lddlflags" rpathflag="-Wl,-rpath," - # - # Include the whole libgcc.a into the perl executable so - # that certain symbols needed by loadable modules built as - # C++ objects (__eh_alloc, __pure_virtual, etc.) will always - # be defined. - # - # XXX This should be obsoleted by gcc-3.0. - # - ccdlflags="-Wl,-whole-archive -lgcc -Wl,-no-whole-archive \ - -Wl,-E $ccdlflags" + case "$osvers" in + 1.[0-5]*) + # + # Include the whole libgcc.a into the perl executable + # so that certain symbols needed by loadable modules + # built as C++ objects (__eh_alloc, __pure_virtual, + # etc.) will always be defined. + # + ccdlflags="-Wl,-whole-archive -lgcc \ + -Wl,-no-whole-archive -Wl,-E $ccdlflags" + ;; + *) + ccdlflags="-Wl,-E $ccdlflags" + ;; + esac elif test -f /usr/libexec/ld.so; then # a.out d_dlopen=$define @@ -144,3 +149,33 @@ case "$rpathflag" in done ;; esac + +case `uname -m` in +alpha) + echo 'int main() {}' > try.c + gcc=`${cc:-cc} -v -c try.c 2>&1|grep 'gcc version egcs-2'` + case "$gcc" in + '' | "gcc version egcs-2.95."[3-9]*) ;; # 2.95.3 or better okay + *) cat >&4 <