summaryrefslogtreecommitdiff
path: root/hints
diff options
context:
space:
mode:
authorPerl 5 Porters <perl5-porters@africa.nicoh.com>1996-06-24 03:07:53 +0000
committerCharles Bailey <bailey@genetics.upenn.edu>1996-06-24 03:07:53 +0000
commitef0c99469b039696f8730cf24a8f0c48662abffd (patch)
tree4dcf65e0a9d0b0491ed461e409eb613e133f86ee /hints
parent214989af332323880cfb3faa7cce6d0317a4eba9 (diff)
downloadperl-ef0c99469b039696f8730cf24a8f0c48662abffd.tar.gz
perl 5.003: hints/linux.sh
Allow Configure to determine malloctype Don't mess with $nm_so_opt Make sure messages get to the right places Disable NDBM, since some systems have problems with the libraries Don't use gcvt() to print floats; it's buggy in some versions of libc
Diffstat (limited to 'hints')
-rw-r--r--hints/linux.sh97
1 files changed, 62 insertions, 35 deletions
diff --git a/hints/linux.sh b/hints/linux.sh
index 4e13fd36bd..b76ee89e51 100644
--- a/hints/linux.sh
+++ b/hints/linux.sh
@@ -9,7 +9,11 @@
# Consolidated by Andy Dougherty <doughera@lafcol.lafayette.edu>
#
# Updated Thu Feb 8 11:56:10 EST 1996
-# Add ability to use command-line overrides for optinal settings.
+
+# Updated Thu May 30 10:50:22 EDT 1996 by <doughera@lafcol.lafayette.edu>
+
+# Updated Fri Jun 21 11:07:54 EDT 1996
+# NDBM support for ELF renabled by <kjahds@kjahds.com>
# perl goes into the /usr tree. See the Filesystem Standard
# available via anonymous FTP at tsx-11.mit.edu in
@@ -19,7 +23,6 @@ case "$prefix" in
'') prefix='/usr' ;;
esac
-# This may not be needed in 5.002 since sigaction is used.
# gcc-2.6.3 defines _G_HAVE_BOOL to 1, but doesn't actually supply bool.
ccflags="-Dbool=char -DHAS_BOOL $ccflags"
@@ -32,9 +35,6 @@ libswanted="$*"
# function in <sys/stat.h>.
d_lstat=define
-# I think Configure gets this right now, but I'd appreciate reports.
-malloctype='void *'
-
# Explanation?
case "$usemymalloc" in
'') usemymalloc='n' ;;
@@ -64,13 +64,18 @@ main() {
}
EOM
if ${cc:-gcc} try.c >/dev/null 2>&1 && ./a.out; then
- cat <<'EOM'
+ cat <<'EOM' >&4
You appear to have ELF support. I'll try to use it for dynamic loading.
+If dynamic loading doesn't work, read hints/linux.sh for further information.
EOM
- nm_so_opt='-dynamic'
+
+#For RedHat Linux 3.0.3, you may need to fetch
+# ftp://ftp.redhat.com/pub/redhat-3.0.3/i386/updates/RPMS/ld.so-1.7.14-3.i386.rpm
+#
+
else
- cat <<'EOM'
+ cat <<'EOM' >&4
You don't have an ELF gcc. I will use dld if possible. If you are
using a version of DLD earlier than 3.2.6, or don't have it at all, you
@@ -92,45 +97,67 @@ EOM
## uncomment the next two lines:
#ldflags="-static"
#so='none'
+
+ # In addition, on some systems there is a problem with perl and NDBM
+ # which causes AnyDBM and NDBM_File to lock up. This is evidenced
+ # in the tests as AnyDBM just freezing. Apparently, this only
+ # happens on a.out systems, so we disable NDBM for all a.out linux
+ # systems. If someone can suggest a more robust test
+ # that would be appreciated.
+ #
+ # More info:
+ # Date: Wed, 7 Feb 1996 03:21:04 +0900
+ # From: Jeffrey Friedl <jfriedl@nff.ncl.omron.co.jp>
+ #
+ # I tried compiling with DBM support and sure enough things locked up
+ # just as advertised. Checking into it, I found that the lockup was
+ # during the call to dbm_open. Not *in* dbm_open -- but between the call
+ # to and the jump into.
+ #
+ # To make a long story short, making sure that the *.a and *.sa pairs of
+ # /usr/lib/lib{m,db,gdbm}.{a,sa}
+ # were perfectly in sync took care of it.
+ #
+ # This will generate a harmless Whoa There! message
+ case "$d_dbm_open" in
+ '') cat <<'EOM' >&4
+
+Disabling ndbm. This will generate a Whoa There message in Configure.
+Read hints/linux.sh for further information.
+EOM
+ # You can override this with Configure -Dd_dbm_open
+ d_dbm_open=undef
+ ;;
+ esac
fi
rm -f try.c a.out
if /bin/bash -c exit; then
+ echo
echo You appear to have a working bash. Good.
else
- cat << 'EOM'
-Warning: it would appear you have a defective bash shell installed. This is
-likely to give you a failure of op/exec test #5 during the test phase of the
-build, Upgrading to a recent version (1.14.4 or later) should fix the
-problem.
+ cat << 'EOM' >&4
+*********************** Warning! *********************
+It would appear you have a defective bash shell installed. This is likely to
+give you a failure of op/exec test #5 during the test phase of the build,
+Upgrading to a recent version (1.14.4 or later) should fix the problem.
+******************************************************
EOM
fi
-# In addition, on some systems there is a problem with perl and NDBM, which
-# causes AnyDBM and NDBM_File to lock up. This is evidenced in the tests as
-# AnyDBM just freezing. Currently we disable NDBM for all linux systems.
-# If someone can suggest a more robust test, that would be appreciated.
-#
-# More info:
-# Date: Wed, 7 Feb 1996 03:21:04 +0900
-# From: Jeffrey Friedl <jfriedl@nff.ncl.omron.co.jp>
+# Avoid some troublesome gcvt() functions. With some libc versions,
+# perl -e '$x=1e5; print "$x\n";' prints 1e+5. We'd like it
+# to print 100000 instead, consistent with the integer value given
+# on other platforms. This isn't a bug in gcvt, really; more in our
+# expectations for it. We'd like it to behave exactly as
+# sprintf %.16g, but it isn't documented to do that.
#
-# I tried compiling with DBM support and sure enough things locked up
-# just as advertised. Checking into it, I found that the lockup was
-# during the call to dbm_open. Not *in* dbm_open -- but between the call
-# to and the jump into.
+# We'll use sprintf() instead, since we can control the output more
+# precisely.
#
-# To make a long story short, making sure that the *.a and *.sa pairs of
-# /usr/lib/lib{m,db,gdbm}.{a,sa}
-# were perfectly in sync took care of it.
-#
-# This will generate a harmless message:
-# Hmm...You had some extra variables I don't know about...I'll try to keep 'em.
-# Propagating recommended variable d_dbm_open
-case "$d_dbm_open" in
-'') d_dbm_open=undef ;;
-esac
+# The next version of Configure will check for this automatically.
+d_Gconvert='sprintf((b),"%.*g",(n),(x))'