summaryrefslogtreecommitdiff
path: root/Makefile.SH
diff options
context:
space:
mode:
authorMike Fulton <mikefultonpersonal@gmail.com>2021-12-07 19:06:02 -0600
committerKarl Williamson <khw@cpan.org>2021-12-08 18:55:04 -0700
commit0a91ad7bad09fcaf7a49940068a65ce44e753743 (patch)
tree6cf88398f0333eed4af79bd31c8165189ca6cd67 /Makefile.SH
parent708c7bccd2165110dd36c553089dcaa4516854bb (diff)
downloadperl-0a91ad7bad09fcaf7a49940068a65ce44e753743.tar.gz
Update compile and bind options for z/OS (os390)
This update enables us to build EBCDIC static/dynamic and 31-bit/64-bit addressing mode Perl. The number of tests that pass is consistent with the baseline before these updates, namely: For blead.31.dynamic.ebcdic Configured using -Dusedl Failed 98 tests out of 1939, 94.95% okay. Elapsed: 1038 sec u=18.13 s=6.04 cu=535.69 cs=178.56 scripts=1939 tests=1035071 For blead.64.dynamic.ebcdic Configured using -Dusedl -Duse64bitall Failed 102 tests out of 1941, 94.74% okay. Elapsed: 1057 sec u=19.49 s=6.49 cu=543.00 cs=181.00 scripts=1941 tests=1053149 These changes also provide the base support to be able to provide ASCII static/dynamic and 31-bit/64-bit addressing mode Perl. Description of changes: Makefile.SH Changes were made to the os390*) case specific part of the code. Support was added for the 64-bit DLL path because the original only had support for 31-bit. hints/os390.sh This is the largest set of changes: - Compilation and Link options were added for ASCII and 64-bit - A z/OS specific check was added to determine if the Perl code being built is ASCII or EBCDIC. The check works by looking at the first character of the shell script to see if it is an ASCII or non-ASCII character. If ASCII, then the build is deemed to be ASCII. If not ASCII, it is assumed to be EBCDIC. - Cleanup was performed to remove code for z/OS systems that are no longer supported, simplifying the file (e.g. "`uname -v`x`uname -r`" in 02x0[89].*|02x1[0-9].*|[0-9][3-9]x*) which would only be true on unsupported, very old pre-z/OS systems - The compiler has been changed from xlc to c99. Both are available as priced features of the operating system, and the c99 compiler is a better 'fit' for options processing, being more consistent with c99 on other platforms. - Suppressing warning messages for CCN3159 were added because the 1-bit bitfields flagged due to a smaller-than-int data type are harmless. - Several feature test macros were added to bring the compilation up to a modern level to enable Perl to take advantage of capabilities available on all supported z/OS 2.4 and up systems. - Removed the -Wl,EDIT=NO because debug information is no longer stored in an area that will be loaded into memory, but is now stored in a NOLOAD section. So - while this does mean that the binary on disk is a little 'fat', what is loaded into memory is not, and it means that people can have better problem determination tools available even on production Perl distributions.
Diffstat (limited to 'Makefile.SH')
-rwxr-xr-xMakefile.SH12
1 files changed, 9 insertions, 3 deletions
diff --git a/Makefile.SH b/Makefile.SH
index b2c7121dbd..e395f304db 100755
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -118,9 +118,15 @@ true)
linklibperl="-L `pwd | sed 's/\/UU$//'` -Wl,+s -Wl,+b$archlibexp/CORE -lperl"
;;
os390*)
- shrpldflags='-Wl,XPLINK,dll'
- linklibperl='libperl.x'
- ;;
+ case "$use64bitall" in
+ '') shrpldflags='-Wl,XPLINK,dll'
+ linklibperl='libperl.x'
+ ;;
+ *) shrpldflags='-Wl,LP64,dll'
+ linklibperl='libperl.x'
+ ;;
+ esac
+ ;;
esac
case "$ldlibpthname" in
'') ;;