X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=hints%2Fhpux.sh;h=f99168e66c7d1906fb3fd2f67fe56567e058a148;hb=55ec0dff636c2a8ee5225314d7d46f928ab7f6da;hp=11b34494d7ccd31a9da5e5a8601673ab60ecf002;hpb=b91b8403bb67d1c94fd711a2cfe83ea91f52e170;p=p5sagit%2Fp5-mst-13.2.git diff --git a/hints/hpux.sh b/hints/hpux.sh index 11b3449..f99168e 100644 --- a/hints/hpux.sh +++ b/hints/hpux.sh @@ -78,7 +78,7 @@ case `$cc -v 2>&1`"" in ccflags="$cc_cppflags" if [ "X$gccversion" = "X" ]; then # Done too late in Configure if hinted - gccversion=`$cc --version | sed 's/.*(GCC) *//'` + gccversion=`$cc -dumpversion` fi case "$gccversion" in [012]*) # HP-UX and gcc-2.* break UINT32_MAX :-( @@ -157,7 +157,7 @@ case `$cc -v 2>&1`"" in done [ -z "$cc_found" ] && cc_found=`which cc` what $cc_found >&4 - ccversion=`what $cc_found | awk '/Compiler/{print $2}/Itanium/{print $6,$7}'` + ccversion=`what $cc_found | awk '/Compiler/{print $2}/Itanium/{print $6,$7}/for Integrity/{print $6}'` case "$ccflags" in "-Ae "*) ;; *) ccflags="-Ae $cc_cppflags" @@ -188,14 +188,17 @@ toke_cflags='ccflags="$ccflags -DARG_ZERO_IS_SCRIPT"' gcc_64native=no case "$ccisgcc" in $define|true|[Yy]) - echo 'int main(){long l;printf("%d\\n",sizeof(l));}'>try.c + echo '#include \nint main(){long l;printf("%d\\n",sizeof(l));}'>try.c $cc -o try $ccflags $ldflags try.c if [ "`try`" = "8" ]; then - cat <&4 + case "$use64bitall" in + $define|true|[Yy]) ;; + *) cat <&4 *** This version of gcc uses 64 bit longs. -Duse64bitall is *** implicitly set to enable continuation EOM + esac use64bitall=$define gcc_64native=yes fi @@ -215,18 +218,6 @@ case "$archname" in # While here, override so=sl auto-detection so='so' ;; - *) - case "$uselongdouble" in - *) ;; - $define|true|[yY]*) - cat <&4 - -*** long doubles are not (yet) supported on HP-UX (any version) -*** Until it does, we cannot continue, aborting. -EOM - exit 1 ;; - esac - ;; esac case "$use64bitint" in @@ -247,7 +238,7 @@ EOM PA-RISC*) loclibpth="$loclibpth /lib/pa20_64" libc='/lib/pa20_64/libc.sl' ;; - IA64*) + IA64*) loclibpth="$loclibpth /usr/lib/hpux64" libc='/usr/lib/hpux64/libc.so' ;; esac @@ -305,7 +296,7 @@ EOM case "$archname" in PA-RISC*) libc='/lib/libc.sl' ;; - IA64*) + IA64*) loclibpth="$loclibpth /usr/lib/hpux32" libc='/usr/lib/hpux32/libc.so' ;; esac @@ -336,13 +327,14 @@ else ## Optimization limits cat >try.c < #include int main () { struct rlimit rl; int i = getrlimit (RLIMIT_DATA, &rl); - printf ("%d\n", rl.rlim_cur / (1024 * 1024)); + printf ("%d\n", (int)(rl.rlim_cur / (1024 * 1024))); } /* main */ EOF $cc -o try $ccflags $ldflags try.c @@ -361,11 +353,12 @@ to at least 0x08000000 (128 Mb) and rebuild your kernel. EOM regexec_cflags='' doop_cflags='' +op_cflags='' fi case "$ccisgcc" in $define|true|[Yy]) - + case "$optimize" in "") optimize="-g -O" ;; *O[3456789]*) optimize=`echo "$optimize" | sed -e 's/O[3-9]/O2/'` ;; @@ -410,15 +403,25 @@ case "$ccisgcc" in *) opt="$optimize" ;; esac - if [ $maxdsiz -le 64 ]; then - toke_cflags="$toke_cflags;optimize=\"$opt\"" - regexec_cflags="optimize=\"$opt\"" - fi case "$archname" in IA64*) - doop_cflags="optimize=\"$opt\"" + case "$ccversion" in + B3910B*A.06.0[12345]) + # > cc --version + # cc: HP aC++/ANSI C B3910B A.06.05 [Jul 25 2005] + # Has optimizing problems with -O2 and up for both + # maint (5.8.8+) and blead (5.9.3+) + # -O1/+O1 passed all tests (m)'05 [ 10 Jan 2005 ] + optimize="$opt" ;; + *) doop_cflags="optimize=\"$opt\"" + op_cflags="optimize=\"$opt\"" ;; + esac ;; esac + if [ $maxdsiz -le 64 ]; then + toke_cflags="$toke_cflags;optimize=\"$opt\"" + regexec_cflags="optimize=\"$opt\"" + fi ld=/usr/bin/ld cccdlflags='+Z' lddlflags='-b +vnocompatwarnings' @@ -431,7 +434,7 @@ if [ $xxOsRev -lt 1020 ]; then fi #case "$uselargefiles-$ccisgcc" in -# "$define-$define"|'-define') +# "$define-$define"|'-define') # cat <&4 # #*** I'm ignoring large files for this build because @@ -495,7 +498,7 @@ EOF EOCBU cat >UU/uselargefiles.cbu <<'EOCBU' -# This script UU/uselargefiles.cbu will get 'called-back' by Configure +# This script UU/uselargefiles.cbu will get 'called-back' by Configure # after it has prompted the user for whether to use large files. case "$uselargefiles" in ""|$define|true|[yY]*) @@ -522,7 +525,7 @@ EOCBU # THREADING -# This script UU/usethreads.cbu will get 'called-back' by Configure +# This script UU/usethreads.cbu will get 'called-back' by Configure # after it has prompted the user for whether to use threads. cat >UU/usethreads.cbu <<'EOCBU' case "$usethreads" in @@ -590,7 +593,7 @@ pthread_h_first="$define" localtime_r_proto='REENTRANT_PROTO_I_TS' # Avoid the poisonous conflicting (and irrelevant) - # prototypes of setkey(). + # prototypes of setkey (). i_crypt="$undef" # CMA redefines select to cma_select, and cma_select @@ -630,32 +633,24 @@ EOM set `echo X "$libswanted "| sed -e 's/ c / pthread c /'` shift libswanted="$*" - fi + # HP-UX 11.X seems to have no easy + # way of detecting these *time_r protos. + d_gmtime_r_proto='define' + gmtime_r_proto='REENTRANT_PROTO_S_TS' + d_localtime_r_proto='define' + localtime_r_proto='REENTRANT_PROTO_S_TS' + fi ;; esac EOCBU -# The mysterious io_xs memory corruption in 11.00 32bit seems to get -# fixed by not using Perl's malloc. Flip side is performance loss. -# So we want mymalloc for all situations possible -usemymalloc='y' -case "$usethreads" in - $define|true|[yY]*) usemymalloc='n' ;; - *) case "$ccisgcc" in - $undef|false|[nN]*) - case "$use64bitint" in - $undef|false|[nN]*) - case "$ccflags" in - *-DDEBUGGING*) ;; - *) usemymalloc='n' ;; - esac - ;; - esac - ;; - esac - ;; - esac +# There used to be: +# The mysterious io_xs memory corruption in 11.00 32bit seems to get +# fixed by not using Perl's malloc. Flip side is performance loss. +# So we want mymalloc for all situations possible +# That set usemymalloc to 'n' for threaded builds and non-gcc 32bit +# non-debugging builds and 'y' for all others usemymalloc='n' case "$useperlio" in @@ -664,10 +659,10 @@ case "$useperlio" in # malloc wrap works case "$usemallocwrap" in -'') usemallocwrap='define' ;; -esac + '') usemallocwrap='define' ;; + esac -# ctime_r() and asctime_r() seem to have issues for versions before +# ctime_r () and asctime_r () seem to have issues for versions before # HP-UX 11 if [ $xxOsRevMajor -lt 11 ]; then d_ctime_r="$undef" @@ -675,7 +670,7 @@ if [ $xxOsRevMajor -lt 11 ]; then fi -# fpclassify() is a macro, the library call is Fpclassify +# fpclassify () is a macro, the library call is Fpclassify # Similarly with the others below. d_fpclassify='define' d_isnan='define'