diff options
author | Martin Stjernholm <mast@google.com> | 2020-09-29 17:32:36 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2020-09-29 17:32:36 +0000 |
commit | 89a0c73eac5fb719ea52035ab32d245986790e0a (patch) | |
tree | 889d27dfddd180a886a104b39ca1eb1027fa5dc3 /compiler/optimizing/graph_visualizer.cc | |
parent | 38302452a3cc7c075503a3b15cebec18ed1db7f4 (diff) | |
parent | 8324cf8a4ad47b1ee0b9762a67da70f5413ce94a (diff) |
Link libart-disassembler statically into static libart-compiler. am: 407468761d am: c07a8b0ba6 am: b5afdc76cd am: 1c78adf661 am: 8324cf8a4a
Original change: https://android-review.googlesource.com/c/platform/art/+/1441276
Change-Id: I03ec02040ed0bbd8492803160baeb33e04aa9137
Diffstat (limited to 'compiler/optimizing/graph_visualizer.cc')
-rw-r--r-- | compiler/optimizing/graph_visualizer.cc | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/compiler/optimizing/graph_visualizer.cc b/compiler/optimizing/graph_visualizer.cc index 3f6215a650..f9c63c4486 100644 --- a/compiler/optimizing/graph_visualizer.cc +++ b/compiler/optimizing/graph_visualizer.cc @@ -110,13 +110,17 @@ std::ostream& operator<<(std::ostream& os, const StringList& list) { } } +#ifndef ART_STATIC_LIBART_COMPILER using create_disasm_prototype = Disassembler*(InstructionSet, DisassemblerOptions*); +#endif + class HGraphVisualizerDisassembler { public: HGraphVisualizerDisassembler(InstructionSet instruction_set, const uint8_t* base_address, const uint8_t* end_address) : instruction_set_(instruction_set), disassembler_(nullptr) { +#ifndef ART_STATIC_LIBART_COMPILER constexpr const char* libart_disassembler_so_name = kIsDebugBuild ? "libartd-disassembler.so" : "libart-disassembler.so"; libart_disassembler_handle_ = dlopen(libart_disassembler_so_name, RTLD_NOW); @@ -132,10 +136,11 @@ class HGraphVisualizerDisassembler { << libart_disassembler_so_name << ": " << dlerror(); return; } +#endif // Reading the disassembly from 0x0 is easier, so we print relative // addresses. We will only disassemble the code once everything has // been generated, so we can read data in literal pools. - disassembler_ = std::unique_ptr<Disassembler>((*create_disassembler)( + disassembler_ = std::unique_ptr<Disassembler>(create_disassembler( instruction_set, new DisassemblerOptions(/* absolute_addresses= */ false, base_address, @@ -149,9 +154,11 @@ class HGraphVisualizerDisassembler { ~HGraphVisualizerDisassembler() { // We need to call ~Disassembler() before we close the library. disassembler_.reset(); +#ifndef ART_STATIC_LIBART_COMPILER if (libart_disassembler_handle_ != nullptr) { dlclose(libart_disassembler_handle_); } +#endif } void Disassemble(std::ostream& output, size_t start, size_t end) const { @@ -172,7 +179,9 @@ class HGraphVisualizerDisassembler { InstructionSet instruction_set_; std::unique_ptr<Disassembler> disassembler_; +#ifndef ART_STATIC_LIBART_COMPILER void* libart_disassembler_handle_; +#endif }; |