Replace abort with exit(1) in __linker_cannot_link
Bug: http://b/67038409
Test: bionic-unit-tests
Change-Id: I7d39b44f2da8c5111ac8a9faf3416f19d5a35c05
diff --git a/linker/linker_main.cpp b/linker/linker_main.cpp
index a5ccd0f..4799739 100644
--- a/linker/linker_main.cpp
+++ b/linker/linker_main.cpp
@@ -208,7 +208,17 @@
#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 aaf2c37..ceb0b4d 100644
--- a/tests/dl_test.cpp
+++ b/tests/dl_test.cpp
@@ -162,7 +162,7 @@
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
}