Re: [PATCH B::Deparse] fix string uninterpretation
[p5sagit/p5-mst-13.2.git] / hints / hpux.sh
index c7bc695..8623715 100644 (file)
@@ -37,27 +37,59 @@ echo "Archname is $archname"
 
 ### HP-UX OS specific behaviour
 
-# Initial setting of some flags
-ccflags="$ccflags -D_HPUX_SOURCE"
-ldflags="$ldflags -D_HPUX_SOURCE"
+case "$ccflags" in
+'') cc_cppflags='' ;;
+*)  set `echo " $ccflags " | sed -e 's/ -A[ea] / /g' -e 's/ -D_HPUX_SOURCE / /'`
+    cc_cppflags="$* -D_HPUX_SOURCE"
+    ;;
+esac
+ccflags="-Ae $cc_cppflags"
+cppflags="-Aa -D__STDC_EXT__ $cc_cppflags"
+
+case "$prefix" in
+    "") prefix='/opt/perl5' ;;
+    esac
 
-# When HP-UX runs a script with "#!", it sets argv[0] to the script name.
-toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'
+# -ldbm is obsolete and should not be used
+# -lBSD contains BSD-style duplicates of SVR4 routines that cause confusion
+# -lPW is obsolete and should not be used
+# The libraries crypt, malloc, ndir, and net are empty.
+set `echo " $libswanted " | sed -e 's/ ld / /' -e 's/ dbm / /' -e 's/ BSD / /' -e 's/ PW / /'`
+libswanted="$*"
+
+# By setting the deferred flag below, this means that if you run perl
+# on a system that does not have the required shared library that you
+# linked it with, it will die when you try to access a symbol in the
+# (missing) shared library.  If you would rather know at perl startup
+# time that you are missing an important shared library, switch the
+# comments so that immediate, rather than deferred loading is
+# performed.  Even with immediate loading, you can postpone errors for
+# undefined (or multiply defined) routines until actual access by
+# adding the "nonfatal" option.
+# ccdlflags="-Wl,-E -Wl,-B,immediate $ccdlflags"
+# ccdlflags="-Wl,-E -Wl,-B,immediate,-B,nonfatal $ccdlflags"
+ccdlflags="-Wl,-E -Wl,-B,deferred $ccdlflags"
 
 cc=${cc:-cc}
+
+ar=/usr/bin/ar # Yes, truly override.  We do not want the GNU ar.
+full_ar=$ar    # I repeat, no GNU ar.  arrr.
+
 case `$cc -v 2>&1`"" in
-    *gcc*) ccisgcc="$define" ;;
-    *)     ccisgcc=''
-          ccversion=`which cc | xargs what | awk '/Compiler/{print $2}'`
-          case "$d_casti32" in
-              "") d_casti32='undef' ;;
-              esac
-          ;;
+    *gcc*)  ccisgcc="$define" ;;
+    *)      ccisgcc=''
+           ccversion=`which cc | xargs what | awk '/Compiler/{print $2}'`
+           case "`getconf KERNEL_BITS 2>/dev/null`" in
+               *64*) ldflags="$ldflags -Wl,+vnocompatwarnings" ;;
+               esac
+           case "$d_casti32" in
+               "") d_casti32='undef' ;;
+               esac
+           ;;
     esac
 
-set `echo X "$libswanted "| sed -e 's/ BSD//' -e 's/ PW//'`
-shift
-libswanted="$*"
+# When HP-UX runs a script with "#!", it sets argv[0] to the script name.
+toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"'
 
 
 ### 64 BITNESS
@@ -160,34 +192,6 @@ case "$ccisgcc" in
        ;;
     esac
 
-cat > UU/cc.cbu <<'EOCBU'
-# XXX This script UU/cc.cbu will get 'called-back' by Configure after it
-# XXX has prompted the user for the C compiler to use.
-# Get gcc to share its secrets.
-echo 'main() { return 0; }' > try.c
-       # Indent to avoid propagation to config.sh
-       verbose=`${cc:-cc} -v -o try try.c 2>&1`
-       if echo "$verbose" | grep '^Reading specs from' >/dev/null 2>&1; then
-               # Using gcc.
-       : nothing to see here, move on.
-       else
-               # Using cc.
-               ar=${ar:-ar}
-               case "`$ar -V 2>&1`" in
-               *GNU*)
-                   if test -x /usr/bin/ar; then
-                       cat <<END >&2
-*** You are using HP cc(1) but GNU ar(1).  This might lead into trouble
-*** later on, I'm switching to HP ar to play safe.
-
-END
-                       ar=/usr/bin/ar
-                   fi
-                   ;;
-               esac
-       fi
-EOCBU
 
 ## LARGEFILES