X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/bf5ca8fdbc3b8fa0e0bb2a3747df640d563e2e84..188f0c84c39131341bfb7749b35facb3de682e0f:/hints/hpux.sh diff --git a/hints/hpux.sh b/hints/hpux.sh index 335b3dd..f769e51 100644 --- a/hints/hpux.sh +++ b/hints/hpux.sh @@ -84,7 +84,7 @@ case `$cc -v 2>&1`"" in [012]*) # HP-UX and gcc-2.* break UINT32_MAX :-( ccflags="$ccflags -DUINT32_MAX_BROKEN" ;; - 3*) # GCC (both 32bit and 64bit) will define __STDC_EXT__ + [34]*) # GCC (both 32bit and 64bit) will define __STDC_EXT__ # by default when using GCC 3.0 and newer versions of # the compiler. cppflags="$cc_cppflags" @@ -94,7 +94,7 @@ case `$cc -v 2>&1`"" in *64*) echo "main(){}">try.c case "$gccversion" in - 3*) + [34]*) case "$archname" in PA-RISC*) case "$ccflags" in @@ -136,13 +136,34 @@ case `$cc -v 2>&1`"" in esac ;; *) ccisgcc='' - ccversion=`which cc | xargs what | awk '/Compiler/{print $2}/Itanium/{print $6,$7}'` + # What cannot be use in combination with ccache links :( + cc_found="" + for p in `echo $PATH | tr : ' ''` ; do + x="$p/cc" + if [ -f $x ] && [ -x $x ]; then + if [ -h $x ]; then + l=`ls -l $x | sed 's,.*-> ,,'` + case $l in + /*) x=$l ;; + *) x="$p/$l" ;; + esac + fi + x=`echo $x | sed 's,/\./,/,g'` + case $x in + *ccache*) ;; + *) [ -z "$cc_found" ] && cc_found=$x ;; + esac + fi + done + [ -z "$cc_found" ] && cc_found=`which cc` + what $cc_found >&4 + ccversion=`what $cc_found | awk '/Compiler/{print $2}/Itanium/{print $6,$7}'` case "$ccflags" in "-Ae "*) ;; *) ccflags="-Ae $cc_cppflags" # +vnocompatwarnings not known in 10.10 and older if [ $xxOsRev -ge 1020 ]; then - ccflags="$cc_cppflags -Wl,+vnocompatwarnings" + ccflags="$ccflags -Wl,+vnocompatwarnings" fi ;; esac @@ -226,7 +247,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 @@ -248,15 +269,16 @@ EOM # HP-UX soon, including a user-friendly exit case $gcc_64native in no) case "$gccversion" in - [123]*) ccflags="$ccflags -mlp64" - case "$archname" in - PA-RISC*) - ldflags="$ldflags -Wl,+DD64" - ;; - IA64*) - ldflags="$ldflags -mlp64" - ;; - esac + [1234]*) + ccflags="$ccflags -mlp64" + case "$archname" in + PA-RISC*) + ldflags="$ldflags -Wl,+DD64" + ;; + IA64*) + ldflags="$ldflags -mlp64" + ;; + esac ;; esac ;; @@ -283,7 +305,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 @@ -320,7 +342,7 @@ 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 @@ -343,7 +365,7 @@ doop_cflags='' case "$ccisgcc" in $define|true|[Yy]) - + case "$optimize" in "") optimize="-g -O" ;; *O[3456789]*) optimize=`echo "$optimize" | sed -e 's/O[3-9]/O2/'` ;; @@ -388,15 +410,24 @@ 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\"" ;; + 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' @@ -409,7 +440,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 @@ -473,7 +504,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]*) @@ -500,7 +531,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 @@ -568,7 +599,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 @@ -614,26 +645,12 @@ EOM 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 @@ -642,10 +659,18 @@ 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 +# HP-UX 11 +if [ $xxOsRevMajor -lt 11 ]; then + d_ctime_r="$undef" + d_asctime_r="$undef" + 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'