X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Ffreebsd.sh;h=c6014819fa9ea05251e1eca5bf4e5f3ec75eab5a;hb=6137113dfd943e6f896f8b9c1a4df2b7d4e355ae;hp=937df2a85a0069f28ee33b7cf8da4c5ba038209d;hpb=c6e7ee5baf1b7ad0b2d86890e4174d74a2709b05;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/freebsd.sh b/hints/freebsd.sh index 937df2a..c601481 100644 --- a/hints/freebsd.sh +++ b/hints/freebsd.sh @@ -87,10 +87,14 @@ case "$osvers" in ;; esac libswanted=`echo $libswanted | sed 's/ malloc / /'` + libswanted=`echo $libswanted | sed 's/ bind / /'` + # iconv gone in Perl 5.8.1, but if someone compiles 5.8.0 or earlier. + libswanted=`echo $libswanted | sed 's/ iconv / /'` d_setregid='define' d_setreuid='define' - d_setegid='undef' - d_seteuid='undef' + d_setegid='define' + d_seteuid='define' + # d_dosuid='define' # Obsolete. ;; *) usevfork='true' case "$usemymalloc" in @@ -124,7 +128,7 @@ case "$osvers" in fi lddlflags='-Bshareable' fi - cccdlflags='-DPIC -fpic' + cccdlflags='-DPIC -fPIC' ;; esac @@ -218,15 +222,24 @@ Consider using the latest STABLE release. EOM exit 1 fi - ldflags="-pthread $ldflags" case "$osvers" in - 4.*|5.0-release*) - # 4.x and 5.0-release have gethostbyaddr_r but it is - # "Temporary function, not threadsafe"... - d_gethostbyaddr_r="undef" - d_gethostbyaddr_r_proto="0" + # 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 + # Both in 4.x and 5.x gethostbyaddr_r exists but + # it is "Temporary function, not threadsafe"... + # Presumably earlier it didn't even exist. + d_gethostbyaddr_r="undef" + d_gethostbyaddr_r_proto="0" ;; esac @@ -250,8 +263,13 @@ EOM # Even with the malloc mutexes the Perl malloc does not # seem to be threadsafe in FreeBSD? - usemymalloc=n - + case "$usemymalloc" in + '') usemymalloc=n ;; + esac esac EOCBU +# malloc wrap works +case "$usemallocwrap" in +'') usemallocwrap='define' ;; +esac