X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Fos390.sh;h=4eff5a82174c80832aca40873223ff6f4e68d585;hb=ccf874816b57b9b91848a81cf43371bf7b3f17c8;hp=7a696348acf65bf107d99902cc4ef501c6b90345;hpb=5f912e1cd092576e226110c9da134228d5d5cf3f;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/os390.sh b/hints/os390.sh index 7a69634..4eff5a8 100644 --- a/hints/os390.sh +++ b/hints/os390.sh @@ -3,7 +3,8 @@ # OS/390 hints by David J. Fiander # # OS/390 OpenEdition Release 3 Mon Sep 22 1997 thanks to: -# +# +# John Goodyear # John Pfuntner # Len Johnson # Bud Huff @@ -42,27 +43,12 @@ 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)"' ;; +'') cccdlflags='-W 0,dll' ;; esac -# ldflags have yet to be determined. -#case "$ldflags" in -#'') ldflags='' ;; -#esac - -# lddlflags have yet to be determined. -#case "$lddlflags" in -#'') lddlflags='' ;; -#esac - case "$so" in '') so='a' ;; esac @@ -82,18 +68,57 @@ case "$usenm" in '') usenm='false' ;; esac -# 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' ;; +# Setting ldflags='-Wl,EDIT=NO' will get rid of the symbol +# information at the end of the executable (=> smaller binaries). +# Override this option with -Dldflags='whatever else you wanted'. +case "$ldflags" in +'') ldflags='-Wl,EDIT=NO' ;; esac -#case "$dlsrc" in -#'') dlsrc='none' ;; -#esac + +# In order to build with dynamic be sure to specify: +# Configure -Dusedl +# Do not forget to add $archlibexp/CORE to your LIBPATH. +# You might want to override some of this with things like: +# Configure -Dusedl -Ddlext=so -Ddlsrc=dl_dllload.xs. +case "$usedl" in +'') + usedl='n' + case "$dlext" in + '') dlext='none' ;; + esac + ;; +define) + case "$useshrplib" in + '') useshrplib='true' ;; + esac + case "$dlsrc" in + '') dlsrc='dl_dllload.xs' ;; + esac + # For performance use 'so' at or beyond v2.8, 'dll' for 2.7 and prior versions + case "`uname -v`x`uname -r`" in + 02x0[89].*|02x1[0-9].*|[0-9][3-9]x*) + so='so' + case "$dlext" in + '') dlext='so' ;; + esac + ;; + *) + so='dll' + case "$dlext" in + '') dlext='dll' ;; + esac + ;; + esac + libperl="libperl.$so" + ccflags="$ccflags -D_SHR_ENVIRON -DPERL_EXTERNAL_GLOB -Wc,dll" + cccdlflags='-c -Wc,dll,EXPORTALL' + # The following will need to be modified for the installed libperl.x. + # The modification to Config.pm is done by the installperl script after the build and test. + ccdlflags="-W l,dll `pwd`/libperl.x" + lddlflags="-W l,dll `pwd`/libperl.x" + ;; +esac +# even on static builds using LIBPATH should be OK. case "$ldlibpthname" in '') ldlibpthname=LIBPATH ;; esac @@ -115,14 +140,6 @@ case "$archname" in '') archname="$osname" ;; esac -# 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 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 @@ -130,7 +147,14 @@ esac # 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. +case "$usedl" in +define) +echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -D_SHR_ENVIRON -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin + ;; +*) echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -E -Wc,NOLOC ${1+"$@"} .$$.c; rm .$$.c' > cppstdin + ;; +esac # # Note that Makefile.SH employs a bare yacc command to generate