diff --git a/erts/etc/common/dialyzer.c b/erts/etc/common/dialyzer.c index e356167b40ed..f01e73f05dc5 100644 --- a/erts/etc/common/dialyzer.c +++ b/erts/etc/common/dialyzer.c @@ -252,7 +252,7 @@ int main(int argc, char** argv) } PUSH("+B"); - PUSH2("-boot", "no_dot_erlang"); + PUSH2("-boot", "$ROOT/no_dot_erlang"); PUSH3("-run", "dialyzer", "plain_cl"); PUSH("-extra"); diff --git a/erts/etc/common/erlc.c b/erts/etc/common/erlc.c index b89afed79a39..5cc7f7a2e583 100644 --- a/erts/etc/common/erlc.c +++ b/erts/etc/common/erlc.c @@ -962,7 +962,7 @@ start_compile_server(char* node_name, char** argv) while (strcmp(argv[0], "-mode") != 0) { eargv[eargc++] = *argv++; } - PUSH2("-boot", "no_dot_erlang"); + PUSH2("-boot", "$ROOT/no_dot_erlang"); PUSH2("-sname", node_name); PUSH2("-setcookie", "erlc_compile_server_cookie"); PUSH("-hidden"); diff --git a/erts/etc/common/escript.c b/erts/etc/common/escript.c index 9d84cb9b8f7e..3b69619a72bf 100644 --- a/erts/etc/common/escript.c +++ b/erts/etc/common/escript.c @@ -513,7 +513,7 @@ main(int argc, char** argv) PUSH("+B"); PUSH("-noshell"); - PUSH2("-boot", "no_dot_erlang"); + PUSH2("-boot", "$ROOT/no_dot_erlang"); /* * Read options from the %%! row in the script and add them as args diff --git a/erts/etc/common/typer.c b/erts/etc/common/typer.c index e05f1cb19eed..250222d4c9a4 100644 --- a/erts/etc/common/typer.c +++ b/erts/etc/common/typer.c @@ -179,7 +179,7 @@ main(int argc, char** argv) } PUSH("+B"); - PUSH2("-boot", "no_dot_erlang"); + PUSH2("-boot", "$ROOT/no_dot_erlang"); PUSH3("-run", "typer", "start"); PUSH("-extra"); diff --git a/erts/preloaded/ebin/init.beam b/erts/preloaded/ebin/init.beam index a64afe58c654..3bbe5215b9f0 100644 Binary files a/erts/preloaded/ebin/init.beam and b/erts/preloaded/ebin/init.beam differ diff --git a/erts/preloaded/ebin/prim_socket.beam b/erts/preloaded/ebin/prim_socket.beam index e9bc4fedf64a..4a7b82dbfd32 100644 Binary files a/erts/preloaded/ebin/prim_socket.beam and b/erts/preloaded/ebin/prim_socket.beam differ diff --git a/erts/preloaded/ebin/prim_zip.beam b/erts/preloaded/ebin/prim_zip.beam index 9d22726d4030..417c12bda542 100644 Binary files a/erts/preloaded/ebin/prim_zip.beam and b/erts/preloaded/ebin/prim_zip.beam differ diff --git a/erts/preloaded/src/init.erl b/erts/preloaded/src/init.erl index bed1570f00f9..0136ff55ee10 100644 --- a/erts/preloaded/src/init.erl +++ b/erts/preloaded/src/init.erl @@ -1259,7 +1259,10 @@ path_flags(Flags) -> {bs2ss(Pa),bs2ss(Pz)}. get_boot(BootFile0,Root) -> - BootFile = BootFile0 ++ ".boot", + BootFile = case BootFile0 of + "$ROOT/" ++ BootFile1 -> Root ++ "/bin/" ++ BootFile1 ++ ".boot"; + _ -> BootFile0 ++ ".boot" + end, case get_boot(BootFile) of {ok, CmdList} -> diff --git a/lib/kernel/src/code_server.erl b/lib/kernel/src/code_server.erl index ebd78dc9708c..d8f57c4dac63 100644 --- a/lib/kernel/src/code_server.erl +++ b/lib/kernel/src/code_server.erl @@ -843,6 +843,9 @@ insert_name(Name, Dir, Db) -> AppDir = del_ebin(Dir), do_insert_name(Name, AppDir, Db). +do_insert_name(".", _, _) -> + %% "." is most likely not an archive, avoid looking for subdirs + true; do_insert_name(Name, AppDir, Db) -> {Base, SubDirs} = archive_subdirs(AppDir), ets:insert(Db, {Name, AppDir, Base, SubDirs}),