diff options
author | Andy Dougherty <doughera@lafcol.lafayette.edu> | 1995-10-31 03:33:09 +0000 |
---|---|---|
committer | Andy Dougherty <doughera@lafcol.lafayette.edu> | 1995-10-31 03:33:09 +0000 |
commit | 8e07c86ebc651fe92eb7e3b25f801f57cfb8dd6f (patch) | |
tree | bd67a65038befe4bef8b330a688bf7d915cab92f /hints | |
parent | e50aee73b3d4c555c37e4b4a16694765fb16c887 (diff) | |
download | perl-8e07c86ebc651fe92eb7e3b25f801f57cfb8dd6f.tar.gz |
This is my patch patch.1n for perl5.001.perl-5.001n
To apply, change to your perl directory, run the command above, then
apply with
patch -p1 -N < thispatch.
This is a consolidation patch. It contains many of the most commonly
applied or agreed-to patches that have been circulating since
patch.1m.
It also changes the 'unofficial patchlevel' in perl.c.
There are some problems (see items marked with '***').
I will attempt to address those in a patch.1o in a few days.
This patch contains the following packages:
My Jumbo Configure patch vs. 1m, with subsequent patches 1, 2, and 3.
Mainly, this provides easier use of local libraries, documents
the installation process in a new INSTALL file, moves important
questions towards the beginning, and improves detection of
signal names (mostly for Linux).
xsubpp-1.922.
Patches from Larry:
eval "1" memory leak patch (as modified by GSAR to apply to 5.001m).
NETaa14551 Infinite loop in formats,
NETaa13729 scope.c patch (fixed problems on AIX and others)
NETaa14138 "substr() & s///" (pp_hot.c)
Patches from ftp.perl.com:
ftp://ftp.perl.com/pub/perl/src/patches/closure-bug.patch,
version of 20 Sep 1995
Includes fix for NETaa14347 (32k limit in regex), and other
fixes.
ftp://ftp.perl.com/pub/perl/src/patches/debugger.patch,
version of 27 Aug 1995
ftp://ftp.perl.com/pub/perl/src/patches/glob-undef.patch,
version of 4 Sep 1995
NETaa14421 $_ doesn't undef
ftp://ftp.perl.com/pub/perl/src/patches/op-segfault.patch,
version of 21 Aug 1995
ftp://ftp.perl.com/pub/perl/src/patches/warn-ref-hash-key.patch,
version of 5 Jun 1995
Tim Bunce's Jumbo DynaLoader patch for Perl5.001m, which is
NETaa14636 Jumbo DynaLoader patch for Perl5.001m, and
Additional patch for NETaa14636 Jumbo DynaLoader patch for Perl5.001m
version of 09 Oct 1995.
***This needs some additional parentheses.***
MakeMaker-5.00. Supercedes NETaa13540 (VMS MakeMaker patches).
(Updates minimod.PL as well.)
***This has a couple of minor problems.
pod2man is run even if it isn't available.
LD_RUN_PATH gets set to some mysterious values.***
NETaa14657 Paul Marquess Net::Ping patch. I've included
Net-Ping-1.00.
NETaa14661 Dean Roehrich DProf. Installed as ext/Devel/DProf.
Configure should pick this up automatically. (5 Apr 1995
version.)
NETaa13742 Jack Shirazi Socket in 5.001. I've also included
his socket.t test in t/lib/socket.t.
c2ph-1.7.
Dean's perlapi patches of Oct 12, 1995, which superceded those
of Oct 8, 1995. This is the one that did
mv perlapi.pid perlxs.pod.
NETaa14310 Tim Bunce A trivial patch for configpm (handy for shell scripts)
DB_File-1.0 patch from Paul Marquess (pmarquess@bfsec.bt.co.uk)
last modified 7th October 1995
version 1.0
Added or updated the following hints files:
hints/hpux.sh
hints/ncr_tower.sh
hints/netbsd.sh
hints/ultrix.sh
Patch and enjoy.
Andy Dougherty doughera@lafcol.lafayette.edu
Dept. of Physics
Lafayette College, Easton PA 18042
Diffstat (limited to 'hints')
-rw-r--r-- | hints/aix.sh | 6 | ||||
-rw-r--r-- | hints/hpux.sh | 83 | ||||
-rw-r--r-- | hints/hpux_9.sh | 29 | ||||
-rw-r--r-- | hints/isc.sh | 2 | ||||
-rw-r--r-- | hints/isc_2.sh | 2 | ||||
-rw-r--r-- | hints/ncr_tower.sh | 14 | ||||
-rw-r--r-- | hints/solaris_2.sh | 311 | ||||
-rw-r--r-- | hints/ultrix_4.sh | 2 | ||||
-rw-r--r-- | hints/unicos.sh | 4 | ||||
-rw-r--r-- | hints/utekv.sh | 3 |
10 files changed, 413 insertions, 43 deletions
diff --git a/hints/aix.sh b/hints/aix.sh index 1e8b3124c4..bca6eb7022 100644 --- a/hints/aix.sh +++ b/hints/aix.sh @@ -32,10 +32,14 @@ case "$osvers" in d_setreuid='undef' ccflags='-D_ALL_SOURCE -D_ANSI_C_SOURCE -D_POSIX_SOURCE' nm_opt='-B' - scope_cflags='optimize=" "' ;; esac +# The optimizer in 4.1.1 apparently generates bad code for scope.c. +# Configure doesn't offer an easy way to propagate extra variables +# only for certain cases, so the following contortion is required: +scope_cflags='case "$osvers" in 4.1*) optimize=" ";; esac' + # Changes for dynamic linking by Wayne Scott <wscott@ichips.intel.com> # # Tell perl which symbols to export for dynamic linking. diff --git a/hints/hpux.sh b/hints/hpux.sh new file mode 100644 index 0000000000..27513ce196 --- /dev/null +++ b/hints/hpux.sh @@ -0,0 +1,83 @@ +# hints/hpux.sh +# Perl Configure hints file for Hewlett Packard HP/UX 9.x and 10.x +# This file is based on +# hints/hpux_9.sh, Perl Configure hints file for Hewlett Packard HP/UX 9.x +# Use Configure -Dcc=gcc to use gcc. +# From: Jeff Okamoto <okamoto@hpcc123.corp.hp.com> +# Date: Thu, 28 Sep 95 11:06:07 PDT +# and +# hints/hpux_10.sh, Perl Configure hints file for Hewlett Packard HP/UX 10.x +# From: Giles Lean <giles@nemeton.com.au> +# Date: Tue, 27 Jun 1995 08:17:45 +1000 + +# Use Configure -Dcc=gcc to use gcc. +# Use Configure -Dprefix=/usr/local to install in /usr/local. + +# Turn on the _HPUX_SOURCE flag to get many of the HP add-ons +ccflags="$ccflags -D_HPUX_SOURCE" +ldflags="$ldflags" + +# Check if you're using the bundled C compiler. This compiler doesn't support +# ANSI C (the -Aa flag) nor can it produce shared libraries. Thus we have +# to turn off dynamic loading. +case "$cc" in +'') if cc $ccflags -Aa 2>&1 | $contains 'Unknown option "A"' >/dev/null + then + case "$usedl" in + '') usedl="$undef" + cat <<'EOM' + +The bundled C compiler can not produce shared libraries, so you will +not be able to use dynamic loading. + +EOM + ;; + esac + else + ccflags="$ccflags -Aa" # The add-on compiler supports ANSI C + fi + optimize='-O' + ;; +esac + +# Remove bad libraries that will cause problems +# (This doesn't remove libraries that don't actually exist) +# -lld is unneeded (and I can't figure out what it's used for anyway) +# -ldbm is obsolete and should not be used +# -lBSD contains BSD-style duplicates of SVR4 routines that cause confusion +# -lPW is obsolete and should not be used +# Although -lndbm should be included, it will make perl blow up if you should +# copy the binary to a system without libndbm.sl. +# The libraries crypt, malloc, ndir, and net are empty. +set `echo " $libswanted " | sed -e 's@ ndbm @ @' -e 's@ ld @ @' -e 's@ dbm @ @' -e 's@ BSD @ @' -e 's@ PW @ @'` +libswanted="$*" + +# If you copy the perl binaries to other systems and the dynamic loader +# complains about missing libraries, you can either copy the shared libraries +# or switch the comments to recompile perl to use archive libraries +# ccdlflags="-Wl,-E -Wl,-a,archive $ccdlflags" +ccdlflags="-Wl,-E $ccdlflags" + +usemymalloc='y' +alignbytes=8 +selecttype='int *' + +# There are some lingering issues about whether g/setpgrp should be a part +# of the perl core. This setting should cause perl to conform to the Principle +# of Least Astonishment. The best thing is to use the g/setpgrp in the POSIX +# module. +d_bsdpgrp='define' + +# If your compile complains about FLT_MIN, uncomment the next line +# POSIX_cflags='ccflags="$ccflags -DFLT_MIN=1.17549435E-38"' + +# Comment these out if you don't want to follow the SVR4 filesystem layout +# that HP-UX 10.0 uses +case "$prefix" in +'') prefix='/opt/perl5' + privlib='/opt/perl5/lib' + archlib='/opt/perl5/lib/hpux' + man3dir='/opt/perl5/man/man3' + ;; +esac + diff --git a/hints/hpux_9.sh b/hints/hpux_9.sh deleted file mode 100644 index fe5c2c7517..0000000000 --- a/hints/hpux_9.sh +++ /dev/null @@ -1,29 +0,0 @@ -# hints/hpux_9.sh, Perl Configure hints file for Hewlett Packard HP/UX 9.x -# Use Configure -Dcc=gcc to use gcc. -ccflags="$ccflags -D_POSIX_SOURCE -D_HPUX_SOURCE" -case "$cc" in -'') if cc $ccflags -Aa 2>&1 | $contains 'Unknown option "A"' >/dev/null - then # The bundled (limited) compiler doesn't - case "$usedl" in # support -Aa for "ANSI C mode". - '') usedl="$undef";; # Nor can it produce shared libraries. - esac - else - ccflags="$ccflags -Aa" # The add-on compiler supports ANSI C - fi - optimize='+O1' - ;; -esac -libswanted='m dld' -# ccdlflags="-Wl,-E -Wl,-a,shared $ccdlflags" # Force all shared? -ccdlflags="-Wl,-E $ccdlflags" -usemymalloc='y' -alignbytes=8 -selecttype='int *' -POSIX_cflags='ccflags="$ccflags -DFLT_MIN=1.17549435E-38"' - -case "$prefix" in -'') prefix='/opt/perl5' ;; -esac -case "$archname" in -'') archname='hpux' ;; -esac diff --git a/hints/isc.sh b/hints/isc.sh index 0ecdb7ddc9..df745a9b25 100644 --- a/hints/isc.sh +++ b/hints/isc.sh @@ -33,5 +33,3 @@ esac # compilation "redefinition" warnings, but they appear harmless. # ccflags="$ccflags -D_SYSV3" -# Pick up dbm.h in <rpcsvc/dbm.h> -ccflags="$ccflags -I/usr/include/rpcsvc" diff --git a/hints/isc_2.sh b/hints/isc_2.sh index 95b61ba773..c73908cbc6 100644 --- a/hints/isc_2.sh +++ b/hints/isc_2.sh @@ -17,8 +17,6 @@ case "$cc" in ldflags="$ldflags -Xp" ;; esac -# Pick up dbm.h in <rpcsvc/dbm.h> -ccflags="$ccflags -I/usr/include/rpcsvc" # Compensate for conflicts in <net/errno.h> doio_cflags='ccflags="$ccflags -DENOTSOCK=103"' pp_sys_cflags='ccflags="$ccflags -DENOTSOCK=103"' diff --git a/hints/ncr_tower.sh b/hints/ncr_tower.sh index 799ee9375c..7ddb9230e9 100644 --- a/hints/ncr_tower.sh +++ b/hints/ncr_tower.sh @@ -1,4 +1,16 @@ +# For SysV release 2, there are no directory functions defined. To +# prevent compile errors, acquire the functions written by Doug Gwynn. +# They are contained in dirent.tar.gz and can be accessed from gnu +# repositories, as well as other places. +# +# The following hints have been verified to work with PERL5 (001m) on +# SysVr2 with the following caveat(s): +# 1. Maximum User program space (MAXSPACE) must be at least 2MB. +# 2. The directory functions mentioned above have been installed. +# optimize='-O0' -ccflags="$ccflags -W2,-Sl,2000" +ccflags="$ccflags -W2,-Sl,1500 -W0,-Sp,350,-Ss,2500 -Wp,-Sd,30" d_mkdir=$undef usemymalloc='y' +useposix='false' +so='none' diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh index b940663d35..0193bd4a1c 100644 --- a/hints/solaris_2.sh +++ b/hints/solaris_2.sh @@ -1,5 +1,14 @@ +# hints/solaris_2.sh +# Last modified: 27 September 1995 by +# Andy Dougherty <doughera@lafcol.lafayette.edu> +# Based on input from lots of folks, especially +# Dean Roehrich <roehrich@ironwood-fddi.cray.com> +# +# See man vfork. usevfork=false +# d_suidsafe=define +# Avoid all libraries in /usr/ucblib. set `echo $glibpth | sed -e 's@/usr/ucblib@@'` glibpth="$*" # Remove bad libraries. -lucb contains incompatible routines. @@ -29,11 +38,311 @@ case "$archname" in *) ;; esac +# See below for excerpts from the Solaris FAQ. + +# From roehrich@ironwood-fddi.cray.com Wed Sep 27 12:51:46 1995 +# Date: Thu, 7 Sep 1995 16:31:40 -0500 +# From: Dean Roehrich <roehrich@ironwood-fddi.cray.com> +# To: perl5-porters@africa.nicoh.com +# Subject: Re: On perl5/solaris/gcc + +# Here's another draft of the perl5/solaris/gcc sanity-checker. + case $PATH in -*/usr/ucb*:/usr/bin:*) cat <<END +*/usr/ucb*:/usr/bin:*|*/usr/ucb*:/usr/bin) cat <<END + NOTE: Some people have reported problems with /usr/ucb/cc. Remove /usr/ucb from your PATH if you have difficulties. + +END +;; +esac + + +# Check that /dev/fd is mounted. If it is not mounted, let the +# user know that suid scripts may not work. +/usr/bin/df /dev/fd 2>&1 > /dev/null +case $? in +0) ;; +*) + cat <<END + +NOTE: Your system does not have /dev/fd mounted. If you want to +be able to use set-uid scripts you must ask your system administrator +to mount /dev/fd. + +END + ;; +esac + + +# See if libucb can be found in /usr/lib. If it is, warn the user +# that this may cause problems while building Perl extensions. +/usr/bin/ls /usr/lib/libucb* >/dev/null 2>&1 +case $? in +0) + cat <<END + +NOTE: libucb has been found in /usr/lib. libucb should reside in +/usr/ucblib. You may have trouble while building Perl extensions. + END ;; esac + +# See if make(1) is GNU make(1). +# If it is, make sure the setgid bit is not set. +make -v > make.vers 2>&1 +if grep GNU make.vers > /dev/null 2>&1; then + tmp=`/usr/bin/which make` + case "`/usr/bin/ls -l $tmp`" in + ??????s*) + cat <<END + +NOTE: Your PATH points to GNU make, and your GNU make has the set-group-id +bit set. You must either rearrange your PATH to put /usr/ccs/bin before the +GNU utilities or you must ask your system administrator to disable the +set-group-id bit on GNU make. + +END + ;; + esac +fi +rm -f make.vers + +# If the C compiler is gcc: +# - check the fixed-includes +# - check as(1) and ld(1), they should not be GNU +# If the C compiler is not gcc: +# - check as(1) and ld(1), they should not be GNU +# +# Watch out in case they have not set $cc. +case "`${cc:-cc} -v 2>&1`" in +*gcc*) + # + # Using gcc. + # + #echo Using gcc + + # Get gcc to share its secrets. + echo 'main() { return 0; }' > try.c + verbose=`${cc:-cc} -v -o try try.c 2>&1` + tmp=`echo "$verbose" | grep '^Reading' | + awk '{print $NF}' | sed 's/specs$/include/'` + + # Determine if the fixed-includes look like they'll work. + sed 1q $tmp/stdarg.h 2>&1 | grep 'stdarg.h for GNU' 2>&1 >/dev/null + case $? in + 0) ;; + *) + cat <<END + +NOTE: The fixincludes or just-fixinc script for gcc was not run +properly. Your gcc may not be able to compile Perl. Inform your system +administrator that ${cc:-cc} is not properly installed. + +END + ;; + esac + + # See if as(1) is GNU as(1). GNU as(1) won't work for this job. + case $verbose in + */usr/ccs/bin/as*) ;; + *) + cat <<END + +NOTE: You are using GNU as(1). GNU as(1) will not build Perl. +You must arrange to use /usr/ccs/bin/as, perhaps by setting +GCC_EXEC_PREFIX. + +END + ;; + esac + + # See if ld(1) is GNU ld(1). GNU ld(1) won't work for this job. + case $verbose in + */usr/ccs/bin/ld*) ;; + *) + cat <<END + +NOTE: You are using GNU ld(1). GNU ld(1) will not build Perl. +You must arrange to use /usr/ccs/bin/ld, perhaps by setting +GCC_EXEC_PREFIX. + +END + ;; + esac + + ;; #using gcc +*) + # + # Not using gcc. + # + #echo Not using gcc + + # See if as(1) is GNU as(1). GNU as(1) won't work for this job. + case `as --version < /dev/null 2>&1` in + *GNU*) + cat <<END + +NOTE: You are using GNU as(1). GNU as(1) will not build Perl. +You must arrange to use /usr/ccs/bin, perhaps by adding it to the +beginning of your PATH. + +END + ;; + esac + + # See if ld(1) is GNU ld(1). GNU ld(1) won't work for this job. + case `ld --version < /dev/null 2>&1` in + *GNU*) + cat <<END + +NOTE: You are using GNU ld(1). GNU ld(1) will not build Perl. +You must arrange to use /usr/ccs/bin, perhaps by adding it to the +beginning of your PATH + +END + ;; + esac + + ;; #not using gcc +esac + +# as --version or ld --version might dump core. +rm -f core + +# This is just a trick to include some useful notes. +cat > /dev/null <<'End_of_Solaris_Notes' + +Here are some notes kindly contributed by Dean Roehrich. + +----- +Generic notes about building Perl5 on Solaris: +- Use /usr/ccs/bin/make. +- If you use GNU make, remove its setgid bit. +- Remove all instances of *ucb* from your path. +- Make sure libucb is not in /usr/lib (it should be in /usr/ucblib). +- Do not use GNU as or GNU ld, or any of GNU binutils or GNU libc. +- Do not use /usr/ucb/cc. +- Do not change Configure's default answers, except for the path names. +- Do not use -lmalloc. +- Do not build on SunOS 4 and expect it to work properly on SunOS 5. +- /dev/fd must be mounted if you want set-uid scripts to work. + + +Here are the gcc-related questions and answers from the Solaris 2 FAQ. Note +the themes: + - run fixincludes + - run fixincludes correctly + - don't use GNU as or GNU ld + +Question 5.7 covers the __builtin_va_alist problem people are always seeing. +Question 6.1.3 covers the GNU as and GNU ld issues which are always biting +people. +Question 6.9 is for those who are still trying to compile Perl4. + +The latest Solaris 2 FAQ can be found in the following locations: + rtfm.mit.edu:/pub/usenet-by-group/comp.sys.sun.admin + ftp.fwi.uva.nl:/pub/solaris + +Perl5 comes with a script in the top-level directory called "myconfig" which +will print a summary of the configuration in your config.sh. My summary for +Solaris 2.4 and gcc 2.6.3 follows. I have also built with gcc 2.7.0 and the +results are identical. This configuration was generated with Configure's -d +option (take all defaults, don't bother prompting me). All tests pass for +Perl5.001, patch.1m. + +Summary of my perl5 (patchlevel 1) configuration: + Platform: + osname=solaris, osver=2.4, archname=sun4-solaris + uname='sunos poplar 5.4 generic_101945-27 sun4d sparc ' + hint=recommended + Compiler: + cc='gcc', optimize='-O', ld='gcc' + cppflags='' + ccflags ='' + ldflags ='' + stdchar='unsigned char', d_stdstdio=define, usevfork=false + voidflags=15, castflags=0, d_casti32=define, d_castneg=define + intsize=4, alignbytes=8, usemymalloc=y, randbits=15 + Libraries: + so=so + libpth=/lib /usr/lib /usr/ccs/lib /usr/local/lib + libs=-lsocket -lnsl -ldl -lm -lc -lcrypt + libc=/usr/lib/libc.so + Dynamic Linking: + dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef + cccdlflags='-fpic', ccdlflags=' ', lddlflags='-G' + + +Dean +roehrich@cray.com +9/7/95 + +----------- + +From: Casper.Dik@Holland.Sun.COM (Casper H.S. Dik - Network Security Engineer) +Subject: Solaris 2 Frequently Asked Questions (FAQ) 1.48 +Date: 25 Jul 1995 12:20:18 GMT + +5.7) Why do I get __builtin_va_alist or __builtin_va_arg_incr undefined? + + You're using gcc without properly installing the gcc fixed + include files. Or you ran fixincludes after installing gcc + w/o moving the gcc supplied varargs.h and stdarg.h files + out of the way and moving them back again later. This often + happens when people install gcc from a binary distribution. + If there's a tmp directory in gcc's include directory, fixincludes + didn't complete. You should have run "just-fixinc" instead. + + Another possible cause is using ``gcc -I/usr/include.'' + +6.1) Where is the C compiler or where can I get one? + + [...] + + 3) Gcc. + + Gcc is available from the GNU archives in source and binary + form. Look in a directory called sparc-sun-solaris2 for + binaries. You need gcc 2.3.3 or later. You should not use + GNU as or GNU ld. Make sure you run just-fixinc if you use + a binary distribution. Better is to get a binary version and + use that to bootstrap gcc from source. + + [...] + + When you install gcc, don't make the mistake of installing + GNU binutils or GNU libc, they are not as capable as their + counterparts you get with Solaris 2.x. + +6.9) I can't get perl 4.036 to compile or run. + + Run Configure, and use the solaris_2_0 hints, *don't* use + the solaris_2_1 hints and don't use the config.sh you may + already have. First you must make sure Configure and make + don't find /usr/ucb/cc. (It must use gcc or the native C + compiler: /opt/SUNWspro/bin/cc) + + Some questions need a special answer. + + Are your system (especially dbm) libraries compiled with gcc? [y] y + + yes: gcc 2.3.3 or later uses the standard calling + conventions, same as Sun's C. + + Any additional cc flags? [ -traditional -Dvolatile=__volatile__ + -I/usr/ucbinclude] -traditional -Dvolatile=__volatile__ + Remove /usr/ucbinclude. + + Any additional libraries? [-lsocket -lnsl -ldbm -lmalloc -lm + -lucb] -lsocket -lnsl -lm + + Don't include -ldbm, -lmalloc and -lucb. + + Perl 5 compiled out of the box. + +End_of_Solaris_Notes + diff --git a/hints/ultrix_4.sh b/hints/ultrix_4.sh index f0369c0be7..3f96a668e1 100644 --- a/hints/ultrix_4.sh +++ b/hints/ultrix_4.sh @@ -24,6 +24,8 @@ case "$cc" in case "$osvers" in *4.1*) ccflags="$ccflags -DLANGUAGE_C -Olimit 2900" ;; *4.2*) ccflags="$ccflags -DLANGUAGE_C -Olimit 2900" + # Prototypes sometimes cause compilation errors in 4.2. + prototype=undef case "$myuname" in *risc*) d_volatile=undef ;; esac diff --git a/hints/unicos.sh b/hints/unicos.sh index 6c431293c6..272cb9b5d6 100644 --- a/hints/unicos.sh +++ b/hints/unicos.sh @@ -7,7 +7,3 @@ libswanted=m d_setregid='undef' d_setreuid='undef' -# Pick up dbm.h in <rpcsvc/dbm.h> -if test -f /usr/include/rpcsvc/dbm.h; then - ccflags="$ccflags -I/usr/include/rpcsvc" -fi diff --git a/hints/utekv.sh b/hints/utekv.sh index 0d30fd66ab..ebc7809c60 100644 --- a/hints/utekv.sh +++ b/hints/utekv.sh @@ -6,9 +6,6 @@ ccflags="$ccflags -X18" usemymalloc='y' -# /usr/include/rpcsvc is for finding dbm.h -inclwanted="$inclwanted /usr/include/rpcsvc" - echo " " echo "NOTE: You may have to take out makefile dependencies on the files in" echo "/usr/include (i.e. /usr/include/ctype.h) or the make will fail. A" |