diff options
author | Andy Dougherty <doughera@lafcol.lafayette.edu> | 1995-05-30 22:59:41 +0000 |
---|---|---|
committer | Andy Dougherty <doughera@lafcol.lafayette.edu> | 1995-05-30 22:59:41 +0000 |
commit | 16d20bd98cd29be76029ebf04027a7edd34d817b (patch) | |
tree | 9ff5dd75c8b63cfd0da63bc9e4d59f464986bc0e /hints | |
parent | 3b35bae3d5913952e779006fe378c78297e23080 (diff) | |
download | perl-16d20bd98cd29be76029ebf04027a7edd34d817b.tar.gz |
This is my patch patch.1i for perl5.001.
To apply, change to your perl directory, run the commands above, then
apply with
patch -p1 -N < thispatch.
After you apply this patch, I would recommend:
rm config.sh
sh Configure [whatever options you use]
make depend
make
make test
Here are the highlights:
All pod documentation now installed, along with corresponding man
pages, if possible (Configure allows you to change this).
cppstdin no longer points back to the build directory. This
necessitated two changes to the test suite: comp/cpp.t is now a
front end that punts if cppstdin is not yet available (the old
perl4 trick doesn't work for perl5). The op/misc.t test
./perl -P -e 'use POSIX;' has been dropped since I couldn't think
of an elegant way to bypass it for systems that need the cppstdin
wrapper.
Grand autoload patch included (minus the installperl, lib/, and
ext/ changes). The lib/ changes are in patch.1g, and the
ext/ changes are in patch.1h.
Better detection and use of stdio variants, especially on SVR4.
Sarathy's consolidated patches (for ties) included.
New filter stuff included.
Three patches from Larry (gv.c, toke.c, pp_ctl.c)
Patch and enjoy,
Andy Dougherty doughera@lafcol.lafayette.edu
Dept. of Physics
Lafayette College Easton, PA 18042
Here's the file-by-file breakdown of what's included:
Changes.Conf
Document changes in the Configure & build process.
Configure
Upgrade to metaconfig PL55.
Add /opt hierarchy to paths searched for programs.
Tye McQueen's updated std stdio testing.
Prompting for installation info for perl module pages.
Add possible SITELIB to include site-specific include directories.
By default this is disabled, but it seemed a neat idea now that
the standard perl library is getting so big.
Check that the compiler chosen exists and actually supports the
options the user specified.
Correctly sort multiple shared library version numbers.
Use a compile & link test for gconvert(), dlopen(), and dlerror().
Do not include build directory name in cppstdin wrapper.
MANIFEST
Updated.
Makefile.SH
Reorganized a bit to support separate install.perl and install.man
targets to use the new installman script and to accomodate those who
don't want to install the man pages.
Organize cleanup of .SH files a little better.
No longer automatically make the pod/*.man files. This is done by
installman only if requested.
Include additional error messages and info for regenerating the
automatically maintained header files.
Add 'minitest' target.
README
Updated.
README.vms
Fix perl5-porters subscription info.
config_H
Updated.
config_h.SH
Updated.
configpm
Embedded pod.
configure
GNU configure-like front end to metaconfig's Configure.
Only supports a few options.
doio.c
Updated to use new std stdio testing.
embed.h
Add new symbols for filtering.
global.sym
see embed.h.
gv.c
C<sub method;> patch from lwall.
hints/README.hints
Updated.
hints/aux.sh
Updated.
hints/cxux.sh
Updated.
hints/epix.sh
New file.
hints/freebsd.sh
Updated.
hints/irix_4.sh
Updated.
hints/irix_5.sh
Updated.
hints/irix_6.sh
Updated.
hints/linux.sh
Updated.
hints/powerunix.sh
Updated.
installman
New file to install pod/*.pod and lib/*.p(m|od) man pages.
installperl
Move installation of man pages over to installman script.
Install pod/*.pod files in $privlib/pod/.
Preserve timestamps on .a files.
makedepend.SH
Now includes . and .. in PATH to explicitly find cppstdin wrapper.
opcode.h
opcode.pl
shmwrite fix.
perl.c
Changed unofficial patchlevel message.
Included optional SITELIB directory.
perl.h
#include <memory.h>
cryptswitch gone/filters added.
EUNICE replaced by UNLINK_ALL_VERSIONS. Only matters for VMS.
perldoc.SH
New file.
pod/perl.pod
Describe where modpods are.
pp_ctl.c
sort bug fix from lwall.
pp_hot.c
csh glob bug fix from tchrist.
Sarathy's consolidated "tie" patch for NETaa13753 N 2 trey
pp_sys.c
Emulate flock with lockf, if possible.
Use new std stdio unit.
proto.h
Filters stuff.
prototype for unlnk() is only needed #if UNLINK_ALL_VERSIONS
sv.c
Sarathy's consolidated "tie" patch for NETaa13753 N 2 trey
Sarathy's consolidated patch for nested ties.
Use new std stdio unit.
t/comp/cpp.aux
New file. This only gets called if cppstdin is avaiable.
t/comp/cpp.t
Calls cpp.aux test only if cppstdin is available.
t/op/misc.t
Drop
perl -P -e 'use POSIX;' test.
it couldn't work on systems without the cppstdin wrapper
installed, and is usually misleading when it fails anyway.
toke.c
filter stuff.
fix for NETaa13798 from lwall.
unixish.h
undef UNLINK_ALL_VERSIONS since it's irrelevant for unix.
util.c
s/EUNICE/UNLINK_ALL_VERSIONS/ for the unlnk() function.
vms/config.vms
VMS updates from Charles Bailey.
std stdio updates to match changes in perl sources.
add UNLINK_ALL_VERSIONS constant, but leave it #undef.
vms/ext/MM_VMS.pm
vms/ext/VMS/stdio/stdio.xs
vms/perlvms.pod
vms/vms.c
VMS updates from Charles Bailey.
x2p/Makefile.SH
Updated to match man page Configure questions.
Slight clean-up on .SH targets.
x2p/str.c
Use new std stdio unit.
Diffstat (limited to 'hints')
-rw-r--r-- | hints/README.hints | 5 | ||||
-rw-r--r-- | hints/aux.sh | 23 | ||||
-rw-r--r-- | hints/cxux.sh | 6 | ||||
-rw-r--r-- | hints/epix.sh | 73 | ||||
-rw-r--r-- | hints/freebsd.sh | 25 | ||||
-rw-r--r-- | hints/irix_4.sh | 14 | ||||
-rw-r--r-- | hints/irix_5.sh | 10 | ||||
-rw-r--r-- | hints/irix_6.sh | 2 | ||||
-rw-r--r-- | hints/linux.sh | 56 | ||||
-rw-r--r-- | hints/powerunix.sh | 6 |
10 files changed, 174 insertions, 46 deletions
diff --git a/hints/README.hints b/hints/README.hints index 84503ce8ff..26d1ba7f6a 100644 --- a/hints/README.hints +++ b/hints/README.hints @@ -1,5 +1,5 @@ These files are used by Configure to set things which Configure either -can't or doesn't guess properly. Most of these hints files are from +can't or doesn't guess properly. Many of these hints files are from perl4. They may or may not work with perl5, but they are probably a good starting point. @@ -7,6 +7,7 @@ The following hints files have been tested with at least some version of perl5 and are probably reasonably close to being correct: aix.sh +aux.sh bsd386.sh dec_osf.sh dgux.sh @@ -15,6 +16,7 @@ freebsd.sh hpux_9.sh irix_4.sh irix_5.sh +irix_6.sh isc.sh linux.sh netbsd.sh @@ -33,7 +35,6 @@ The following hints files have not been tested with perl5: 3b1.sh altos486.sh apollo.sh -aux.sh dnix.sh dynix.sh fps.sh diff --git a/hints/aux.sh b/hints/aux.sh index b64f3fdf28..add0f4dec8 100644 --- a/hints/aux.sh +++ b/hints/aux.sh @@ -1,3 +1,20 @@ -optimize='-O' -ccflags="$ccflags -B/usr/lib/big/ -DPARAM_NEEDS_TYPES" -POSIX_cflags='ccflags="$ccflags -ZP -Du_long=U32"' +# hints/aux.sh +# +# Improved by Jake Hamby <jehamby@lightside.com> to support both Apple CC +# and GNU CC. Tested on A/UX 3.1.1 with GCC 2.6.3. +# Last modified +# Fri May 5 10:59:43 EDT 1995 + +case "$cc" in +gcc) optimize='-O2' + ccflags="$ccflags -D_POSIX_SOURCE" + echo "Setting hints for GNU CC." + ;; +*) optimize='-O' + ccflags="$ccflags -B/usr/lib/big/ -DPARAM_NEEDS_TYPES -D_POSIX_SOURCE" + POSIX_cflags='ccflags="$ccflags -ZP -Du_long=U32"' + echo "Setting hints for Apple's CC. If you plan to use" + echo "GNU CC, please rerun this Configure script as:" + echo "./Configure -Dcc=gcc" + ;; +esac diff --git a/hints/cxux.sh b/hints/cxux.sh index b4125ae6d2..4946d0b05a 100644 --- a/hints/cxux.sh +++ b/hints/cxux.sh @@ -74,12 +74,6 @@ cccdlflags='-Zelf -Zpic' ccdlflags='-Zelf -Zlink=dynamic -Wl,-Bexport -u sigaction' lddlflags='-Zlink=so' -# Configure imagines that stdio.h is "standard", but it really isn't. -# Things like the -T and -B file test operators (on file handles) fail when -# it tries to treat it as "standard" -# -d_stdstdio='undef' - # Configure imagines that it sees a pw_quota field, but it is really in a # different structure than the one it thinks it is looking at. WARNING: # Setting this here in the hints file doesn't help. You need to fix this by diff --git a/hints/epix.sh b/hints/epix.sh new file mode 100644 index 0000000000..9fd5c90e3f --- /dev/null +++ b/hints/epix.sh @@ -0,0 +1,73 @@ +# epix.sh +# Hint file for EP/IX on CDC RISC boxes. +# +# From: Stanley Donald Capelik <sd9sdc@hp100.den.mmc.com> +# Modified by Andy Dougherty <doughera@lafcol.lafayette.edu> +# Last modified: Mon May 8 15:29:18 EDT 1995 +# +# This hint file appears to be based on the svr4 hints for perl5.000, +# with some CDC-specific additions. I've tried to updated it to +# match the 5.001 svr4 hints, which allow for dynamic loading, +# but I have no way of testing the resulting file. +# +# There were also some contradictions that I've tried to straighten +# out, but I'm not sure I got them all right. +# +# Edit config.sh to change shmattype from 'char *' to 'void *'" + +# Use Configure -Dcc=gcc to use gcc. +case "$cc" in +'') cc='/bin/cc3.11' + test -f $cc || cc='/usr/ccs/bin/cc' + ;; +esac + +usrinc='/svr4/usr/include' + +# Various things that Configure apparently doesn't get right. +strings='/svr4/usr/include/string.h' +timeincl='/svr4/usr/include/sys/time.h ' +libc='/svr4/usr/lib/libc.a' +libpth='/svr4/usr/lib /svr4/usr/lib/cmplrs/cc /usr/ccs/lib /svr4/lib /svr4/usr/ucblib' +osname='epix2' +archname='epix2' +d_suidsafe='define' # "./Configure -d" can't figure this out easilly +d_flock='undef' + +# Old version had this, but I'm not sure why since the old version +# also mucked around with libswanted. This is also definitely wrong +# if the user is trying to use DB_File or GDBM_File. +# libs='-lsocket -lnsl -ldbm -ldl -lc -lcrypt -lm -lucb' + +# We include support for using libraries in /usr/ucblib, but the setting +# of libswanted excludes some libraries found there. You may want to +# prevent "ucb" from being removed from libswanted and see if perl will +# build on your system. +ldflags='-non_shared -systype svr4 -L/svr4/usr/lib -L/svr4/usr/lib/cmplrs/cc -L/usr/ccs/lib -L/svr4/usr/ucblib' +ccflags='-systype svr4 -D__STDC__=0 -I/svr4/usr/include -I/svr4/usr/ucbinclude' +cppflags='-D__STDC__=0 -I/svr4/usr/include -I/svr4/usr/ucbinclude' + +# Don't use problematic libraries: + +libswanted=`echo " $libswanted " | sed -e 's/ malloc / /'` # -e 's/ ucb / /'` +# libmalloc.a - Probably using Perl's malloc() anyway. +# libucb.a - Remove it if you have problems ld'ing. We include it because +# it is needed for ODBM_File and NDBM_File extensions. +if [ -r /usr/ucblib/libucb.a ]; then # If using BSD-compat. library: + # Use the "native" counterparts, not the BSD emulation stuff: + d_bcmp='undef'; d_bcopy='undef'; d_bzero='undef'; d_safebcpy='undef' + d_index='undef'; d_killpg='undef'; d_getprior='undef'; d_setprior='undef' + d_setlinebuf='undef'; d_setregid='undef'; d_setreuid='undef' +fi + +lddlflags="-G $ldflags" # Probably needed for dynamic loading + +cat <<'EOM' >&4 + +If you wish to use dynamic linking, you must use + LD_LIBRARY_PATH=`pwd`; export LD_LIBRARY_PATH +or + setenv LD_LIBRARY_PATH `pwd` +before running make. + +EOM diff --git a/hints/freebsd.sh b/hints/freebsd.sh index f0c5433cca..c3a9830a89 100644 --- a/hints/freebsd.sh +++ b/hints/freebsd.sh @@ -10,6 +10,10 @@ # Ollivier Robert <Ollivier.Robert@keltia.frmug.fr.net> # Date: Sat, 8 Apr 1995 20:53:41 +0200 (MET DST) # +# Additional 2.0.5 and 2.1 defined from +# Ollivier Robert <Ollivier.Robert@keltia.frmug.fr.net> +# Date: Fri, 12 May 1995 14:30:38 +0200 (MET DST) +# # FreeBSD has the dynamic loading dl*() functions in /usr/lib/crt0.o, # so Configure doesn't find them (unless you abandon the nm scan). # @@ -18,7 +22,9 @@ # -DPIC is not used by perl proper) but the full define is included to # be consistent with the FreeBSD general shared libs building process. # -# setreuid and friends are inherently broken in all versions of FreeBSD. +# setreuid and friends are inherently broken in all versions of FreeBSD +# before 2.1-current (before approx date 4/15/95). It is fixed in 2.0.5 +# and what-will-be-2.1 # case "$osvers" in @@ -35,7 +41,7 @@ case "$osvers" in d_setrgid='undef' d_setruid='undef' ;; -*) +2.0-RELEASE*) d_dlopen="$define" cccdlflags='-DPIC -fpic' lddlflags='-Bshareable $lddlflags' @@ -44,6 +50,21 @@ case "$osvers" in d_setrgid='undef' d_setruid='undef' ;; +# +# Trying to cover 2.0.5, 2.1-current and future 2.1 +# It does not covert all 2.1-current versions as the output of uname +# changed a few times. +# +2.0.5*|2.0-BUILD|2.1*) + d_dlopen="$define" + cccdlflags='-DPIC -fpic' + lddlflags='-Bshareable $lddlflags' + # Are these defines necessary? Doesn't Configure find them + # correctly? + d_setregid='define' + d_setreuid='define' + d_setrgid='define' + d_setruid='define' esac # Avoid telldir prototype conflict in pp_sys.c (FreeBSD uses const DIR *) # Configure should test for this. Volunteers? diff --git a/hints/irix_4.sh b/hints/irix_4.sh index 9dc1fee44e..f934ac7725 100644 --- a/hints/irix_4.sh +++ b/hints/irix_4.sh @@ -1,10 +1,16 @@ +#irix_4.sh +# Last modified Fri May 5 14:06:37 EDT 1995 optimize='-O1' -usemymalloc='y' + +# Does Configure really get these wrong? Why? d_voidsig=define -usevfork=false d_charsprf=undef -ccflags="-ansiposix -signed" -# + +case "$cc" in +*gcc) ccflags="$ccflags -D_BSD_TYPES" ;; +*) ccflags="$ccflags -ansiposix -signed" ;; +esac + # This hint due thanks Hershel Walters <walters@smd4d.wes.army.mil> # Date: Tue, 31 Jan 1995 16:32:53 -0600 (CST) # Subject: IRIX4.0.4(.5? 5.0?) problems diff --git a/hints/irix_5.sh b/hints/irix_5.sh index 2f1e8559e7..f0769d03f6 100644 --- a/hints/irix_5.sh +++ b/hints/irix_5.sh @@ -1,8 +1,16 @@ # irix_5.sh +# Last modified Fri May 5 11:01:23 EDT 1995 ld=ld i_time='define' -ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -Olimit 3000" + +case "$cc" in +*gcc) ccflags="$ccflags -D_BSD_TYPES" ;; +*) ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -Olimit 3000" ;; +esac + lddlflags="-shared" +# For some reason we don't want -lsocket -lnsl or -ldl. Can anyone +# contribute an explanation? set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ nsl / /' -e 's/ dl / /'` shift libswanted="$*" diff --git a/hints/irix_6.sh b/hints/irix_6.sh index 0c4b0fc7b5..e810af209d 100644 --- a/hints/irix_6.sh +++ b/hints/irix_6.sh @@ -12,6 +12,8 @@ i_time='define' cc="cc -32" ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -Olimit 3000" lddlflags="-32 -shared" + +# We don't want these libraries. Anyone know why? set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ nsl / /' -e 's/ dl / /'` shift libswanted="$*" diff --git a/hints/linux.sh b/hints/linux.sh index 00643ca2f9..66c28dc01c 100644 --- a/hints/linux.sh +++ b/hints/linux.sh @@ -8,31 +8,28 @@ # # Consolidated by Andy Dougherty <doughera@lafcol.lafayette.edu> # -# Last updated Thu Apr 6 12:22:03 EDT 1995 +# Last updated Tue May 30 14:25:02 EDT 1995 # # If you wish to use something other than 'gcc' for your compiler, # you should specify it on the Configure command line. To use -# gcc-elf, for exmample, type +# gcc-elf, for exmample, type # ./Configure -Dcc=gcc-elf # perl goes into the /usr tree. See the Filesystem Standard # available via anonymous FTP at tsx-11.mit.edu in # /pub/linux/docs/linux-standards/fsstnd. -# This used to be -# bin='/usr/bin' -# but it doesn't seem sensible to put the binary in /usr and all the -# rest of the support stuff (lib, man pages) into /usr/local. -# However, allow a command line override, e.g. Configure -Dprefix=/foo/bar +# Allow a command line override, e.g. Configure -Dprefix=/foo/bar case "$prefix" in '') prefix='/usr' ;; esac # Perl expects BSD style signal handling. -# gcc defines _G_HAVE_BOOL to 1, but doesn't actually supply bool. +# gcc-2.6.3 defines _G_HAVE_BOOL to 1, but doesn't actually supply bool. ccflags="-D__USE_BSD_SIGNAL -Dbool=char -DHAS_BOOL $ccflags" # The following functions are gcc built-ins, but the Configure tests -# may fail because it doesn't supply a proper prototype. +# may fail because they don't supply proper prototypes. +# This should be fixed as of 5.001f. I'd appreciate reports. d_memcmp=define d_memcpy=define @@ -40,9 +37,13 @@ d_memcpy=define # function in <sys/stat.h>. d_lstat=define +# Explanation? d_dosuid='define' +# I think Configure gets this right now, but I'd appreciate reports. malloctype='void *' + +# Explanation? usemymalloc='n' case "$optimize" in @@ -73,10 +74,16 @@ if ${cc:-gcc} try.c >/dev/null 2>&1 && ./a.out; then You appear to have ELF support. I'll try to use it for dynamic loading. EOM - # Configure now handles these automatically. else - echo "You don't have an ELF gcc, using dld if available." - # We might possibly have a version of DLD around. + cat <<'EOM' + +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 +should probably upgrade. If you are forced to use 3.2.4, you should +uncomment a couple of lines in hints/linux.sh and rerun Configure to +disallow shared libraries. + +EOM lddlflags="-r $lddlflags" # These empty values are so that Configure doesn't put in the # Linux ELF values. @@ -91,16 +98,21 @@ else fi rm -rf try.c a.out -cat <<'EOM' +case "$BASH_VERSION" in +1.14.3*) + cat <<'EOM' + +If you get failure of op/exec test #5 during the test phase, you probably +have a buggy version of bash. Upgrading to a recent version (1.14.4 or +later) should fix the problem. -You should take a look at hints/linux.sh. There are a some lines you -may wish to change. EOM +;; +esac + +# 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. +d_dbm_open=undef -# And -- reported by one user: -# We need to get -lc away from the link lines. -# If we leave it there we get SEGV from miniperl during the build. -# This may have to do with bugs in the pre-release version of libc for ELF. -# Uncomment the next two lines to remove -lc from the link line. -# set `echo " $libswanted " | sed -e 's@ c @ @'` -# libswanted="$*" diff --git a/hints/powerunix.sh b/hints/powerunix.sh index 9ce2462315..0878e748b7 100644 --- a/hints/powerunix.sh +++ b/hints/powerunix.sh @@ -51,12 +51,6 @@ cccdlflags='-Zpic' ccdlflags='-Zlink=dynamic -Wl,-Bexport' lddlflags='-Zlink=so' -# Configure imagines that stdio.h is "standard", but it really isn't. -# Things like the -T and -B file test operators (on file handles) fail when -# it tries to treat it as "standard" -# -d_stdstdio='undef' - # Configure sometime finds what it believes to be ndbm header files on the # system and imagines that we have the NDBM library, but we really don't. # There is something there that once resembled ndbm, but it is purely |