summaryrefslogtreecommitdiff
path: root/hints/freebsd.sh
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>1999-02-02 13:17:16 +0000
committerJarkko Hietaniemi <jhi@iki.fi>1999-02-02 13:17:16 +0000
commit73d40b3e8e2639688f6a52079a430333769fcb55 (patch)
treeb7343ef814c3bbed35638a8c691a9a1f38b3201a /hints/freebsd.sh
parent2605996adb5749caff463704d04b25b09c170d72 (diff)
downloadperl-73d40b3e8e2639688f6a52079a430333769fcb55.tar.gz
Jumbo FreeBSD update from Anton Berezin <tobez@plab.ku.dk>
p4raw-id: //depot/cfgperl@2776
Diffstat (limited to 'hints/freebsd.sh')
-rw-r--r--hints/freebsd.sh99
1 files changed, 71 insertions, 28 deletions
diff --git a/hints/freebsd.sh b/hints/freebsd.sh
index e341de4107..66f6ca02bf 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 <<EOM >&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 <<EOM >&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 <<EOM >&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
-