[PATCH] error_handler: add no_native compiler directive
Tuncer Ayaz
tuncer.ayaz@REDACTED
Mon Oct 4 22:23:28 CEST 2010
As suggested by Mikael Pettersson:
"I agree there _may_ be a recursion between the native-traps-to-beam
mechanism and the error_handler module. However, the real problem is
that the chosen mechanism (point to target MFA's BEAM code) isn't
flexible enough to handle newer features like on_load or (apparently)
a native-mode error_handler.
My planned fix is to make remote calls link to the target's Export*
instead, just like BEAM does, which should solve the problems. This
will however require HiPE to use different kinds of trap-to-beam stubs
for remote and local calls, since local calls must not and often
cannot go via Export entries.
A simpler workaround for the error_handler issue (which I couldn't
reproduce) is to just never compile error_handler to native code. It's
not like there's a lot to gain by doing that. Please try the patch
below."
Patch has been tested and confirmed to make --enable-native-libs
useable.
Signed-off-by: Mikael Pettersson <mikpe@REDACTED>
Acked-by: Tuncer Ayaz <tuncer.ayaz@REDACTED>
---
lib/kernel/src/error_handler.erl | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/lib/kernel/src/error_handler.erl b/lib/kernel/src/error_handler.erl
index 17dd02a..db35f41 100644
--- a/lib/kernel/src/error_handler.erl
+++ b/lib/kernel/src/error_handler.erl
@@ -17,6 +17,7 @@
%% %CopyrightEnd%
%%
-module(error_handler).
+-compile(no_native).
%% A simple error handler.
More information about the erlang-patches
mailing list