summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Prymmer <PPrymmer@factset.com>2001-01-08 10:06:51 -0800
committerJarkko Hietaniemi <jhi@iki.fi>2001-01-09 02:38:26 +0000
commit5f912e1cd092576e226110c9da134228d5d5cf3f (patch)
tree9edf2e28912b3aa4b461ce6c0b59799467afd95a
parentf649c61a38701fea1e7ea3d13674f982d2950d67 (diff)
downloadperl-5f912e1cd092576e226110c9da134228d5d5cf3f.tar.gz
updates to OS/390 hints file
Message-ID: <Pine.OSF.4.10.10101081805530.239173-100000@aspara.forte.com> In preparation os OS/390 dynamic loading. p4raw-id: //depot/perl@8373
-rw-r--r--README.os39012
-rw-r--r--hints/os390.sh126
2 files changed, 99 insertions, 39 deletions
diff --git a/README.os390 b/README.os390
index 8dd0483b2f..9cb2ceb0fd 100644
--- a/README.os390
+++ b/README.os390
@@ -150,18 +150,6 @@ file).
=item *
-A message of the form:
-
- shmat() found.
- and it returns (void *).
- *** WHOA THERE!!! ***
- The recommended value for $d_shmatprototype on this machine was "define"!
- Keep the recommended value? [y]
-
-is nothing to worry about at all.
-
-=item *
-
Do not turn on the compiler optimization flag "-O". There is
a bug in either the optimizer or perl that causes perl to
not work correctly when the optimizer is on.
diff --git a/hints/os390.sh b/hints/os390.sh
index d6f6821242..7a696348ac 100644
--- a/hints/os390.sh
+++ b/hints/os390.sh
@@ -15,53 +15,125 @@
#
# To get ANSI C, we need to use c89, and ld doesn't exist
-cc='c89'
-ld='c89'
-# To link via definition side decks we need the dll option
-cccdlflags='-W 0,dll,"langlvl(extended)"'
-# c89 hides most of the useful header stuff, _ALL_SOURCE turns it on again,
+# You can override this with Configure -Dcc=gcc -Dld=ld.
+case "$cc" in
+'') cc='c89' ;;
+esac
+case "$ld" in
+'') ld='c89' ;;
+esac
+
+# -DMAXSIG=38 maximum signal number
+# -DOEMVS is used in place of #ifdef __MVS__ in certain places.
+# -D_OE_SOCKETS alters system headers.
+# -D_XOPEN_SOURCE_EXTENDEDA alters system headers.
+# c89 hides most of the useful header stuff, _ALL_SOURCE turns it on again.
# YYDYNAMIC ensures that the OS/390 yacc generated parser is reentrant.
-# -DEBCDIC should come from Configure.
-ccflags='-DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC'
-# Turning on optimization breaks perl
-optimize='none'
+# -DEBCDIC should come from Configure and need not be mentioned here.
+# Prepend your favorites with Configure -Dccflags=your_favorites
+case "$ccflags" in
+'') ccflags='-DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC' ;;
+*) ccflags="$ccflags -DMAXSIG=38 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC" ;;
+esac
+
+# Turning on optimization breaks perl.
+# You can override this with Configure -Doptimize='-O' or somesuch.
+case "$optimize" in
+'') optimize='none' ;;
+esac
+
+# ccdlflags have yet to be determined.
+#case "$ccdlflags" in
+#'') ccdlflags='-c' ;;
+#esac
+
+# To link via definition side decks we need the dll option
+# You can override this with Configure -Ucccdlflags or somesuch.
+case "$cccdlflags" in
+'') cccdlflags='-W 0,dll,"langlvl(extended)"' ;;
+esac
+
+# ldflags have yet to be determined.
+#case "$ldflags" in
+#'') ldflags='' ;;
+#esac
+
+# lddlflags have yet to be determined.
+#case "$lddlflags" in
+#'') lddlflags='' ;;
+#esac
-alignbytes=8
+case "$so" in
+'') so='a' ;;
+esac
-usemymalloc='n'
+case "$alignbytes" in
+'') alignbytes=8 ;;
+esac
-so='a'
+case "$usemymalloc" in
+'') usemymalloc='n' ;;
+esac
# On OS/390, libc.a doesn't really hold anything at all,
# so running nm on it is pretty useless.
-usenm='n'
-
-# Dynamic loading doesn't work on OS/390 quite yet
-usedl='n'
-dlext='none'
+# You can override this with Configure -Dusenm.
+case "$usenm" in
+'') usenm='false' ;;
+esac
-# Configure can't figure this out for some reason
-d_shmatprototype='define'
+# Dynamic loading doesn't work on OS/390 quite yet.
+# You can override this with
+# Configure -Dusedl -Ddlext=.so -Ddlsrc=dl_dllload.xs.
+case "$usedl" in
+'') usedl='n' ;;
+esac
+case "$dlext" in
+'') dlext='none' ;;
+esac
+#case "$dlsrc" in
+#'') dlsrc='none' ;;
+#esac
+case "$ldlibpthname" in
+'') ldlibpthname=LIBPATH ;;
+esac
-usenm='false'
-i_time='define'
-i_systime='define'
+# Header files to include.
+# You can override these with Configure -Ui_time -Ui_systime.
+case "$i_time" in
+'') i_time='define' ;;
+esac
+case "$i_systime" in
+'') i_systime='define' ;;
+esac
# (from aix.sh)
# uname -m output is too specific and not appropriate here
# osname should come from Configure
-#
+# You can override this with Configure -Darchname='s390' but please don't.
case "$archname" in
'') archname="$osname" ;;
esac
-archobjs=ebcdic.o
+# Architecture related object files.
+# ebcdic.c contains special \cX mapping code for EBCDIC char sets.
+# Prepend your preference with Configure -Darchobs=your_preference.o.
+case "$archname" in
+'') archobjs="ebcdic.o" ;;
+*) archobjs="$archobjs ebcdic.o" ;;
+esac
-# We have our own cppstdin.
-echo 'cat >.$$.c; '"$cc"' -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
+# We have our own cppstdin script. This is not a variable since
+# Configure sees the presence of the script file.
+# We put system header -D definitions in so that Configure
+# can find the shmat() prototype in <sys/shm.h> and various
+# other things. Unfortunately, cppflags occurs too late to be of
+# value external to the script. This may need to be revisited
+# under a compiler other than c89.
+echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin
#
-# Note that Makefile.SH employs a bare yacc to generate
+# Note that Makefile.SH employs a bare yacc command to generate
# perly.[hc] and a2p.[hc], hence you may wish to:
#
# alias yacc='myyacc'