aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Gustavsson <[email protected]>2017-07-04 14:57:09 +0200
committerBjörn Gustavsson <[email protected]>2017-07-04 15:32:53 +0200
commit882c90f72ba4e298aa5a7796661c28053c540a96 (patch)
tree169d8692a8dbb959aa18423eebd715af677d3723
parent3da6adc679825d17ce65e7363af6554e5ee1661a (diff)
downloadotp-882c90f72ba4e298aa5a7796661c28053c540a96.tar.gz
otp-882c90f72ba4e298aa5a7796661c28053c540a96.tar.bz2
otp-882c90f72ba4e298aa5a7796661c28053c540a96.zip
macOS: Fix problems loading crypto
On macOS, it was not possible to start crypto after running observer. (ERL_251) On the beta of macOS 10.13 (High Sierra), crypto does not work at all. (ERL-439) The problem is that the use of the -flat_namespace option when linking dynamic drivers such as the one for crypto. With that option, all function names must be unique among all linked libraries and frameworks, or the wrong function could be called. Resolve the problem by using the two-level namespace as recommended by Apple. We need to use the -bundle_loader option to point out beam.smp when building all drivers and NIF libraries. https://bugs.erlang.org/browse/ERL-251 https://bugs.erlang.org/browse/ERL-439
-rw-r--r--erts/configure.in2
1 files changed, 1 insertions, 1 deletions
diff --git a/erts/configure.in b/erts/configure.in
index 830e3d7776..85351ab7c7 100644
--- a/erts/configure.in
+++ b/erts/configure.in
@@ -3855,7 +3855,7 @@ case $host_os in
darwin*)
# Mach-O linker: a shared lib and a loadable
# object file is not the same thing.
- DED_LDFLAGS="-bundle -flat_namespace -undefined suppress"
+ DED_LDFLAGS="-bundle -bundle_loader ${ERL_TOP}/bin/$host/beam.smp"
case $ARCH in
amd64)
DED_LDFLAGS="-m64 $DED_LDFLAGS"