[ PATCH ] AIX to pick the correct CC if more than one installed
H.Merijn Brand [Fri, 11 Jan 2002 13:04:15 +0000 (14:04 +0100)]
Message-Id: <20020111125951.BD84.H.M.BRAND@hccnet.nl>

p4raw-id: //depot/perl@14187

hints/aix.sh

index f862051..2d2468a 100644 (file)
@@ -137,12 +137,32 @@ d_setreuid='undef'
 #
 # Tell perl which symbols to export for dynamic linking.
 cccdlflags='none'      # All AIX code is position independent
+cc_type=xlc
 case "$cc" in
-*gcc*) ccdlflags='-Xlinker' ;;
+*gcc*)
+   cc_type=gcc
+   ccdlflags='-Xlinker' ;;
 *) ccversion=`lslpp -L | grep 'C for AIX Compiler$' | awk '{print $2}'`
    case "$ccversion" in
      '') ccversion=`lslpp -L | grep 'IBM C and C++ Compilers LUM$' | awk '{print $2}'`
-       ;;
+        ;;
+     *.*.*.*.*.*.*)            # Ahhrgg, more than one C compiler installed
+        first_cc_path=`which ${cc:-cc}`
+        case "$first_cc_path" in
+          *vac*)
+            cc_type=vac ;;
+          /usr/bin/cc)         # Check the symlink
+            if [ -h $first_cc_path ] ; then
+              ls -l $first_cc_path > reflect
+              if grep -i vac reflect >/dev/null 2>&1 ; then
+                cc_type=vac
+                fi
+              rm -f reflect
+              fi
+            ;;
+          esac
+        ccversion=`lslpp -L | grep 'C for AIX Compiler$' | grep -i $cc_type | awk '{print $2}' | head -1`
+        ;;
      esac
    case "$ccversion" in
      3.6.6.0)
@@ -209,7 +229,7 @@ esac
 case "`oslevel`" in
     4.2.1.*)
       case "$ccversion" in    # Don't know if needed for gcc
-          3.1.4.*)    # libswanted "bind ... c ..." => "... c bind ..."
+          3.1.4.*|5.0.2.*)    # libswanted "bind ... c ..." => "... c bind ..."
               set `echo X "$libswanted "| sed -e 's/ bind\( .*\) \([cC]\) / \1 \2 bind /'`
               shift
               libswanted="$*"