X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Faix.sh;h=35ee662350ad442685ff7717e386a20d1637e770;hb=8364ae4d1547eeb0d46e6f2c35b9c230722f7963;hp=d6f3dd78e0f05fb339beacb395aa4bd352de2686;hpb=01a0abb4213301078635701439a9224e30e87233;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/aix.sh b/hints/aix.sh index d6f3dd7..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]*) - lfcflags="`getconf XBS5_ILP32_OFFBIG_CFLAGS 2>/dev/null`" - lfldflags="`getconf XBS5_ILP32_OFFBIG_LDFLAGS 2>/dev/null`" +# Keep these at the left margin. +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 in the shell, instead?) + # 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 $lfldflags 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 lfldflags: 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 - lfldflags="`echo $lfldflags`" - lflibs="`getconf XBS5_ILP32_OFFBIG_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`" - case "$lfcflags$lfldflags$lflibs" in + ldflags_uselargefiles="`echo $ldflags_uselargefiles`" +# Keep this at the left margin. +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 $lfcflags" - ldflags="$ldflags $lfldflags" - libswanted="$libswanted $lflibs" + *) ccflags="$ccflags $ccflags_uselargefiles" + ldflags="$ldflags $ldflags_uselargefiles" + libswanted="$libswanted $libswanted_uselargefiles" ;; esac - lfcflags='' - lfldflags='' - lflibs='' - ;; + case "$gccversion" in + '') ;; + *) + cat >&4 <&4 "(using ccflags $ccflags)" + echo >&4 "(using ldflags $ldflags)" + ;; + esac + ;; esac EOCBU @@ -279,18 +309,18 @@ int main (void) EOCP set size if eval $compile_ok; then - lfcpuwidth=`./size` - echo "You are running on $lfcpuwidth bit hardware." + qacpuwidth=`./size` + echo "You are running on $qacpuwidth bit hardware." else dflt="32" echo " " echo "(I can't seem to compile the test program. Guessing...)" rp="What is the width of your CPU (in bits)?" . ./myread - lfcpuwidth="$ans" + qacpuwidth="$ans" fi $rm -f size.c size - case "$lfcpuwidth" in + case "$qacpuwidth" in 32*) cat >&4 < 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))'