aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linker/linker_main.cpp12
-rw-r--r--tests/dl_test.cpp2
2 files changed, 12 insertions, 2 deletions
diff --git a/linker/linker_main.cpp b/linker/linker_main.cpp
index a5ccd0f27..479973972 100644
--- a/linker/linker_main.cpp
+++ b/linker/linker_main.cpp
@@ -208,7 +208,17 @@ static char kLinkerPath[] = "/system/bin/linker";
#endif
static void __linker_cannot_link(const char* argv0) {
- async_safe_fatal("CANNOT LINK EXECUTABLE \"%s\": %s", argv0, linker_get_error_buffer());
+ async_safe_format_fd(STDERR_FILENO,
+ "CANNOT LINK EXECUTABLE \"%s\": %s\n",
+ argv0,
+ linker_get_error_buffer());
+
+ async_safe_format_log(ANDROID_LOG_FATAL,
+ "linker",
+ "CANNOT LINK EXECUTABLE \"%s\": %s",
+ argv0,
+ linker_get_error_buffer());
+ _exit(EXIT_FAILURE);
}
/*
diff --git a/tests/dl_test.cpp b/tests/dl_test.cpp
index aaf2c3742..ceb0b4d67 100644
--- a/tests/dl_test.cpp
+++ b/tests/dl_test.cpp
@@ -162,7 +162,7 @@ TEST(dl, exec_without_ld_config_file) {
chmod(helper.c_str(), 0755);
ExecTestHelper eth;
eth.SetArgs({ helper.c_str(), nullptr });
- eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, -6, error_message.c_str());
+ eth.Run([&]() { execve(helper.c_str(), eth.GetArgs(), eth.GetEnv()); }, EXIT_FAILURE, error_message.c_str());
#endif
}