summaryrefslogtreecommitdiff
path: root/hints
diff options
context:
space:
mode:
authorZefram <zefram@fysh.org>2011-11-17 19:53:04 +0000
committerZefram <zefram@fysh.org>2011-11-17 19:53:04 +0000
commit2ba3ed0cc50ab0b9ba47218e86872c324f31abd4 (patch)
tree4e8d4c0b4e48163bc777dc366bb0a0c26e71f062 /hints
parent36b2db7e45905e9dd8cfbd2109f0057bca16508f (diff)
downloadperl-2ba3ed0cc50ab0b9ba47218e86872c324f31abd4.tar.gz
turn off buggy optimisations in one HP compiler
Fixes [perl #103668].
Diffstat (limited to 'hints')
-rw-r--r--hints/hpux.sh17
1 files changed, 15 insertions, 2 deletions
diff --git a/hints/hpux.sh b/hints/hpux.sh
index be6c1fddb8..64de1bde0e 100644
--- a/hints/hpux.sh
+++ b/hints/hpux.sh
@@ -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}/for Integrity/{print $6}'`
+ ccversion=`what $cc_found | awk '/Compiler/{print $2}/Itanium/{print $6,$7}/for Integrity/{print $6,$7}'`
case "$ccflags" in
"-Ae "*) ;;
*) ccflags="-Ae $cc_cppflags"
@@ -414,7 +414,7 @@ case "$ccisgcc" in
fi
;;
- *) # HP's compiler cannot combine -g and -O
+ *)
case "$optimize" in
"") optimize="+O2 +Onolimit" ;;
*O[3456789]*) optimize=`echo "$optimize" | sed -e 's/O[3-9]/O2/'` ;;
@@ -436,6 +436,19 @@ case "$ccisgcc" in
# maint (5.8.8+) and blead (5.9.3+)
# -O1/+O1 passed all tests (m)'05 [ 10 Jan 2005 ]
optimize="$opt" ;;
+ B3910B*A.06.15)
+ # > cc --version
+ # cc: HP C/aC++ B3910B A.06.15 [May 16 2007]
+ # Has optimizing problems with +O2 for blead (5.15.4),
+ # see https://rt.perl.org:443/rt3/Ticket/Display.html?id=103668.
+ #
+ # +O2 +Onolimit +Onoprocelim +Ostore_ordering \
+ # +Onolibcalls=strcmp
+ # passes all tests (with/without -DDEBUGGING) [Nov 17 2011]
+ case "$optimize" in
+ *O2*) optimize="$optimize +Onoprocelim +Ostore_ordering +Onolibcalls=strcmp" ;;
+ esac
+ ;;
*) doop_cflags="optimize=\"$opt\""
op_cflags="optimize=\"$opt\"" ;;
esac