summaryrefslogtreecommitdiff
path: root/hints/freebsd.sh
diff options
context:
space:
mode:
authorNicholas Clark <nick@ccl4.org>2006-04-28 12:48:27 +0000
committerNicholas Clark <nick@ccl4.org>2006-04-28 12:48:27 +0000
commit4181e3555d644327354a2dc20295251d01e07f2b (patch)
tree76d1f2828eb60b8eb55aef34ac613d33b632ca0c /hints/freebsd.sh
parentf2cba68dfbed8d8ba2bc905001d64997095d148a (diff)
downloadperl-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/freebsd.sh')
-rw-r--r--hints/freebsd.sh33
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