X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Faix.sh;h=35ee662350ad442685ff7717e386a20d1637e770;hb=8364ae4d1547eeb0d46e6f2c35b9c230722f7963;hp=c6a8c52e2419330d837f28440bb101d5c95d5973;hpb=d553adecd04300d132a718970d6b17b4663f3e32;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/aix.sh b/hints/aix.sh index c6a8c52..35ee662 100644 --- a/hints/aix.sh +++ b/hints/aix.sh @@ -128,6 +128,20 @@ d_setreuid='undef' # Tell perl which symbols to export for dynamic linking. case "$cc" in *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}'` + ;; + esac + case "$ccversion" in + 3.6.6.0) + optimize='none' + ;; + 4.4.0.0|4.4.0.1|4.4.0.2) + echo >&4 "*** This C compiler ($ccversion) is outdated." + echo >&4 "*** Please upgrade to at least 4.4.0.3." + ;; + esac esac # the required -bE:$installarchlib/CORE/perl.exp is added by # libperl.U (Configure) later. @@ -171,9 +185,9 @@ $define|true|[yY]*) ;; *) cat >&4 < UU/uselargefiles.cbu <<'EOCBU' case "$uselargefiles" in ''|$define|true|[yY]*) # Keep these at the left margin. -ccflags_largefiles="`getconf XBS5_ILP32_OFFBIG_CFLAGS 2>/dev/null`" -ldflags_largefiles="`getconf XBS5_ILP32_OFFBIG_LDFLAGS 2>/dev/null`" +ccflags_uselargefiles="`getconf XBS5_ILP32_OFFBIG_CFLAGS 2>/dev/null`" +ldflags_uselargefiles="`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 (a bug) in the shell, instead?) # Try it out: just uncomment the below line and rerun Configure: -# echo >&4 "AIX 4.3.1.0 $ldflags_largefiles mystery" ; exit 1 +# echo >&4 "AIX 4.3.1.0 $ldflags_uselargefiles mystery" ; exit 1 # Just don't ask me how AIX does it, I spent hours wondering. - # Therefore the line re-evaluating ldflags_largefiles: it seems to fix + # Therefore the line re-evaluating ldflags_uselargefiles: it seems to fix # the whatever it was that AIX managed to break. --jhi - ldflags_largefiles="`echo $ldflags_largefiles`" + ldflags_uselargefiles="`echo $ldflags_uselargefiles`" # Keep this at the left margin. -libswanted_largefiles="`getconf XBS5_ILP32_OFFBIG_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`" - case "$ccflags_largefiles$ldflags_largefiles$libs_largefiles" in +libswanted_uselargefiles="`getconf XBS5_ILP32_OFFBIG_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`" + case "$ccflags_uselargefiles$ldflags_uselargefiles$libs_uselargefiles" in '');; - *) ccflags="$ccflags $ccflags_largefiles" - ldflags="$ldflags $ldflags_largefiles" - libswanted="$libswanted $libswanted_largefiles" + *) ccflags="$ccflags $ccflags_uselargefiles" + ldflags="$ldflags $ldflags_uselargefiles" + libswanted="$libswanted $libswanted_uselargefiles" ;; esac case "$gccversion" in @@ -373,7 +387,10 @@ cat > UU/uselongdouble.cbu <<'EOCBU' # after it has prompted the user for whether to use long doubles. case "$uselongdouble" in $define|true|[yY]*) - ccflags="$ccflags -qlongdouble" + case "$cc" in + *gcc*) ;; + *) ccflags="$ccflags -qlongdouble" ;; + esac # The explicit cc128, xlc128, xlC128 are not needed, # the -qlongdouble should do the trick. --jhi d_Gconvert='sprintf((b),"%.*llg",(n),(x))'