diff options
author | Andy Dougherty <doughera@lafcol.lafayette.edu> | 1995-01-18 03:44:04 +0000 |
---|---|---|
committer | Andy Dougherty <doughera@lafcol.lafayette.edu> | 1995-01-18 03:44:04 +0000 |
commit | ecfc54246c2a6f42dc95b17a964a6048192067d2 (patch) | |
tree | dbdb3a3ef6833cef5bc3644948b9d157c0ce00ca /hints | |
parent | 5f51ce503c8828daeb43446f6dff8a13c393fe19 (diff) | |
download | perl-ecfc54246c2a6f42dc95b17a964a6048192067d2.tar.gz |
perl5.000 patch.0g: [various portability fixes, and use latest metaconfig for Configure]
This patch incorporates various portability fixes and uses the latest
metaconfig to generate Configure (and config_h.SH).
It would take a long time to summarize all that I've changed. I
haven't included many code changes because I'm trying *not* to
duplicate bug fixes Larry may already have applied.
Here's an older description I prepared that's still mostly accurate:
I've also included a few portability fixes in the main source, but
these are certainly not a complete set of everything that's been
reported.
Don't be put off by the size of the patch. Mostly, it's just
rearrangement of the parts in Configure and some cosmetic changes.
Since gcc often supports long long, I had started to add quad support
to Configure. Since SunOS 4.1.3 defines a conflicting "quad"
structure, I changed the name from 'quad' to Quad_t, consistent with
other Configure "types." I also changed "QUAD" to "HAS_QUAD".
However, it turns out it's pretty hard to actually *use* Quad_t.
Neither system I have access to can sprintf() a "long long", nor can
they carry one around in an IV, unless I make IV "long long", which I
didn't want to force generally. Thus I wonder whether any but a
precious few could actually use Quad_t, and dropped the tests from
Configure. I left in the s/quad/Quad_t/ and s/QUAD/HAS_QUAD/ stuff in
case someone else wants to pick it up, and also because I was too lazy
to take it back out :-).
Some highlights:
Configure
Several new options. Use Configure -h to learn more. Also,
read the directions Configure prints. :-)
Spaces now allowed in -D command line options.
New -O option that overrides config.sh.
You can start interactively and then change that to accepting
all the defaults by specifying &-d at any Configure prompt. This
is useful if you have to re-run Configure to only change a few
settings.
Signal type set correctly for the cast{i32,neg} tests.
archname detection improved a bit
guard against ksh users who have set -u
Oldconfig.U cleaned up and regularized a bit more.
Guard against hint files using (and over-writing) $tmp.
Command line options now are processed after metaconfig INIT
lines. Thus things like Configure -Uuseposix should work now.
Various miscellaneous clean-ups.
better use/detection of tr.
i_db.U now checks for hash and prefix type (I think!) I can't
test it here.
i_?db*.U now all check for an associated function before deciding
to include or not the header.
MANIFEST
MANIFEST.new
Sorted & updated.
Makefile.SH
Some shells/makes bombed out on test -d lib/auto || mkdir lib/auto
Use makedir instead.
README
Some additional notes that people won't read :-).
cflags.SH
Now calls $startsh. Weird things were happening on Intergraph,
and this might be related.
config.H
Updated.
config_h.SH
Regenerated.
deb.c
Varargs dependencies on STANDARD_C replaced by I_STDARG.
doop.c
quad stuff.
ext/DB_File/DB_File.xs
Use the new DB_Hash_t and DB_Prefix_t symbols.
ext/SDBM_File/sdbm/sdbm.h
Fix #defines to be more robust.
mg.c
Replace VOIDSIG by metaconfig's Signal_t.
opcode.h
opcode.pl
semop only takes 2 arguments, not 3.
perl.c
Better guard on getenv() prototype. A hint file can use this, if
necessary. Me, I think some compilers are just too picky.
perl.h
The (very) beginnings of some Quad support. See above.
Remove the very troublesome sprintf() prototype. Since we don't
_use_ the return value anyway (since it's not portable) this
should be o.k. The problem was that some systems CAN_PROTOTYPE
but include char *sprintf(); in <stdio.h>. That's incompatible
with the version we used to have in perl.h. Most people have
a prototype for sprintf() in <stdio.h>. Those that don't probably
can get by without it anyway.
Protect the timesbuf by the specific HAS_TIMES test. Some older
gcc-2.something/Solaris 2.something installations apparently don't
have times.
pp.c
More quad stuff.
pp_ctl.c
s/STANDARD_C/I_STDARG/ for varargs stuff.
pp_sys.c
use Signal_t.
proto.h
Update to match new metaconfig names.
util.c
s/STANDARD_C/I_STDARG/ for varargs stuff.
comment out <unistd.h>. A pause prototype was causing problems on
some systems.
vms/config.vms
Changed to use Signal_t.
Diffstat (limited to 'hints')
-rw-r--r-- | hints/irix_6.sh | 25 | ||||
-rw-r--r-- | hints/next_3_2.sh | 6 |
2 files changed, 17 insertions, 14 deletions
diff --git a/hints/irix_6.sh b/hints/irix_6.sh index 79363bbc9f..5752c25e1c 100644 --- a/hints/irix_6.sh +++ b/hints/irix_6.sh @@ -11,27 +11,24 @@ i_time='define' cc="cc -32" ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -Olimit 3000" lddlflags="-32 -shared" -set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ nsl / /' -e 's/ dl / -/'` +set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ nsl / /' -e 's/ dl / /'` shift libswanted="$*" - +# # The following might be of interest if you wish to try 64-bit mode: -# irix_6.sh +# irix_6_64bit.sh # Krishna Sethuraman, krishna@mit.edu -# This will build a 64-bit perl 5 executable under IRIX 6.x. -# I had to remove socket, sun, crypt, nsl, and dl from the -# link line because there are no 64-bit libraries with these -# names (as of IRIX 6.0.1). +# taken from irix_5.sh . Changes from irix_5.sh: +# Olimit and nested comments (warning 1009) no longer accepted +# -OPT:fold_arith_limit so POSIX module will optimize +# no 64bit versions of sun, crypt, nsl, socket, dl dso's available +# as of IRIX 6.0.1 so omit those from libswanted line via `sed'. -# I don't know if this will actually build a fully working perl because I -# can't tell if the symbols normally provided by these libraries -# are provided by other libraries which remain on the link line. -# In any case, perl does build with this file without unresolved -# symbol complaints. +# perl 5 built with this hints file passes most tests (`make test'). +# Fails on op/subst test only. (built and tested under IRIX 6.0.1). # i_time='define' -# ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -Olimit 3000" +# ccflags="$ccflags -D_POSIX_SOURCE -ansiposix -D_BSD_TYPES -woff 1009 -OPT:fold_arith_limit=1046" # lddlflags="-shared" # set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ sun / /' -e 's/ crypt / /' -e 's/ nsl / /' -e 's/ dl / /'` # shift diff --git a/hints/next_3_2.sh b/hints/next_3_2.sh index 1f86526626..71c9e1040f 100644 --- a/hints/next_3_2.sh +++ b/hints/next_3_2.sh @@ -14,3 +14,9 @@ d_setpgid='define' d_setsid='define' d_tcgetpgrp='define' d_tcsetpgrp='define' +# +# On some NeXT machines, the timestamp put by ranlib is not correct, and +# this may cause useless recompiles. Fix that by adding a sleep before +# running ranlib. The '5' is an empirical number that's "long enough." +# (Thanks to Andreas Koenig <k@franz.ww.tu-berlin.de>) +ranlib='sleep 5; /bin/ranlib' |