config.h will define USE_64_BITS if need be.
[p5sagit/p5-mst-13.2.git] / hints / aix.sh
index fcf4adb..5a027b3 100644 (file)
@@ -17,7 +17,7 @@
 #
 #    - use nm in AIX 43x and above
 #    - gcc + threads now builds
-#    - added support for socks, when Dccflags=-DSOCKS specified
+#    [(added support for socks) Jul 99 SOCKS support rewritten]
 #
 # Notes:
 #
@@ -61,7 +61,7 @@ case "$osvers" in
 esac
 
 so="a"
-dlext="so"
+dlext="o"
 
 # Trying to set this breaks the POSIX.c compilation
 
@@ -95,8 +95,13 @@ d_setreuid='undef'
 #
 # Tell perl which symbols to export for dynamic linking.
 case "$cc" in
-*gcc*) ccdlflags='-Xlinker -bE:perl.exp' ;;
-*) ccdlflags='-bE:perl.exp' ;;
+*gcc*) ccdlflags='-Xlinker' ;;
+esac
+# the required -bE:$installarchlib/CORE/perl.exp is added by
+# libperl.U (Configure) later.
+
+case "$ldlibpthname" in
+'') ldlibpthname=LIBPATH ;;
 esac
 
 # The first 3 options would not be needed if dynamic libs. could be linked
@@ -113,54 +118,6 @@ case "$osvers" in
     ;;
 esac
 
-# Save this for backward compatibility for now.
-# Configure already (5.005_58) knows how to probe for
-# <socks.h> and libsocks.  What sucks is that the name
-# of the socks library seems to be version dependent
-# (e.g. libsocks5), bleagh.
-#
-# if $ccflags contains -DSOCKS, then add socks library support.
-#
-# It is expected that libsocks.a resides in /usr/local/lib and that
-# socks.h resides in /usr/local/include. If these files live some
-# different place then modify 
-#
-
-for arg in $ccflags ; do
-
-   if [ "$arg" = "-DSOCKS" ] ; then
-
-      sockslib=socks5
-      incpath=/usr/local/include
-      libpath=/usr/local/lib
-
-      lddlflags="$lddlflags -l$sockslib"
-
-      # setting $libs here breaks the optional libraries search
-      # for some reason, so use $libswanted instead
-      #libs="$libs -lsocks5"
-
-      libswanted="$libswanted $sockslib"
-
-      #
-      # path for include file
-      #
-
-      locincpth="$locincpath /usr/local/include"
-
-      #
-      # path for library not needed, if in /usr/local/lib as that
-      # directory is already searched.
-      #
-
-      #loclibpth="$loclibpath /usr/local/lib"
-
-      break
-
-   fi
-
-done
-
 # This script UU/usethreads.cbu will get 'called-back' by Configure 
 # after it has prompted the user for whether to use threads.
 cat > UU/usethreads.cbu <<'EOCBU'
@@ -176,6 +133,13 @@ $define|true|[yY]*)
            # (e.g. pragma/overload core dumps)
            # --jhi@iki.fi
            cc=cc_r
+           if test ! -e /bin/cc_r; then
+                   cat >&4 <<EOM
+For pthreads you should use the AIX C compiler cc_r.
+But I cannot find it in /bin.
+Cannot continue, aborting.
+EOM
+           fi
             ;;
         '') 
            cc=cc_r
@@ -183,7 +147,7 @@ $define|true|[yY]*)
         *)
            cat >&4 <<EOM
 For pthreads you should use the AIX C compiler cc_r.
-(now your compiler was '$cc')
+(now your compiler was set to '$cc')
 Cannot continue, aborting.
 EOM
            exit 1
@@ -210,23 +174,46 @@ EOCBU
 cat > UU/use64bits.cbu <<'EOCBU'
 case "$use64bits" in
 $define|true|[yY]*)
-           case "`uname -r`" in
+           case "`oslevel`" in
            3.*|4.[012].*)
                cat >&4 <<EOM
-AIX `uname -r` does not support 64-bit interfaces.
-You should upgrade to at least AIX 4.3.
+AIX `oslevel` does not support 64-bit interfaces.
+You should upgrade to at least AIX 4.2.
 EOM
                exit 1
                ;;
            esac
-           ccflags="$ccflags `getconf XBS5_LPBIG_OFFBIG_CFLAGS`"
            ccflags="$ccflags -DUSE_LONG_LONG"
-           ldflags="$ldflags `getconf XBS5_LPBIG_OFFBIG_LDFLAGS`"
-           libswanted="$libswanted `getconf XBS5_LPBIG_OFFBIG_LIBS`"
+           ccflags="$ccflags `getconf XBS5_ILP32_OFFBIG_CFLAGS 2>/dev/null`"
+
+           ldflags="$ldflags `getconf XBS5_ILP32_OFFBIG_LDFLAGS 2>/dev/null`"
+           # _Somehow_ in AIX 4.3.1.0 the above getconf call manages to
+           # insert(?) *something* to $ldflags so that later (in Configure) evaluating
+           # $ldflags causes a newline after the '-b64' (the result of the getconf).
+           # (nothing strange shows up in $ldflags even in hexdump;
+           #  so it may be something in the shell, instead?)
+           # Try it out: just uncomment the below line and rerun Configure:
+#          echo >& "AIX $ldflags mystery" ; exit 1
+           # Just don't ask me how AIX does it.
+           # Therefore the line re-evaluating ldflags: it seems to bypass
+           # the whatever it was AIX managed to break. --jhi
+           ldflags="`echo $ldflags`"
+
+           libswanted="$libswanted `getconf XBS5_ILP32_OFFBIG_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g'`"
            # When a 64-bit cc becomes available $archname64
            # may need setting so that $archname gets it attached.
            ;;
 esac
 EOCBU
 
+# This script UU/uselongdouble.cbu will get 'called-back' by Configure 
+# after it has prompted the user for whether to use long doubles.
+cat > UU/uselongdouble.cbu <<'EOCBU'
+case "$uselongdouble" in
+$define|true|[yY]*)
+       ccflags="$ccflags -qlongdouble"
+       ;;
+esac
+EOCBU
+
 # EOF