test() in CPAN.pm
[p5sagit/p5-mst-13.2.git] / hints / hpux.sh
index f236303..f354c0f 100644 (file)
@@ -31,15 +31,20 @@ else
        sed -e 's/HP-//' -e 1q`;
     selecttype='int *'
     fi
-    # For some strange reason, the u32align test from Configure hangs in
-    # HP-UX 10.20 since the December 2001 patches.  So hint it to avoid
-    # the test.
-    if [ "$xxOsRevMajor" -le 10 ]; then
-       d_u32align=$define
+
+# For some strange reason, the u32align test from Configure hangs in
+# HP-UX 10.20 since the December 2001 patches.  So hint it to avoid
+# the test.
+if [ "$xxOsRevMajor" -le 10 ]; then
+    d_u32align=$define
     fi
 
 echo "Archname is $archname"
 
+# Fix XSlib (CPAN) confusion when re-using a prefix but changing from ILP32
+# to LP64 builds.  They're NOT binary compatible, so quit claiming they are.
+archname64=LP64
+
 
 ### HP-UX OS specific behaviour
 
@@ -73,16 +78,19 @@ case `$cc -v 2>&1`"" in
                # Done too late in Configure if hinted
                gccversion=`$cc --version`
                fi
-           case "$gccversion" in
-               [012]*) # HP-UX and gcc-2.* break UINT32_MAX :-(
-                       ccflags="$ccflags -DUINT32_MAX_BROKEN"
-                       ;;
-               esac
+           case "$gccversion" in
+               [012]*) # HP-UX and gcc-2.* break UINT32_MAX :-(
+                       ccflags="$ccflags -DUINT32_MAX_BROKEN"
+                       ;;
+               esac
            case "`getconf KERNEL_BITS 2>/dev/null`" in
                *64*)
                    echo "main(){}">try.c
                    case "$gccversion" in
-                       3*) ccflags="$ccflags -mpa-risc-2-0"
+                       3*)
+                           case "$archname" in
+                               PA-RISC*) ccflags="$ccflags -mpa-risc-2-0" ;;
+                               esac
                            ;;
                        *)  # gcc with gas will not accept +DA2.0
                            case "`$cc -c -Wa,+DA2.0 try.c 2>&1`" in
@@ -101,12 +109,14 @@ case `$cc -v 2>&1`"" in
                            gnu_ld=yes
                            ;;
                        *)                      # HPld
-                           case "$gccversion" in
-                               [12]*)
-                                   ldflags="$ldflags -Wl,+vnocompatwarnings"
-                                   ccflags="$ccflags -Wl,+vnocompatwarnings"
-                                   ;;
-                               esac
+                          case "$gccversion" in
+                              [12]*)
+                                  # Why not 3 as well here?
+                                  # Since not relevant to IA64, not changed.
+                                  ldflags="$ldflags -Wl,+vnocompatwarnings"
+                                  ccflags="$ccflags -Wl,+vnocompatwarnings"
+                                  ;;
+                              esac
                            ;;
                        esac
                    rm -f try.c
@@ -168,16 +178,16 @@ case "$archname" in
        so='so'
        ;;
     *)
-    case "$uselongdouble" in
-       *) ;;
-       $define|true|[yY]*)
-           cat <<EOM >&4
+       case "$uselongdouble" in
+           *) ;;
+           $define|true|[yY]*)
+               cat <<EOM >&4
 
 *** long doubles are not (yet) supported on HP-UX (any version)
 *** Until it does, we cannot continue, aborting.
 EOM
-           exit 1 ;;
-       esac
+               exit 1 ;;
+           esac
        ;;
     esac
 
@@ -221,8 +231,15 @@ EOM
                # HP-UX soon, including a user-friendly exit
                case $gcc_64native in
                    no) case "$gccversion" in
-                           [12]*)  ccflags="$ccflags -mlp64"
-                                   ldflags="$ldflags -Wl,+DD64"
+                           [123]*) ccflags="$ccflags -mlp64"
+                                   case "$archname" in
+                                       PA-RISC*)
+                                           ldflags="$ldflags -Wl,+DD64"
+                                           ;;
+                                       IA64*)
+                                           ldflags="$ldflags -mlp64"
+                                           ;;
+                                       esac
                                    ;;
                            esac
                        ;;
@@ -349,14 +366,14 @@ case "$ccisgcc" in
            esac
        case "$optimize" in
            *-O*|\
-           *O2*)    opt=`echo "$optimize" | sed -e 's/-O/+O2/' -e 's/O2/O1/' -e 's/ *+Onolimit//'`
+           *O2*)   opt=`echo "$optimize" | sed -e 's/-O/+O2/' -e 's/O2/O1/' -e 's/ *+Onolimit//'`
                    ;;
-           *)  opt="$optimize"
-               ;;
-               esac
+           *)      opt="$optimize"
+                   ;;
+           esac
        if [ $maxdsiz -le 64 ]; then
-               toke_cflags="$toke_cflags;optimize=\"$opt\""
-               regexec_cflags="optimize=\"$opt\""
+           toke_cflags="$toke_cflags;optimize=\"$opt\""
+           regexec_cflags="optimize=\"$opt\""
            fi
        case "$archname" in
            IA64*)
@@ -397,7 +414,7 @@ ccflags_uselargefiles="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
        *) ccflags="$ccflags $ccflags_uselargefiles" ;;
        esac
 
-        if test -z "$ccisgcc" -a -z "$gccversion"; then
+       if test -z "$ccisgcc" -a -z "$gccversion"; then
            # The strict ANSI mode (-Aa) doesn't like large files.
            ccflags=`echo " $ccflags "|sed 's@ -Aa @ @g'`
            case "$ccflags" in
@@ -432,10 +449,10 @@ EOM
                if [ -f /usr/lib/libcma.sl ]; then
                    # DCE (from Core OS CD) is installed
 
-                   # Check if it is pristine, or patched
-                   cmavsn=`what /usr/lib/libcma.sl 2>&1 | grep 1996`
-                   if [ ! -z "$cmavsn" ]; then
-                       cat <<EOM >&4
+                  # Check if it is pristine, or patched
+                  cmavsn=`what /usr/lib/libcma.sl 2>&1 | grep 1996`
+                  if [ ! -z "$cmavsn" ]; then
+                      cat <<EOM >&4
 \a
 ***************************************************************************
 
@@ -450,8 +467,8 @@ consider to upgrade using patch PHSS_23672 (read README.hpux)
 
 (sleeping for 10 seconds...)
 EOM
-                         sleep 10
-                       fi
+                      sleep 10
+                      fi
 
                    # It needs # libcma and OLD_PTHREADS_API. Also
                    # <pthread.h> needs to be #included before any
@@ -518,3 +535,14 @@ d_isnan='define'
 d_isinf='define'
 d_isfinite='define'
 d_unordered='define'
+# Next one(s) need the leading tab.  These are special 'hint' symbols that
+# are not to be propagated to config.sh, all related to pthreads draft 4
+# interfaces.
+case "$d_oldpthreads" in
+    ''|$undef)
+       d_crypt_r_proto='undef'
+       d_getgrent_r_proto='undef'
+       d_getpwent_r_proto='undef'
+       d_strerror_r_proto='undef'
+       ;;
+    esac