Relax load address check in create_minidebuginfo
The check was just conservative, but some Android binaries do have
a fixed load address. I have checked that the tool generates the
symbols correctly and the libunwindstack can read them.
Also drop the unused .rodata section.
Test: unwind_symbols $OUT/system/bin/bootstrap/linkerconfig 23a058
Change-Id: Ia990ae2cb693061d09b565f23e1ab299d1551231
diff --git a/tools/create_minidebuginfo/create_minidebuginfo.cc b/tools/create_minidebuginfo/create_minidebuginfo.cc
index aad36a8..2af071f 100644
--- a/tools/create_minidebuginfo/create_minidebuginfo.cc
+++ b/tools/create_minidebuginfo/create_minidebuginfo.cc
@@ -39,7 +39,6 @@
template<typename ElfTypes>
static void WriteMinidebugInfo(const std::vector<uint8_t>& input, std::vector<uint8_t>* output) {
using Elf_Addr = typename ElfTypes::Addr;
- using Elf_Ehdr = typename ElfTypes::Ehdr;
using Elf_Shdr = typename ElfTypes::Shdr;
using Elf_Sym = typename ElfTypes::Sym;
using Elf_Word = typename ElfTypes::Word;
@@ -54,12 +53,9 @@
std::unique_ptr<ElfBuilder<ElfTypes>> builder(new ElfBuilder<ElfTypes>(isa, &output_stream));
builder->Start(/*write_program_headers=*/ false);
- auto* rodata = builder->GetRoData();
auto* text = builder->GetText();
const Elf_Shdr* original_text = reader.GetSection(".text");
CHECK(original_text != nullptr);
- CHECK_EQ(reader.GetLoadAddress(), 0u);
- rodata->AllocateVirtualMemory(original_text->sh_addr - sizeof(Elf_Ehdr));
text->AllocateVirtualMemory(original_text->sh_addr, original_text->sh_size);
auto* strtab = builder->GetStrTab();