diff options
author | Roland Levillain <rpl@google.com> | 2020-02-19 15:49:02 +0000 |
---|---|---|
committer | Roland Levillain <rpl@google.com> | 2020-02-21 13:05:33 +0000 |
commit | 5b768893456ca3a998b7a2a93490229febbec1cf (patch) | |
tree | 4c88c226cd01758dccd0bbbeeca4d415c069813e /compiler/optimizing/graph_visualizer.cc | |
parent | 3cd802e4b80973b2c3893590c90d4bd5859d6dea (diff) |
Make `libart(d)-disassembler` a requirement of `libart(d)-compiler`.
The constructor of `art::HGraphVisualizerDisassembler` (which is part
of `libart(d)-compiler.so`) may dynamically load
`libart(d)-disassembler.so`; add `libart(d)-disassembler` to the
`runtime_libs` property of module `libart(d)-compiler` to make sure
the former can be found.
Also promote the failure to dynamically load
`libart(s)-disassembler.so` in
`art::HGraphVisualizerDisassembler::HGraphVisualizerDisassembler` from
`WARNING` to `ERROR`.
Test: art/tools/buildbot-build.sh --host \
&& art/test/testrunner/testrunner.py --host --optimizing \
-t 640-checker-integer-valueof
Bug: 149749169
Change-Id: I307bdf8b71e47ed8da1d6d62ab688c500b3f9c80
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
-rw-r--r-- | compiler/optimizing/graph_visualizer.cc | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/compiler/optimizing/graph_visualizer.cc b/compiler/optimizing/graph_visualizer.cc index 9419c8dcf4..d94c1fa2fb 100644 --- a/compiler/optimizing/graph_visualizer.cc +++ b/compiler/optimizing/graph_visualizer.cc @@ -113,16 +113,19 @@ class HGraphVisualizerDisassembler { const uint8_t* base_address, const uint8_t* end_address) : instruction_set_(instruction_set), disassembler_(nullptr) { - libart_disassembler_handle_ = - dlopen(kIsDebugBuild ? "libartd-disassembler.so" : "libart-disassembler.so", RTLD_NOW); + constexpr const char* libart_disassembler_so_name = + kIsDebugBuild ? "libartd-disassembler.so" : "libart-disassembler.so"; + libart_disassembler_handle_ = dlopen(libart_disassembler_so_name, RTLD_NOW); if (libart_disassembler_handle_ == nullptr) { - LOG(WARNING) << "Failed to dlopen libart-disassembler: " << dlerror(); + LOG(ERROR) << "Failed to dlopen " << libart_disassembler_so_name << ": " << dlerror(); return; } + constexpr const char* create_disassembler_symbol = "create_disassembler"; create_disasm_prototype* create_disassembler = reinterpret_cast<create_disasm_prototype*>( - dlsym(libart_disassembler_handle_, "create_disassembler")); + dlsym(libart_disassembler_handle_, create_disassembler_symbol)); if (create_disassembler == nullptr) { - LOG(WARNING) << "Could not find create_disassembler entry: " << dlerror(); + LOG(ERROR) << "Could not find " << create_disassembler_symbol << " entry in " + << libart_disassembler_so_name << ": " << dlerror(); return; } // Reading the disassembly from 0x0 is easier, so we print relative |