summaryrefslogtreecommitdiff
path: root/linker/linker.cpp
diff options
context:
space:
mode:
authorTreehugger Robot <treehugger-gerrit@google.com>2019-11-09 00:13:31 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2019-11-09 00:13:31 +0000
commit28fb781ef73ee82d949150b0d3316447b74fe44a (patch)
tree648c033a8422762b21015778795272c4fefe300a /linker/linker.cpp
parentffad55954ba6ce33f6121c46eb7dd006f62d414b (diff)
parent16269576668b4f3059c6f8f7a77d6a5d7ddf0e26 (diff)
Merge "linker: add more context to link failure error."
Diffstat (limited to 'linker/linker.cpp')
-rw-r--r--linker/linker.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 1393eb521..e09b2a4c8 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -1503,7 +1503,16 @@ static bool load_library(android_namespace_t* ns,
// Open the file.
int fd = open_library(ns, zip_archive_cache, name, needed_by, &file_offset, &realpath);
if (fd == -1) {
- DL_OPEN_ERR("library \"%s\" not found", name);
+ if (task->is_dt_needed()) {
+ if (needed_by->is_main_executable()) {
+ DL_OPEN_ERR("library \"%s\" not found: needed by main executable", name);
+ } else {
+ DL_OPEN_ERR("library \"%s\" not found: needed by %s in namespace %s", name,
+ needed_by->get_realpath(), task->get_start_from()->get_name());
+ }
+ } else {
+ DL_OPEN_ERR("library \"%s\" not found", name);
+ }
return false;
}