diff options
author | Sverker Eriksson <sverker@erlang.org> | 2012-08-23 18:46:59 +0200 |
---|---|---|
committer | Sverker Eriksson <sverker@erlang.org> | 2012-08-23 18:46:59 +0200 |
commit | 9a9dee8bf12212830be738932c4cdb45f2db2260 (patch) | |
tree | 3cdf6f4bd99c28022741841995064d06d335277d /lib | |
parent | a94308cb1e1aa727a126e99b5a8714490dd3de16 (diff) | |
parent | 439fe7b93743528782fbe1ff00dc65d08cb25a56 (diff) | |
download | erlang-9a9dee8bf12212830be738932c4cdb45f2db2260.tar.gz |
Merge branch 'sverk/hipelibs-code_server-crash-maint' into maint
* sverk/hipelibs-code_server-crash-maint:
Fix init:restart with hipelibs
kernel: Disable hipe compilation for hipe_unified_loader
Diffstat (limited to 'lib')
-rw-r--r-- | lib/kernel/src/heart.erl | 4 | ||||
-rw-r--r-- | lib/kernel/src/hipe_unified_loader.erl | 7 | ||||
-rw-r--r-- | lib/kernel/test/code_SUITE.erl | 3 |
3 files changed, 13 insertions, 1 deletions
diff --git a/lib/kernel/src/heart.erl b/lib/kernel/src/heart.erl index 255ae4e51b..218be964a0 100644 --- a/lib/kernel/src/heart.erl +++ b/lib/kernel/src/heart.erl @@ -18,6 +18,10 @@ %% -module(heart). +-compile(no_native). +% 'no_native' as part of a crude fix to make init:restart/0 work by clearing +% all hipe inter-module information (hipe_mfa_info's in hipe_bif0.c). + %%%-------------------------------------------------------------------- %%% This is a rewrite of pre_heart from BS.3. %%% diff --git a/lib/kernel/src/hipe_unified_loader.erl b/lib/kernel/src/hipe_unified_loader.erl index 8b3aa0286d..514c002d87 100644 --- a/lib/kernel/src/hipe_unified_loader.erl +++ b/lib/kernel/src/hipe_unified_loader.erl @@ -34,6 +34,13 @@ -module(hipe_unified_loader). +-compile(no_native). +% 'no_native' is a workaround to avoid "The code server called unloaded module" +% caused by Mod:module_info(exports) in patch_to_emu_step1() called by post_beam_load. +% Reproducable with hipelibs and asn1_SUITE. +% I think the real solution would be to let BIF erlang:load_module/2 redirect all +% hipe calls to the module and thereby remove post_beam_load. + -export([chunk_name/1, %% Only the code and code_server modules may call the entries below! load_native_code/2, diff --git a/lib/kernel/test/code_SUITE.erl b/lib/kernel/test/code_SUITE.erl index 3e8bdaf1ff..827208b048 100644 --- a/lib/kernel/test/code_SUITE.erl +++ b/lib/kernel/test/code_SUITE.erl @@ -1550,7 +1550,8 @@ native_early_modules_1(Architecture) -> true -> ?line true = lists:all(fun code:is_module_native/1, [ets,file,filename,gb_sets,gb_trees, - hipe_unified_loader,lists,os,packages]), + %%hipe_unified_loader, no_native as workaround + lists,os,packages]), ok end. |