summaryrefslogtreecommitdiff
path: root/hints
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2014-11-28 11:53:57 -0500
committerJarkko Hietaniemi <jhi@iki.fi>2014-11-29 16:54:28 -0500
commitbd86b473b240a3cb030acb29edd9aad2df62454d (patch)
tree9f7c61461bc6ff6f4e1ad0543a84f615de3b699a /hints
parent6233097676c277b9213c6a4a9a165c2b60d0418e (diff)
downloadperl-bd86b473b240a3cb030acb29edd9aad2df62454d.tar.gz
HP-UX 10.20 has pseudo-long-double which shouldn't be used.
Diffstat (limited to 'hints')
-rw-r--r--hints/hpux.sh24
1 files changed, 24 insertions, 0 deletions
diff --git a/hints/hpux.sh b/hints/hpux.sh
index 39150be73e..cb1895d94a 100644
--- a/hints/hpux.sh
+++ b/hints/hpux.sh
@@ -213,6 +213,30 @@ case "$usemorebits" in
$define|true|[yY]*) use64bitint="$define"; uselongdouble="$define" ;;
esac
+# There is a weird pre-C99 long double (a struct of four uin32_t)
+# in HP-UX 10.20 but beyond strtold() there's no support for them
+# for example in <math.h>.
+case "$uselongdouble" in
+ $define|true|[yY]*)
+ if [ "$xxOsRevMajor" -lt 11 ]; then
+ cat <<EOM >&4
+
+*** uselongdouble (or usemorebits) is not supported on HP-UX $xxOsRevMajor.
+*** You need at least HP-UX 11.0.
+*** Cannot continue, aborting.
+EOM
+ exit 1
+ fi
+ ;;
+ esac
+
+# Configure long double scan will detect the HP-UX 10.20 "long double"
+# (a struct of four uin32_t) and think it is IEEE quad. Make it not so.
+if [ "$xxOsRevMajor" -lt 11 ]; then
+ d_longdbl="$undef"
+ longdblsize=8 # Make it double.
+fi
+
case "$archname" in
IA64*)
# While here, override so=sl auto-detection