This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Don't warn about "ambiguous without parens" for ctrl-glob
[perl5.git] / hints / os390.sh
index 54787e8..5aafb4e 100644 (file)
@@ -9,7 +9,7 @@
 #     Len Johnson <lenjay@ibm.net>
 #     Bud Huff  <BAHUFF@us.oracle.com>
 #     Peter Prymmer <pvhp@forte.com>
-#     Andy Dougherty  <doughera@lafcol.lafayette.edu>
+#     Andy Dougherty  <doughera@lafayette.edu>
 #     Tim Bunce  <Tim.Bunce@ig.co.uk>
 #
 #  as well as the authors of the aix.sh file
@@ -24,7 +24,7 @@ case "$ld" in
 '') ld='c89' ;;
 esac
 
-# -DMAXSIG=38 maximum signal number
+# -DMAXSIG=39 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.
@@ -33,8 +33,8 @@ esac
 # -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" ;;
+'') ccflags='-2 -Wc,XPLINK -DMAXSIG=39 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC' ;;
+*) ccflags="$ccflags -2 -Wc,XPLINK -DMAXSIG=39 -DOEMVS -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -DYYDYNAMIC" ;;
 esac
 
 # Turning on optimization breaks perl.
@@ -68,10 +68,17 @@ case "$usenm" in
 '') usenm='false' ;;
 esac
 
-# Dynamic loading doesn't work on OS/390 quite yet.
-# However the easiest way to experiment with dynamic loading is with:
-#  Configure -Dusedl
-# You can even override some of this with things like:
+# 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 -Wl,XPLINK,dll' ;;
+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
 '')
@@ -104,17 +111,11 @@ define)
     esac
     libperl="libperl.$so"
     ccflags="$ccflags -D_SHR_ENVIRON -DPERL_EXTERNAL_GLOB -Wc,dll"
-    cccdlflags='-c -Wc,dll,EXPORTALL'
-    # You might add '-Wl,EDIT=NO' to get rid of the symbol
-    # information at the end of the executable (=> smaller binaries).
-    # Do so with -Dldflags='-Wl,EDIT=NO'.
-    case "$ldflags" in
-    '') ldflags='' ;;
-    esac
+    cccdlflags='-c -Wc,XPLINK,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"
+    ccdlflags="-W l,XPLINK,dll `pwd`/libperl.x"
+    lddlflags="-W l,XPLINK,dll `pwd`/libperl.x"
     ;;
 esac
 # even on static builds using LIBPATH should be OK.
@@ -122,14 +123,23 @@ case "$ldlibpthname" in
 '') ldlibpthname=LIBPATH ;;
 esac
 
+# The following should always be used
+d_oldpthreads='define'
+
 # Header files to include.
-# You can override these with Configure -Ui_time -Ui_systime.
+# You can override these with Configure -Ui_time -Ui_systime -Dd_pthread_atfork.
 case "$i_time" in
 '') i_time='define' ;;
 esac
 case "$i_systime" in
 '') i_systime='define' ;;
 esac
+case "$d_pthread_atfork" in
+'') d_pthread_atfork='undef' ;;
+esac
+case "$d_pthread_atfork" in                                                  
+'') d_pthread_atfork='undef' ;;                                              
+esac                                                                         
 
 # (from aix.sh)
 # uname -m output is too specific and not appropriate here
@@ -139,14 +149,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
@@ -156,10 +158,10 @@ esac
 # 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 -D_SHR_ENVIRON -E -Wc,"LANGLVL(DOLLARINNAMES)",NOLOC ${1+"$@"} .$$.c | grep -v "??="; 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
+echo 'cat >.$$.c; '"$cc"' -D_OE_SOCKETS -D_XOPEN_SOURCE_EXTENDED -D_ALL_SOURCE -E -Wc,"LANGLVL(DOLLARINNAMES)",NOLOC ${1+"$@"} .$$.c | grep -v "??="; rm .$$.c' > cppstdin
     ;;
 esac
 
@@ -210,3 +212,22 @@ EOWARN
     fi
 fi
 
+# Most of the time gcvt() seems to work fine but
+# sometimes values like 0.1, 0.2, come out as "10", "20",
+# a trivial Perl demonstration snippet is 'print 0.1'.
+# The -W 0,float(ieee) seems to be the switch breaking gcvt().
+# sprintf() seems to get things right(er).
+gconvert_preference=sprintf
+
+cat >config.arch<<'__CONFIG_ARCH__'
+# The '-W 0,float(ieee)' cannot be used during Configure as ldflags.
+
+ccflags="$ccflags -W 0,float(ieee)"
+
+__CONFIG_ARCH__
+
+# Configure gets these wrong for some reason.
+d_gethostbyaddr_r='undef'
+d_gethostbyname_r='undef'
+d_gethostent_r='undef'
+