Update
[p5sagit/p5-mst-13.2.git] / hints / linux.sh
CommitLineData
1aef975c 1# hints/linux.sh
a0d0e21e 2# Original version by rsanders
1fc4cb55 3# Additional support by Kenneth Albanowski <kjahds@kjahds.com>
1aef975c 4#
232e078e 5# ELF support by H.J. Lu <hjl@nynexst.com>
6# Additional info from Nigel Head <nhead@ESOC.bitnet>
7# and Kenneth Albanowski <kjahds@kjahds.com>
1aef975c 8#
232e078e 9# Consolidated by Andy Dougherty <doughera@lafcol.lafayette.edu>
1fc4cb55 10#
9bed9d38 11# Updated Thu Feb 8 11:56:10 EST 1996
c07a80fd 12# Add ability to use command-line overrides for optinal settings.
232e078e 13
14# perl goes into the /usr tree. See the Filesystem Standard
15# available via anonymous FTP at tsx-11.mit.edu in
16# /pub/linux/docs/linux-standards/fsstnd.
16d20bd9 17# Allow a command line override, e.g. Configure -Dprefix=/foo/bar
232e078e 18case "$prefix" in
19'') prefix='/usr' ;;
20esac
1fc4cb55 21
c07a80fd 22# This may not be needed in 5.002 since sigaction is used.
16d20bd9 23# gcc-2.6.3 defines _G_HAVE_BOOL to 1, but doesn't actually supply bool.
4bf4dbb3 24ccflags="-Dbool=char -DHAS_BOOL $ccflags"
25
26# BSD compatability library no longer needed
27set `echo X "$libswanted "| sed -e 's/ bsd / /'`
28shift
29libswanted="$*"
1fc4cb55 30
232e078e 31# Configure may fail to find lstat() since it's a static/inline
32# function in <sys/stat.h>.
33d_lstat=define
1aef975c 34
16d20bd9 35# I think Configure gets this right now, but I'd appreciate reports.
a0d0e21e 36malloctype='void *'
16d20bd9 37
38# Explanation?
c07a80fd 39case "$usemymalloc" in
40'') usemymalloc='n' ;;
41esac
1aef975c 42
43case "$optimize" in
44'') optimize='-O2' ;;
45esac
46
232e078e 47# Are we using ELF? Thanks to Kenneth Albanowski <kjahds@kjahds.com>
48# for this test.
49cat >try.c <<'EOM'
50/* Test for whether ELF binaries are produced */
51#include <fcntl.h>
52#include <stdlib.h>
53main() {
54 char buffer[4];
55 int i=open("a.out",O_RDONLY);
56 if(i==-1)
57 exit(1); /* fail */
58 if(read(i,&buffer[0],4)<4)
59 exit(1); /* fail */
60 if(buffer[0] != 127 || buffer[1] != 'E' ||
61 buffer[2] != 'L' || buffer[3] != 'F')
62 exit(1); /* fail */
63 exit(0); /* succeed (yes, it's ELF) */
64}
65EOM
f0b7e567 66if ${cc:-gcc} try.c >/dev/null 2>&1 && ./a.out; then
232e078e 67 cat <<'EOM'
68
69You appear to have ELF support. I'll try to use it for dynamic loading.
70EOM
4bf4dbb3 71 nm_so_opt='-dynamic'
232e078e 72else
16d20bd9 73 cat <<'EOM'
74
75You don't have an ELF gcc. I will use dld if possible. If you are
76using a version of DLD earlier than 3.2.6, or don't have it at all, you
77should probably upgrade. If you are forced to use 3.2.4, you should
c2960299 78uncomment a couple of lines in hints/linux.sh and restart Configure so
79that shared libraries will be disallowed.
16d20bd9 80
81EOM
232e078e 82 lddlflags="-r $lddlflags"
5d94fbed 83 # These empty values are so that Configure doesn't put in the
84 # Linux ELF values.
85 ccdlflags=' '
86 cccdlflags=' '
c07a80fd 87 ccflags="-DOVR_DBL_DIG=14 $ccflags"
1aef975c 88 so='sa'
89 dlext='o'
a5f75d66 90 nm_so_opt=' '
1aef975c 91 ## If you are using DLD 3.2.4 which does not support shared libs,
92 ## uncomment the next two lines:
93 #ldflags="-static"
94 #so='none'
232e078e 95fi
a0d0e21e 96
c2960299 97rm -f try.c a.out
16d20bd9 98
c2960299 99if /bin/bash -c exit; then
100 echo You appear to have a working bash. Good.
101else
102 cat << 'EOM'
103Warning: it would appear you have a defective bash shell installed. This is
104likely to give you a failure of op/exec test #5 during the test phase of the
105build, Upgrading to a recent version (1.14.4 or later) should fix the
106problem.
a0d0e21e 107
a0d0e21e 108EOM
c2960299 109
110fi
16d20bd9 111
112# In addition, on some systems there is a problem with perl and NDBM, which
113# causes AnyDBM and NDBM_File to lock up. This is evidenced in the tests as
114# AnyDBM just freezing. Currently we disable NDBM for all linux systems.
115# If someone can suggest a more robust test, that would be appreciated.
9bed9d38 116#
117# More info:
118# Date: Wed, 7 Feb 1996 03:21:04 +0900
119# From: Jeffrey Friedl <jfriedl@nff.ncl.omron.co.jp>
120#
121# I tried compiling with DBM support and sure enough things locked up
122# just as advertised. Checking into it, I found that the lockup was
123# during the call to dbm_open. Not *in* dbm_open -- but between the call
124# to and the jump into.
125#
126# To make a long story short, making sure that the *.a and *.sa pairs of
127# /usr/lib/lib{m,db,gdbm}.{a,sa}
128# were perfectly in sync took care of it.
129#
c2960299 130# This will generate a harmless message:
131# Hmm...You had some extra variables I don't know about...I'll try to keep 'em.
132# Propagating recommended variable d_dbm_open
c07a80fd 133case "$d_dbm_open" in
134'') d_dbm_open=undef ;;
135esac
232e078e 136