summaryrefslogtreecommitdiff
path: root/hints/dec_osf.sh
diff options
context:
space:
mode:
Diffstat (limited to 'hints/dec_osf.sh')
-rw-r--r--hints/dec_osf.sh15
1 files changed, 12 insertions, 3 deletions
diff --git a/hints/dec_osf.sh b/hints/dec_osf.sh
index 4ab535d005..fd7f479d2a 100644
--- a/hints/dec_osf.sh
+++ b/hints/dec_osf.sh
@@ -149,10 +149,19 @@ case "`uname -r`" in
*) if $test "X$optimize" = "X$undef"; then
lddlflags="$lddlflags -msym"
else
- lddlflags="$lddlflags $optimize -msym"
+ case "`sizer -v`" in
+ *4.0D*)
+ # QAR 56761: -O4 + .so may produce broken code,
+ # fixed in 4.0E or better.
+ ;;
+ *)
+ lddlflags="$lddlflags $optimize"
+ ;;
+ esac
+ # -msym: If using a sufficiently recent /sbin/loader,
+ # keep the module symbols with the modules.
+ lddlflags="$lddlflags -msym"
fi
- # -msym: If using a sufficiently recent /sbin/loader,
- # keep the module symbols with the modules.
;;
esac
# Yes, the above loses if gcc does not use the system linker.