[PATCH] error_handler: add no_native compiler directive
Mon Oct 4 23:34:06 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
Patch has been tested and confirmed to make --enable-native-libs
Signed-off-by: Mikael Pettersson <>
Acked-by: Tuncer Ayaz <>
lib/kernel/src/error_handler.erl | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/lib/kernel/src/error_handler.erl b/lib/kernel/src/error_handler.erl
index 17dd02a..885eeb2 100644
@@ -17,6 +17,11 @@
+%% FIXME: remove no_native directive after HiPE has been changed to make
+%% remote calls link to the target's Export* like BEAM does.
+%% For a detailed explanation see the commit titled
+%% "error_handler: add no_native compiler directive"
%% A simple error handler.
More information about the erlang-patches