This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Implemented AIX longdouble support in hints/aix.sh, which now
[perl5.git] / hints / aix.sh
index e6e97a9..68826d4 100644 (file)
@@ -5,7 +5,7 @@
 #        Jarkko Hietaniemi <jhi@iki.fi>.
 # AIX 4.3.x LP64 build by Steven Hirsch <hirschs@btv.ibm.com>
 # Merged on Mon Feb  6 10:22:35 EST 1995 by
-#   Andy Dougherty  <doughera@lafcol.lafayette.edu>
+#   Andy Dougherty  <doughera@lafayette.edu>
 
 #
 # Contact dfavor@corridor.com for any of the following:
@@ -51,7 +51,8 @@ esac
 # Intuiting the existence of system calls under AIX is difficult,
 # at best; the safest technique is to find them empirically.
 
-# AIX 4.3.* and above default to using nm for symbol extraction
+# AIX 4.3.* and above default to letting Configure test if nm
+# extraction will work.
 case "$osvers" in
    3.*|4.1.*|4.2.*)
       case "$usenm" in
@@ -62,9 +63,6 @@ case "$osvers" in
          esac
       ;;
    *)
-      case "$usenm" in
-         '') usenm='true'
-         esac
       case "$usenativedlopen" in
          '') usenativedlopen='true'
          esac
@@ -147,7 +145,7 @@ case "$cc" in
      gccversion=`$cc --version | sed 's/.*(GCC) *//`
      fi
    ;;
-*) ccversion=`lslpp -L | grep 'C for AIX Compiler$' | awk '{print $2}'`
+*) ccversion=`lslpp -L | grep 'C for AIX Compiler$' | grep -v '\.msg\.[A-Za-z_]*\.' | awk '{print $2}'`
    case "$ccversion" in
      '') ccversion=`lslpp -L | grep 'IBM C and C++ Compilers LUM$' | awk '{print $2}'`
         ;;
@@ -211,6 +209,50 @@ esac
 # the required -bE:$installarchlib/CORE/perl.exp is added by
 # libperl.U (Configure) later.
 
+case "$use64bitall" in
+    $define|true|[yY]*) use64bitint="$define" ;;
+    esac
+
+case "$usemorebits" in
+    $define|true|[yY]*) use64bitint="$define"; uselongdouble="$define" ;;
+    esac
+
+case $cc_type in
+    vac|xlc)
+       case "$uselongdouble" in
+           $define|true|[yY]*)
+               ccflags="$ccflags -qlongdouble"
+               libswanted="c128 $libswanted"
+               ;;
+           esac
+    esac
+
+case "$cc" in
+*gcc*) ;;
+cc*|xlc*) # cc should've been set by line 116 or so if empty.
+       if test ! -x /usr/bin/$cc -a -x /usr/vac/bin/$cc; then
+               case ":$PATH:" in
+               *:/usr/vac/bin:*) ;;
+               *) if test ! -x /QOpenSys/usr/bin/$cc; then
+                       # The /QOpenSys/usr/bin/$cc saves us if we are
+                       # building natively in OS/400 PASE.
+                       cat >&4 <<EOF
+
+***
+*** You either implicitly or explicitly specified an IBM C compiler,
+*** but you do not seem to have one in /usr/bin, but you seem to have
+*** the VAC installed in /usr/vac, but you do not have the /usr/vac/bin
+*** in your PATH.  I suggest adding that and retrying Configure.
+***
+EOF
+                       exit 1
+                  fi 
+                  ;;
+               esac
+       fi
+       ;;
+esac
+
 case "$ldlibpthname" in
 '') ldlibpthname=LIBPATH ;;
 esac
@@ -251,7 +293,8 @@ $define|true|[yY]*)
        ccflags="$ccflags -DNEED_PTHREAD_INIT"
        case "$cc" in
        *gcc*)
-echo "GCC $gccversion disabling some _r functions" >&4
+           ccflags="-D_THREAD_SAFE $ccflags"
+           echo "GCC $gccversion disabling some _r functions" >&4
            case "$gccversion" in
                3*) d_drand48_r='undef'
                    d_endgrent_r='undef'
@@ -515,4 +558,37 @@ else
        esac
 fi
 
+case "$PASE" in
+define)
+       case "$prefix" in
+       '') prefix=/QOpenSys/perl ;;
+       esac
+       cat >&4 <<EOF
+
+***
+*** You seem to be compiling in AIX for the OS/400 PASE environment.
+*** I'm not going to use the AIX bind, nsl, and possible util libraries, then.
+*** I'm also not going to install perl as /usr/bin/perl.
+*** Perl will be installed under $prefix.
+*** For instructions how to install this build from AIX to PASE,
+*** see the file README.os400.  Accept the "aix" for the question
+*** about "Operating system name".
+***
+EOF
+       set `echo " $libswanted " | sed -e 's@ bind @ @' -e 's@ nsl @ @' -e 's@ util @ @'`
+       shift
+       libswanted="$*"
+       installusrbinperl="$undef"
+
+       # V5R1 doesn't have this (V5R2 does), without knowing
+       # which one we have it's safer to be pessimistic.
+       # Cwd will work fine even without fchdir(), but if
+       # V5R1 tries to use code compiled assuming fchdir(),
+       # lots of grief will issue forth from Cwd.
+       case "$d_fchdir" in
+       '') d_fchdir="$undef" ;;
+       esac
+       ;;
+esac
+
 # EOF