summaryrefslogtreecommitdiff
path: root/Configure
diff options
context:
space:
mode:
authorAndy Dougherty <doughera@lafcol.lafayette.edu>1995-04-06 20:20:47 +0000
committerAndy Dougherty <doughera@lafcol.lafayette.edu>1995-04-06 20:20:47 +0000
commit232e078e289220085e912e3d740ae77767611478 (patch)
tree6dc7bc545fe55ce0be8fd1420256058ca7f26c57 /Configure
parent56febc5ef28a2ff414c466231d08046390ce0f59 (diff)
downloadperl-232e078e289220085e912e3d740ae77767611478.tar.gz
perl5.001 patch.1c
Configure Updated to dist PL53. Fix overlapping memcpy test. Add check for ld. Use $cc instead, if on an ELF system. With -d, don't reuse config.sh unless $myuname matches. Warn more explicitly about changing compilers before reloading old config.sh. Detect Linux ELF format in nm scan. Better detection of d_castneg. (ISC 4.1 was passing the test, but couldn't cast in an argument list.) Suggest -fpic for dynamic loading if you're using GNU CC under any name. No longer test for byacc, fmod, or drem, since they are not used. Makefile.SH Use $ld, not ld (only matters for SVR4) Silence some byacc-related harmless error messages. README Suggest using -Dcc=gcc (or whatever). Warn about reusing old config.sh. (The warning was already there in 5.001; I've just expanded it a little.) Warn against using GNU as and GNU ld on SunOS & Solaris. config.H config_h.SH Updated to match Configure. doio.c Add socket includes. ext/Fcntl/Fcntl.xs Fix typo: s/SETFL/F_SETFL/; handy.h Check _G_HAVE_BOOL, not just if it's defined. hints/dynix.sh hints/hpux_9.sh hints/linux.sh hints/netbsd.sh hints/titanos.sh Updated. ELF on linux should probably work. installperl Install pod2html, pod2latex, and pod2man. lib/ExtUtils/MakeMaker.pm Updated to 4.091. (4.09 + a small writedoc() patch.) myconfig Now includes 'ld' command. perl.c Revised an #elif clause since Pyramid's cpp doesn't understand #elif. perl.h Fix U_L, I_V, and I_32 cast macros to ensure that the cast_ulong(), cast_iv(), and cast_i32() functions (if used) are passed a double. In particular, the FIXSTATUS macros were handing int's to U_L(). Remove unnecessary HAS_FMOD testing (See util.c). proto.h Remove my_fmod() prototype. (See util.c) sv.h Fix GV/CV typo. util.c Simplified cast_i32() and cast_iv() to mimic what *actually* happens on a SPARC running SunOS 4.1.3. (Previously, they did some complicated fmod() calculation. I've since discovered that's not what happens on the SPARC.) With this change, fmod() is no longer necessary. Hence my_fmod is removed. This also means the HAS_FMOD and HAS_DREM tests are no longer needed in Configure, so they are gone too. vms/config.vms Remove unnecessary HAS_FMOD and HAS_DREM defines. x2p/Makefile.SH Silence byacc-related things.
Diffstat (limited to 'Configure')
-rwxr-xr-xConfigure157
1 files changed, 101 insertions, 56 deletions
diff --git a/Configure b/Configure
index cd728d293f..590f816548 100755
--- a/Configure
+++ b/Configure
@@ -18,9 +18,9 @@
# archive site. Check with Archie if you don't know where that can be.)
#
-# $Id: Head.U,v 3.0.1.6 1994/10/29 15:54:19 ram Exp $
+# $Id: Head.U,v 3.0.1.7 1995/03/21 08:46:15 ram Exp $
#
-# Generated on Fri Mar 10 09:48:55 EST 1995 [metaconfig 3.0 PL51]
+# Generated on Thu Apr 6 11:09:32 EDT 1995 [metaconfig 3.0 PL53]
cat >/tmp/c1$$ <<EOF
ARGGGHHHH!!!!!
@@ -58,11 +58,11 @@ esac
: Proper PATH setting
paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
-paths=$paths:'/usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin'
-paths=$paths:'/sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb'
-paths=$paths:'/bsd4.3/usr/bin /usr/bsd /bsd43/bin /usr/ccs/bin'
-paths=$paths:'/etc /usr/lib /usr/ucblib /lib /usr/ccs/lib'
-paths=$paths:'/sbin /usr/sbin /usr/libexec'
+paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
+paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
+paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /usr/ccs/bin"
+paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
+paths="$paths /sbin /usr/sbin /usr/libexec"
for p in $paths
do
@@ -229,7 +229,6 @@ d_alarm=''
d_attribut=''
d_bcmp=''
d_bcopy=''
-d_byacc=''
d_bzero=''
d_casti32=''
castflags=''
@@ -252,7 +251,6 @@ d_dlopen=''
d_dlsymun=''
d_dosuid=''
d_suidsafe=''
-d_drem=''
d_dup2=''
d_fchmod=''
d_fchown=''
@@ -263,7 +261,6 @@ d_fds_bits=''
d_fgetpos=''
d_flexfnam=''
d_flock=''
-d_fmod=''
d_fork=''
d_fsetpos=''
d_Gconvert=''
@@ -390,6 +387,7 @@ cccdlflags=''
ccdlflags=''
d_shrplib=''
dlsrc=''
+ld=''
lddlflags=''
shrpdir=''
usedl=''
@@ -607,7 +605,6 @@ al="$al tower32_800 tower32_850 tss u370 u3b u3b2 u3b20 u3b200"
al="$al u3b20d u3b5 ultrix unix unixpc unos vax venix vms"
al="$al xenix z8000"
-gccversion=''
groupstype=''
i_whoami=''
: change the next line if compiling for Xenix/286 on Xenix/386
@@ -803,7 +800,7 @@ while test $# -gt 0; do
esac
shift
;;
- -V) echo "$me generated by metaconfig 3.0 PL51." >&2
+ -V) echo "$me generated by metaconfig 3.0 PL53." >&2
exit 0;;
--) break;;
-*) echo "$me: unknown option $1" >&2; shift; error=true;;
@@ -1425,9 +1422,7 @@ myuname=`echo $myuname | $sed -e 's/^[^=]*=//' -e 's/\///g' | \
./tr '[A-Z]' '[a-z]' | tr '\012' ' '`
newmyuname="$myuname"
dflt=n
-if test "$fastread" = yes; then
- dflt=y
-elif test -f ../config.sh; then
+if test -f ../config.sh; then
if $contains myuname= ../config.sh >/dev/null 2>&1; then
eval "`grep myuname= ../config.sh`"
fi
@@ -1441,8 +1436,11 @@ fi
hint=default
cd ..
if test -f config.sh; then
- echo " "
- rp="I see a config.sh file. Shall I use it to set the defaults?"
+ $cat <<EOM
+
+I see a config.sh file. Was it built on THIS system with THIS compiler?
+EOM
+ rp="Shall I use config.sh to set the defaults?"
. UU/myread
case "$ans" in
n*|N*) echo "OK, I'll ignore it."; mv config.sh config.sh.old;;
@@ -3087,7 +3085,7 @@ $echo $n ".$c"
$grep fprintf libc.tmp > libc.ptf
xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
xrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
-if com="$sed -n -e 's/__IO//' -e 's/^.* [ADTSI] *_[_.]*//p' -e 's/^.* [ADTSI] //p'";\
+if com="$sed -n -e 's/__IO//' -e 's/^.* [ADTSIW] *_[_.]*//p' -e 's/^.* [ADTSIW] //p'";\
eval $xscan;\
$contains '^fprintf$' libc.list >/dev/null 2>&1; then
eval $xrun
@@ -3130,7 +3128,7 @@ elif com="$sed -n -e '/Def. Text/s/.* \([^ ]*\)\$/\1/p'";\
eval $xrun
else
nm -p $* 2>/dev/null >libc.tmp
- com="$sed -n -e 's/^.* [ADTSI] *_[_.]*//p' -e 's/^.* [ADTSI] //p'";\
+ com="$sed -n -e 's/^.* [ADTSIW] *_[_.]*//p' -e 's/^.* [ADTSIW] //p'";\
eval "<libc.tmp $com >libc.list"
if $contains '^fprintf$' libc.list >/dev/null 2>&1; then
nm_opt='-p'
@@ -3701,14 +3699,6 @@ set d_bsdpgrp
eval $setvar
$rm -f set set.c
-: Check if we really have byacc
-case "$byacc" in
-''|'byacc') val="$undef" ;;
-*) val="$define" ;;
-esac
-set d_byacc
-eval $setvar
-
: see if bzero exists
set bzero d_bzero
eval $inlibc
@@ -3832,10 +3822,14 @@ echo 'Checking whether your C compiler can cast negative float to unsigned.' >&4
$cat >try.c <<EOCP
#include <sys/types.h>
#include <signal.h>
-$signal_t blech() { exit(3); }
+$signal_t blech() { exit(7); }
+$signal_t blech_in_list() { exit(4); }
+unsigned long dummy_long(p) unsigned long p; { return p; }
+unsigned int dummy_int(p) unsigned int p; { return p; }
+unsigned short dummy_short(p) unsigned short p; { return p; }
main()
{
- double f = -123;
+ double f = -123.;
unsigned long along;
unsigned int aint;
unsigned short ashort;
@@ -3867,6 +3861,19 @@ main()
along = (unsigned long)f;
if (along != 0x80000001)
result |= 2;
+ if (result)
+ exit(result);
+ signal(SIGFPE, blech_in_list);
+ f = 123.;
+ along = dummy_long((unsigned long)f);
+ aint = dummy_int((unsigned int)f);
+ ashort = dummy_short((unsigned short)f);
+ if (along != (unsigned long)123)
+ result |= 4;
+ if (aint != (unsigned int)123)
+ result |= 4;
+ if (ashort != (unsigned short)123)
+ result |= 4;
exit(result);
}
@@ -3876,7 +3883,7 @@ if $cc -o try $ccflags try.c >/dev/null 2>&1; then
castflags=$?
else
echo "(I can't seem to compile the test program--assuming it can't)"
- castflags=3
+ castflags=7
fi
case "$castflags" in
0) val="$define"
@@ -4209,6 +4216,7 @@ y*) usedl="$define"
usedl="$define"
: emulate basename
dlsrc=`echo $ans | $sed -e 's@.*/\([^/]*\)$@\1@'`
+
$cat << EOM
Some systems may require passing special flags to $cc -c to
@@ -4217,9 +4225,8 @@ To use no flags, say "none".
EOM
case "$cccdlflags" in
- ''|' ') case "$cc" in
- *gcc*) dflt='-fpic' ;;
- *) case "$osname" in
+ '') case "$gccversion" in
+ '') case "$osname" in
hpux) dflt='+z' ;;
next) dflt='none' ;;
solaris) dflt='-K pic' ;;
@@ -4227,8 +4234,9 @@ EOM
svr4*|esix*) dflt='-Kpic' ;;
*) dflt='none' ;;
esac ;;
+ *) dflt='-fpic' ;;
esac ;;
- *) dflt="$cccdlflags" ;;
+ *) dflt="$cccdlflags" ;;
esac
rp="Any special flags to pass to $cc -c to compile shared library modules?"
. ./myread
@@ -4237,9 +4245,50 @@ EOM
*) cccdlflags="$ans" ;;
esac
- cat << 'EOM'
+ cat << EOM
+
+Some systems use ld to create libraries that can be dynamically loaded,
+while other systems (such as those using ELF) use $cc.
+
+EOM
+ case "$ld" in
+ '') $cat >try.c <<'EOM'
+/* Test for whether ELF binaries are produced */
+#include <fcntl.h>
+#include <stdlib.h>
+main() {
+ char b[4];
+ int i = open("a.out",O_RDONLY);
+ if(i == -1)
+ exit(1); /* fail */
+ if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F')
+ exit(0); /* succeed (yes, it's ELF) */
+ else
+ exit(1); /* fail */
+}
+EOM
+ if $cc $ccflags try.c >/dev/null 2>&1 && ./a.out; then
+ cat <<EOM
+You appear to have ELF support. I'll use $cc to build dynamic libraries.
+EOM
+ dflt="$cc"
+ else
+ echo "I'll use ld to build dynamic libraries."
+ dflt='ld'
+ fi
+ rm -f try.c a.out
+ ;;
+ *) dflt=ld
+ ;;
+ esac
+
+ rp="What comnmand should be used to create dynamic libraries?"
+ . ./myread
+ ld="$ans"
+
+ cat << EOM
-Some systems may require passing special flags to ld to create a
+Some systems may require passing special flags to $ld to create a
library that can be dynamically loaded. If your ld flags include
-L/other/path options to locate libraries outside your loader's normal
search path, you may need to specify those -L options here as well. To
@@ -4249,6 +4298,7 @@ EOM
case "$lddlflags" in
''|' ') case "$osname" in
hpux) dflt='-b' ;;
+ linux) dflt='-shared' ;;
next) dflt='none' ;;
solaris) dflt='-G' ;;
sunos) dflt='-assert nodefinitions' ;;
@@ -4258,7 +4308,7 @@ EOM
;;
*) dflt="$lddlflags" ;;
esac
- rp="Any special flags to pass to ld to create a dynamically loaded library?"
+ rp="Any special flags to pass to $ld to create a dynamically loaded library?"
. ./myread
case "$ans" in
none) lddlflags='' ;;
@@ -4274,7 +4324,8 @@ say "none".
EOM
case "$ccdlflags" in
''|' ') case "$osname" in
- hpux) dflt='none' ;;
+ hpux) dflt='-Wl,-E' ;;
+ linux) dflt='-rdynamic' ;;
next) dflt='none' ;;
sunos) dflt='none' ;;
*) dflt='none' ;;
@@ -4289,6 +4340,7 @@ EOM
esac
;;
*) usedl="$undef"
+ ld='ld'
dlsrc='dl_none.xs'
lddlflags=''
ccdlflags=''
@@ -4420,7 +4472,7 @@ main()
}
EOM
if $cc $ccflags $cccdlflags -c dyna.c > /dev/null 2>&1 &&
- ld $lddlflags -o dyna.$dlext dyna.o > /dev/null 2>&1 &&
+ $ld $lddlflags -o dyna.$dlext dyna.o > /dev/null 2>&1 &&
$cc $ccflags $ldflags $cccdlflags $ccdlflags fred.c -o fred $libs > /dev/null 2>&1; then
xxx=`./fred`
case $xxx in
@@ -4552,10 +4604,6 @@ esac
set d_dosuid
eval $setvar
-: see if drem exists
-set drem d_drem
-eval $inlibc
-
: see if dup2 exists
set dup2 d_dup2
eval $inlibc
@@ -4623,10 +4671,6 @@ $rm -rf /tmp/cf$$ 123456789abcde*
set flock d_flock
eval $inlibc
-: see if fmod exists
-set fmod d_fmod
-eval $inlibc
-
: see if fork exists
set fork d_fork
eval $inlibc
@@ -5204,10 +5248,10 @@ memcpy(abc, "abcdefghijklmnopqrstuvwxyz0123456789", 36);
for (align = 7; align >= 0; align--) {
for (len = 36; len; len--) {
b = buf+align;
- memcpy(abc, b, len);
+ memcpy(b, abc, len);
for (off = 1; off <= len; off++) {
- memcpy(b, b+off, len);
memcpy(b+off, b, len);
+ memcpy(b, b+off, len);
if (memcmp(b, abc, len))
exit(1);
}
@@ -5626,7 +5670,10 @@ if $test -d /usr/etc/yp || $test -d /etc/yp; then
. ./myread
case "$ans" in
y*) hostcat='nidump hosts .';;
- *) ;;
+ *) case "$hostcat" in
+ nidump*) hostcat='';;
+ esac
+ ;;
esac
fi
case "$hostcat" in
@@ -6097,7 +6144,7 @@ case "$i_db" in
define)
: Check the return type needed for hash
echo "Checking return type needed for hash for Berkeley DB ..." >&4
- cat >try.c <<'EOCP'
+ $cat >try.c <<'EOCP'
#include <sys/types.h>
#include <db.h>
u_int32_t
@@ -6122,7 +6169,7 @@ EOCP
echo "I can't seem to compile the test program." >&4
db_hashtype=int
fi
- $rm -f try.[co]
+ $rm -f try.*
echo "Your version of Berkeley DB uses $db_hashtype for hash."
;;
*) db_hashtype=int
@@ -6158,7 +6205,7 @@ EOCP
echo "I can't seem to compile the test program." >&4
db_prefixtype='int'
fi
- $rm -f try.[co]
+ $rm -f try.*
echo "Your version of Berkeley DB uses $db_prefixtype for prefix."
;;
*) db_prefixtype='int'
@@ -7702,7 +7749,6 @@ d_bcmp='$d_bcmp'
d_bcopy='$d_bcopy'
d_bsd='$d_bsd'
d_bsdpgrp='$d_bsdpgrp'
-d_byacc='$d_byacc'
d_bzero='$d_bzero'
d_casti32='$d_casti32'
d_castneg='$d_castneg'
@@ -7722,7 +7768,6 @@ d_dlerror='$d_dlerror'
d_dlopen='$d_dlopen'
d_dlsymun='$d_dlsymun'
d_dosuid='$d_dosuid'
-d_drem='$d_drem'
d_dup2='$d_dup2'
d_eunice='$d_eunice'
d_fchmod='$d_fchmod'
@@ -7734,7 +7779,6 @@ d_fds_bits='$d_fds_bits'
d_fgetpos='$d_fgetpos'
d_flexfnam='$d_flexfnam'
d_flock='$d_flock'
-d_fmod='$d_fmod'
d_fork='$d_fork'
d_fpathconf='$d_fpathconf'
d_fsetpos='$d_fsetpos'
@@ -7945,6 +7989,7 @@ intsize='$intsize'
known_extensions='$known_extensions'
ksh='$ksh'
large='$large'
+ld='$ld'
lddlflags='$lddlflags'
ldflags='$ldflags'
less='$less'