summaryrefslogtreecommitdiff
path: root/hints/dec_osf.sh
diff options
context:
space:
mode:
authorJarkko Hietaniemi <jhi@iki.fi>2008-01-12 05:27:10 +0200
committerSteve Peters <steve@fisharerojo.org>2008-01-12 03:13:55 +0000
commit1de7d430c3e295dfd482c700269ef72157f0fe82 (patch)
tree761fcec7804548ee110f90bb542ceca05ff4197f /hints/dec_osf.sh
parent83d8c2948ced54f03b61a7f8d341392ec3470d96 (diff)
downloadperl-1de7d430c3e295dfd482c700269ef72157f0fe82.tar.gz
tru64: poison stack, write protect string constants
Message-Id: <200801120127.m0C1RAZ6088857@kosh.hut.fi> p4raw-id: //depot/perl@32966
Diffstat (limited to 'hints/dec_osf.sh')
-rw-r--r--hints/dec_osf.sh21
1 files changed, 21 insertions, 0 deletions
diff --git a/hints/dec_osf.sh b/hints/dec_osf.sh
index 4c1820064e..510537b8f4 100644
--- a/hints/dec_osf.sh
+++ b/hints/dec_osf.sh
@@ -518,6 +518,27 @@ case "$LD_LIBRARY_PATH" in
* ) export LD_LIBRARY_PATH ;;
esac
+# Enforce strict data.
+case "$isgcc" in
+gcc) ;;
+*) # -trapuv poisons uninitialized stack with
+ # 0xfff58005fff58005 which is as a pointer a segmentation fault and
+ # as a floating point a signaling NaN. As integers/longs that causes
+ # no traps but at least it is not zero.
+ # -readonly_strings moves string constants into read-only section
+ # which hopefully means that modifying them leads into segmentation
+ # faults.
+ #
+ for i in -trapuv -readonly_strings
+ do
+ case "$ccflags" in
+ *$i*) ;;
+ *) ccflags="$ccflags $i" ;;
+ esac
+ done
+ ;;
+esac
+
#
# Unset temporary variables no more needed.
#