summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarel Gardas <karel.gardas@centrum.cz>2016-08-13 18:49:53 +0200
committerKarel Gardas <karel.gardas@centrum.cz>2016-08-22 16:13:52 +0200
commitf9aa996f0af59f32dc7b1528ff78be41413a9c27 (patch)
tree7a2f860eba2840bb023ad0ea23a1831acc19c836
parent0d3bf62092de83375025edca6f7242812338542d (diff)
downloadhaskell-f9aa996f0af59f32dc7b1528ff78be41413a9c27.tar.gz
pass -z wxneeded or -Wl,-zwxneeded for linking on OpenBSD
Summary: This patch fixes issue with abort in GHCi on OpenBSD current as of Aug 12 2016. The OpenBSD is more and more strict about usage of writable and executable memory. Programs/applications which requires such functionality need to be linked with -z wxneeded linker flag and need to be run from the file-system mounted with wxallowed mount option. If either of those options in not met, then problematic program/application usually fail on some mmap/mprotect call which fail. Reviewers: bgamari, austin, hvr Subscribers: thomie, erikd Differential Revision: https://phabricator.haskell.org/D2454
-rw-r--r--aclocal.m47
1 files changed, 7 insertions, 0 deletions
diff --git a/aclocal.m4 b/aclocal.m4
index ce8944c04d..df9d42028d 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -653,6 +653,13 @@ AC_DEFUN([FPTOOLS_SET_C_LD_FLAGS],
$5="$$5 -D_THREAD_SAFE"
;;
+ x86_64-*-openbsd*)
+ # We need -z wxneeded at least to link ghc-stage2 to workaround
+ # W^X issue in GHCi on OpenBSD current (as of Aug 2016)
+ $3="$$3 -Wl,-zwxneeded"
+ $4="$$4 -z wxneeded"
+ ;;
+
esac
# If gcc knows about the stack protector, turn it off.