From: Jarkko Hietaniemi Date: Tue, 2 Feb 1999 13:17:16 +0000 (+0000) Subject: Jumbo FreeBSD update from Anton Berezin X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=73d40b3e8e2639688f6a52079a430333769fcb55;p=p5sagit%2Fp5-mst-13.2.git Jumbo FreeBSD update from Anton Berezin p4raw-id: //depot/cfgperl@2776 --- diff --git a/Makefile.SH b/Makefile.SH index a5fa1a0..30e5447 100644 --- a/Makefile.SH +++ b/Makefile.SH @@ -46,10 +46,10 @@ true) os2*) # OS/2 doesn't need anything special for LD_LIBRARY_PATH. ldlibpth='' ;; - sunos*|freebsd[23]*) + sunos*) linklibperl="-lperl" ;; - netbsd*) + netbsd*|freebsd[234]*) linklibperl="-L. -lperl" ;; aix*) diff --git a/hints/freebsd.sh b/hints/freebsd.sh index e341de4..66f6ca0 100644 --- a/hints/freebsd.sh +++ b/hints/freebsd.sh @@ -108,10 +108,10 @@ case "$osvers" in lddlflags="-shared " else if [ -e /usr/lib/aout ]; then - libpth="/usr/lib/aout /usr/local/lib /usr/lib" - glibpth="/usr/lib/aout /usr/local/lib /usr/lib" - fi - lddlflags='-Bshareable' + libpth="/usr/lib/aout /usr/local/lib /usr/lib" + glibpth="/usr/lib/aout /usr/local/lib /usr/lib" + fi + lddlflags='-Bshareable' fi cccdlflags='-DPIC -fpic' ;; @@ -140,39 +140,82 @@ EOM signal_t='void' d_voidsig='define' +# set libperl.so.X.X for 2.2.X +case "$osvers" in +2.2*) + # unfortunately this code gets executed before + # the equivalent in the main Configure so we copy a little + # from Configure XXX Configure should be fixed. + if $test -r $src/patchlevel.h;then + patchlevel=`awk '/define[ ]+PATCHLEVEL/ {print $3}' $src/patchlevel.h` + subversion=`awk '/define[ ]+SUBVERSION/ {print $3}' $src/patchlevel.h` + else + patchlevel=0 + subversion=0 + fi + libperl="libperl.so.$patchlevel.$subversion" + unset patchlevel + unset subversion + ;; +esac + # This script UU/usethreads.cbu will get 'called-back' by Configure # after it has prompted the user for whether to use threads. cat > UU/usethreads.cbu <<'EOCBU' case "$usethreads" in $define|true|[yY]*) + lc_r=`/sbin/ldconfig -r|grep ':-lc_r'|awk '{print $NF}'` case "$osvers" in - 3.*|4.0*) ldflags="-pthread $ldflags" - ;; - 2.2*) if [ ! -r /usr/lib/libc_r ]; then - cat <<'EOM' >&4 -POSIX threads are not supported by default on FreeBSD $osvers. Follow the -instructions in 'man pthread' to build and install the needed libraries. + 2.2.8*|3.*|4.*) + if [ ! -r "$lc_r" ]; then + cat <&4 +POSIX threads should be supported by FreeBSD $osvers -- +but your system is missing the shared libc_r. +(/sbin/ldconfig -r doesn't find any). + +Consider using the latest STABLE release. +EOM + exit 1 + fi + ldflags="-pthread $ldflags" + ;; + 2.2*) + cat <&4 +POSIX threads are not supported well by FreeBSD $osvers. + +Please consider upgrading to at least FreeBSD 2.2.8, +or preferably to 3.something. + +(While 2.2.7 does have pthreads, it has some problems + with the combination of threads and pipes and therefore + many Perl tests will either hang or fail.) EOM - exit 1 - fi - set `echo X "$libswanted "| sed -e 's/ c / c_r /'` - shift - libswanted="$*" - # 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 - ;; - *) cat <<'EOM' >&4 - -It is not known if FreeBSD $osvers supports POSIX threads or not. -Consider upgrading to the latest STABLE release. + exit 1 + ;; + *) cat <&4 +I did not know that FreeBSD $osvers supports POSIX threads. +Feel free to tell perlbug@perl.com otherwise. EOM - exit 1 - ;; + exit 1 + ;; + esac + + set `echo X "$libswanted "| sed -e 's/ c / c_r /'` + shift + libswanted="$*" + # 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 + + case "$osvers" in + 2.2.8*) + # ... but this does not apply for 2.2.8 - we know it's safe + libc="$lc_r" + usenm=true + ;; esac - ;; + + unset lc_r esac EOCBU -