diff options
author | Nicholas Clark <nick@ccl4.org> | 2006-04-28 12:48:27 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2006-04-28 12:48:27 +0000 |
commit | 4181e3555d644327354a2dc20295251d01e07f2b (patch) | |
tree | 76d1f2828eb60b8eb55aef34ac613d33b632ca0c /hints | |
parent | f2cba68dfbed8d8ba2bc905001d64997095d148a (diff) | |
download | perl-4181e3555d644327354a2dc20295251d01e07f2b.tar.gz |
Anton Berezin says that on FreeBSD we're wrong to be using -lc_r, and
should just be using -pthread on the linker line.
This stops the new taint tests looping infinitely. It also seems to
cure the TODO test in posix.t - masked SIGINT is now received.
p4raw-id: //depot/perl@27995
Diffstat (limited to 'hints')
-rw-r--r-- | hints/freebsd.sh | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/hints/freebsd.sh b/hints/freebsd.sh index c6014819fa..a5062381e8 100644 --- a/hints/freebsd.sh +++ b/hints/freebsd.sh @@ -222,19 +222,20 @@ Consider using the latest STABLE release. EOM exit 1 fi - case "$osvers" in # 500016 is the first osreldate in which one could # just link against libc_r without disposing of libc # at the same time. 500016 ... up to whatever it was # on the 31st of August 2003 can still be used with -pthread, # but it is not necessary. - 5.*) if [ `/sbin/sysctl -n kern.osreldate` -lt 500016 ]; then - ldflags="-pthread $ldflags" - fi - ;; - *) ldflags="-pthread $ldflags" - ;; - esac + + # Anton Berezin says that post 500something we're wrong to be + # to be using -lc_r, and should just be using -pthread on the + # linker line. + # So presumably really we should be checking that $osver is 5.*) + # and that `/sbin/sysctl -n kern.osreldate` -ge 500016 + # or -lt 500something and only in that range not doing this: + ldflags="-pthread $ldflags" + # Both in 4.x and 5.x gethostbyaddr_r exists but # it is "Temporary function, not threadsafe"... # Presumably earlier it didn't even exist. @@ -244,9 +245,19 @@ EOM esac - set `echo X "$libswanted "| sed -e 's/ c / c_r /'` - shift - libswanted="$*" + case "$osvers" in + [1-4]*) + set `echo X "$libswanted "| sed -e 's/ c / c_r /'` + shift + libswanted="$*" + ;; + *) + set `echo X "$libswanted "| sed -e 's/ c //'` + shift + libswanted="$*" + ;; + esac + # Configure will probably pick the wrong libc to use for nm scan. # The safest quick-fix is just to not use nm at all... usenm=false |