X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Faix.sh;h=2f19f1cebbaded8d3972d3d7cf243358877de2b0;hb=973abda3de19f81f0355443e0fb0b20961973762;hp=8a29b93e5b1c37f0b004a2585baf56d4cc3fb03e;hpb=4b19af017623bfa3bb72bb164598a517f586e0d3;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/aix.sh b/hints/aix.sh index 8a29b93..2f19f1c 100644 --- a/hints/aix.sh +++ b/hints/aix.sh @@ -128,6 +128,49 @@ 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) + cat >&4 <&4 <&4 < "... c bind ..." + set `echo X "$libswanted "| sed -e 's/ bind\( .*\) \([cC]\) / \1 \2 bind /'` + shift + libswanted="$*" + ;; + esac + ;; + esac # This script UU/usethreads.cbu will get 'called-back' by Configure # after it has prompted the user for whether to use threads. @@ -171,9 +228,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 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 $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 + '') ;; + *) + cat >&4 <&4 "(using ccflags $ccflags)" + echo >&4 "(using ldflags $ldflags)" + ;; + esac + ;; esac EOCBU @@ -322,13 +396,13 @@ EOM ar="ar -X64" nm_opt="-X64 $nm_opt" # Note: Placing the 'qacflags' variable into the 'ldflags' string - # is NOT a typo. ldqalags is passed to the C compiler for final + # is NOT a typo. ldflags is passed to the C compiler for final # linking, and it wants -q64 (-b64 is for ld only!). case "$qacflags$qaldflags$qalibs" in '');; *) ccflags="$ccflags $qacflags" ldflags="$ldflags $qacflags" - lddqalags="$qaldflags $lddqalags" + lddlflags="$qaldflags $lddlflags" libswanted="$libswanted $qalibs" ;; esac @@ -356,7 +430,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))'