From patchwork Mon Jun 14 10:07:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Matthias_M=C3=A4nnich?= X-Patchwork-Id: 43845 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 56242395100D for ; Mon, 14 Jun 2021 10:08:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 56242395100D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1623665308; bh=Tk+zBGwlOn+bFm8HeRmxCerLqhY5eP0Dc0cht2N+2ow=; h=Date:Subject:To:List-Id:List-Unsubscribe:List-Archive:List-Help: List-Subscribe:From:Reply-To:Cc:From; b=wqi55/OIvD/l0cegQ7AXAWAE3wN/o42xxhWk0PGULyYpc0oHLLizshmrYbTBhiEhw Lny1nkZ6veIyUeDZjHPrYgFmCELUK30/iAA+JKKc06nGKrDjUTwbC7PqSy5MLBzO9Q XLQnFPTEWtjsOlnZhSTkFvSfYwt4IJy5tsugVJSg= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-qv1-xf49.google.com (mail-qv1-xf49.google.com [IPv6:2607:f8b0:4864:20::f49]) by sourceware.org (Postfix) with ESMTPS id E5B57385802D for ; Mon, 14 Jun 2021 10:08:24 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E5B57385802D Received: by mail-qv1-xf49.google.com with SMTP id n3-20020a0cee630000b029020e62abfcbdso23218850qvs.16 for ; Mon, 14 Jun 2021 03:08:24 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=Tk+zBGwlOn+bFm8HeRmxCerLqhY5eP0Dc0cht2N+2ow=; b=nU+dfU1R1P2FXr5Mt4FYXj67cTu5m1p5UuomjeFgpOD33NrwW9cD2SqclDOnFfiH01 +vgPvdWZZXeAbMOyhRc9OdCLVVeL6MOIlzCY6nWY9HBbSNG0ljJC97QsS9oVL8IUVioK j+EuE6q2vyvMioFbFpJgnUcACJVvzPqZNuQnGJYMSmJfDL9xk5TIXKiURIgFR9vuyjrd GkeuRvrjcGnU6za4wRBTdMabsfR8l9lDwFrr1a35dzl3PTEb4WM8gefJXC56uE1frt4R aQ0Kbd6grvNlCRqkNaPGvc4mPbx9yfCQ2gizxT9PzX6A+MzDx7b+XJALDkatVyfN7QSt D8ZQ== X-Gm-Message-State: AOAM530Dli3e1THCeTfml3TJX9n0c1zuNNyPaQwo6GFGVHNulYHWKpOZ KLCLV/UBzT1fysjZQD3lpclyPbBtp2dSPIvuYyq105d8WScHmPb/0XPhNKaenSNUyCwdxbuPYNj 52/Z71wjJ62kbyjVDiRytk7qY3gpKZ5z7BwA8xkTyqij/d6+AgatTDYg4LeU5blh7ef5PBr8= X-Google-Smtp-Source: ABdhPJxzr+7ADWD7YRDqhqY67hhYqFc+XmCO3KtiosMcg4AG7zsj6YNYZ/2IYMtvuel/YSiMGTO4LaIialGpcw== X-Received: from lux.lon.corp.google.com ([2a00:79e0:d:210:5a41:80b:e50f:3291]) (user=maennich job=sendgmr) by 2002:a0c:d7c4:: with SMTP id g4mr881933qvj.23.1623665304479; Mon, 14 Jun 2021 03:08:24 -0700 (PDT) Date: Mon, 14 Jun 2021 11:07:35 +0100 Message-Id: <20210614100736.1665072-1-maennich@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.32.0.272.g935e593368-goog Subject: [PATCH 1/2] elf-helpers: refactor find_symbol_table_section To: libabigail@sourceware.org X-Spam-Status: No, score=-22.2 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-Patchwork-Original-From: Matthias Maennich via Libabigail From: =?utf-8?q?Matthias_M=C3=A4nnich?= Reply-To: Matthias Maennich Cc: maennich@google.com, kernel-team@android.com Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libabigail" Refactor the acquisition of symtabs to explicitly provide functionality to get the .symtab and .dynsym sections. A later patch will make use of that to acquire .symtab while find_symbol_table_section() still provides .dynsym as default symbol table. This also adds a new overload to find_section to acquire the first section by type and adjusts find_symbol_table_section() to make use of those functions. * src/abg-elf-helpers.cc(find_section): New overload. (find_symtab_section): New function. (find_dynsym_section): New function. (find_symbol_table_section): Use new find_*_section functions. * src/abg-elf-helpers.h(find_section): New overload declaration. (find_symtab_section): New function declaration. (find_dynsym_section): New function declaration. Reviewed-by: Giuliano Procida Signed-off-by: Matthias Maennich --- src/abg-elf-helpers.cc | 59 ++++++++++++++++++++++++++++++++++-------- src/abg-elf-helpers.h | 9 +++++++ 2 files changed, 57 insertions(+), 11 deletions(-) diff --git a/src/abg-elf-helpers.cc b/src/abg-elf-helpers.cc index 480381dec77e..998675a6059a 100644 --- a/src/abg-elf-helpers.cc +++ b/src/abg-elf-helpers.cc @@ -331,6 +331,51 @@ find_section(Elf* elf_handle, const std::string& name, Elf64_Word section_type) return 0; } +/// Find and return a section by its type. +/// +/// @param elf_handle the elf handle to use. +/// +/// @param section_type the type of the section. This is the +/// Elf32_Shdr::sh_type (or Elf64_Shdr::sh_type) data member. +/// Examples of values of this parameter are SHT_PROGBITS or SHT_NOBITS. +/// +/// @return the section found, or nil if none was found. +Elf_Scn* +find_section(Elf* elf_handle, Elf64_Word section_type) +{ + Elf_Scn* section = nullptr; + while ((section = elf_nextscn(elf_handle, section)) != 0) + { + GElf_Shdr header_mem, *header; + header = gelf_getshdr(section, &header_mem); + if (header->sh_type == section_type) + break; + } + return section; +} + +/// Find and return the .symtab section +/// +/// @param elf_handle the elf handle to use. +/// +/// @return the section found, or nil if none was found +Elf_Scn* +find_symtab_section(Elf* elf_handle) +{ + return find_section(elf_handle, SHT_SYMTAB); +} + +/// Find and return the .symtab section +/// +/// @param elf_handle the elf handle to use. +/// +/// @return the section found, or nil if none was found +Elf_Scn* +find_dynsym_section(Elf* elf_handle) +{ + return find_section(elf_handle, SHT_DYNSYM); +} + /// Find the symbol table. /// /// If we are looking at a relocatable or executable file, this @@ -346,16 +391,8 @@ find_section(Elf* elf_handle, const std::string& name, Elf64_Word section_type) Elf_Scn* find_symbol_table_section(Elf* elf_handle) { - Elf_Scn* section = 0, *dynsym = 0, *sym_tab = 0; - while ((section = elf_nextscn(elf_handle, section)) != 0) - { - GElf_Shdr header_mem, *header; - header = gelf_getshdr(section, &header_mem); - if (header->sh_type == SHT_DYNSYM) - dynsym = section; - else if (header->sh_type == SHT_SYMTAB) - sym_tab = section; - } + Elf_Scn *dynsym = find_dynsym_section(elf_handle), + *sym_tab = find_symtab_section(elf_handle); if (dynsym || sym_tab) { @@ -367,7 +404,7 @@ find_symbol_table_section(Elf* elf_handle) else return dynsym ? dynsym : sym_tab; } - return NULL; + return nullptr; } /// Find the index (in the section headers table) of the symbol table diff --git a/src/abg-elf-helpers.h b/src/abg-elf-helpers.h index 96e03d26ccad..59ea0a74e45c 100644 --- a/src/abg-elf-helpers.h +++ b/src/abg-elf-helpers.h @@ -49,6 +49,15 @@ find_section(Elf* elf_handle, const std::string& name, Elf64_Word section_type); +Elf_Scn* +find_section(Elf* elf_handle, Elf64_Word section_type); + +Elf_Scn* +find_symtab_section(Elf* elf_handle); + +Elf_Scn* +find_dynsym_section(Elf* elf_handle); + Elf_Scn* find_symbol_table_section(Elf* elf_handle); From patchwork Mon Jun 14 10:07:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Matthias_M=C3=A4nnich?= X-Patchwork-Id: 43846 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D426A3851C22 for ; Mon, 14 Jun 2021 10:08:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D426A3851C22 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1623665335; bh=dSYvVUAiIGW1RilwBF1x1tpDoVbmKkS3+Oxvaya02nI=; h=Date:In-Reply-To:References:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Help:List-Subscribe:From:Reply-To:Cc:From; b=sj1edsWxxIweT7XEJWXt/KB3Pjq0ZHkA5hp+vRClxeGn3MnhjOt0YYfNNC8yX3xhO nOBmWSN3+IxqK88ZAwDtGQ8089AvXVGlJPlCqTZacIPIqCPFHJ1QJeAgg6ov+rTArd 1ynbA8z4RgwMLDTSN3Dt8yPne8uvIVsddaY1cpzM= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-qv1-xf49.google.com (mail-qv1-xf49.google.com [IPv6:2607:f8b0:4864:20::f49]) by sourceware.org (Postfix) with ESMTPS id 88B173893C78 for ; Mon, 14 Jun 2021 10:08:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 88B173893C78 Received: by mail-qv1-xf49.google.com with SMTP id ce7-20020a05621403c7b0290238a4eac5c4so12317285qvb.13 for ; Mon, 14 Jun 2021 03:08:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc:content-transfer-encoding; bh=dSYvVUAiIGW1RilwBF1x1tpDoVbmKkS3+Oxvaya02nI=; b=e6XZXeYJCQ10ncqmT7ZeoUi5MzVv9bpNp/XjyPX8Gv5jOTN5MoS8hveHPm45zpbJDM 2wofpwq5FZAhzTeEgOTVuyru6BeQHfG40J/ap/Fa6+x8/+inGFKu+QDOxCYyta0y8jEN sM/vIAE9Fb4guUk1Oqn2TtCvlGas/QfBAezZ86LcMW3ch3Plf034R8qSJC44ubcq7jNd 5JgnkXoeyds49OUP8zR5lE5GEE27ciXEocNt5ypMSnrL1oaUkuyMHxu8B6YsX/DTUAF1 r3Lhs4fdd+Dbw+lJhrIrkIE9m1DXHrQI2kMQZ62cAI1pdZ6wiPlBtQXnTZF9/eLadtUC tWOw== X-Gm-Message-State: AOAM533fQ86S/EadmyX+Bl36ceHQwbBtL88gHD7RnG/2jlRW/UCHs9hB JhwhGbMweJtwkpDIocpv6XC5v3+umyBk3r37evlFsH+eXTdzjc2Qv4Lb/qu3inEXPAzlGYg9NqP hKnTmYU1QJldNgjpxeMEFjSazXvT7tjZUbIKC9qt8xV8xpdClk193rdRV6KE1sVzTWunjWr0= X-Google-Smtp-Source: ABdhPJz3XlMBXF8YZrXWKpKwA5/PQCli74Pzkvw20cLwHhzeHmGXJNuyDI9F8n3q2O4cVWvRgxekQmOl/SD/7g== X-Received: from lux.lon.corp.google.com ([2a00:79e0:d:210:5a41:80b:e50f:3291]) (user=maennich job=sendgmr) by 2002:a05:6214:252e:: with SMTP id gg14mr17591576qvb.55.1623665306948; Mon, 14 Jun 2021 03:08:26 -0700 (PDT) Date: Mon, 14 Jun 2021 11:07:36 +0100 In-Reply-To: <20210614100736.1665072-1-maennich@google.com> Message-Id: <20210614100736.1665072-2-maennich@google.com> Mime-Version: 1.0 References: <20210614100736.1665072-1-maennich@google.com> X-Mailer: git-send-email 2.32.0.272.g935e593368-goog Subject: [PATCH 2/2] symtab-reader: add support for binaries compiled with CFI To: libabigail@sourceware.org X-Spam-Status: No, score=-19.3 required=5.0 tests=BAYES_40, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, LIKELY_SPAM_BODY, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-Patchwork-Original-From: Matthias Maennich via Libabigail From: =?utf-8?q?Matthias_M=C3=A4nnich?= Reply-To: Matthias Maennich Cc: maennich@google.com, kernel-team@android.com, Dan Albert Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libabigail" Control-Flow-Integrity (CFI) when enabled in clang built binaries introduces an indirection when looking up ELF symbols. For DSO, the symbol table (.dynsym) will still contain the symbols, but additional symbols with suffix .cfi will be added to the full .symtab. Unfortunately, the DWARF debug information refers to CFI symbols by address to the .cfi suffixed variants as they point to the actual implementation. When the dwarf reader is determining whether to suppress variable or function declarations, it does so by identifying if there is an associated ELF symbol at the given address read from DWARF. Unless we know about the alternative address, this will fail and the type information will be suppressed. Hence add the .cfi symbol values to the lookup map to associate the address of them with the corresponding publicly exported symbol. * src/abg-symtab-reader.cc (symtab::load_): use new add_alternative_address_lookups method. (add_alternative_address_lookups): New method. * src/abg-symtab-reader.h (add_alternative_address_lookups): new function declaration. * tests/data/test-read-dwarf/test-libaaudio.so: New test data. * tests/data/test-read-dwarf/test-libaaudio.so.abi: New test data. * tests/test-read-dwarf.cc: New test case. Reported-by: Dan Albert Reviewed-by: Giuliano Procida Signed-off-by: Matthias Maennich --- src/abg-symtab-reader.cc | 81 + src/abg-symtab-reader.h | 3 + tests/data/test-read-dwarf/test-libaaudio.so | Bin 0 -> 214704 bytes .../test-read-dwarf/test-libaaudio.so.abi | 2072 +++++++++++++++++ tests/test-read-dwarf.cc | 8 + 5 files changed, 2164 insertions(+) create mode 100644 tests/data/test-read-dwarf/test-libaaudio.so create mode 100644 tests/data/test-read-dwarf/test-libaaudio.so.abi diff --git a/src/abg-symtab-reader.cc b/src/abg-symtab-reader.cc index edc9d82513bf..89a3fea352de 100644 --- a/src/abg-symtab-reader.cc +++ b/src/abg-symtab-reader.cc @@ -376,6 +376,8 @@ symtab::load_(Elf* elf_handle, } } + add_alternative_address_lookups(elf_handle); + is_kernel_binary_ = elf_helpers::is_linux_kernel(elf_handle); // Now apply the ksymtab_exported attribute to the symbols we collected. @@ -564,5 +566,84 @@ symtab::update_function_entry_address_symbol_map( } } +/// Fill up the lookup maps with alternative keys +/// +/// Due to special features like Control-Flow-Integrity (CFI), the symbol +/// lookup could be done indirectly. E.g. enabling CFI causes clang to +/// associate the DWARF information with the actual CFI protected function +/// (suffix .cfi) instead of with the entry symbol in the symtab. +/// +/// This function adds additional lookup keys to compensate for that. +/// +/// So far, this only implements CFI support, by adding addr->symbol pairs +/// where +/// addr : symbol value of the .cfi valyue +/// symbol : symbol_sptr looked up via "" +/// +/// @param elf_handle the ELF handle to operate on +void +symtab::add_alternative_address_lookups(Elf* elf_handle) +{ + Elf_Scn* symtab_section = elf_helpers::find_symtab_section(elf_handle); + if (!symtab_section) + return; + GElf_Shdr symtab_sheader; + gelf_getshdr(symtab_section, &symtab_sheader); + + const size_t number_syms = + symtab_sheader.sh_size / symtab_sheader.sh_entsize; + + Elf_Data* symtab = elf_getdata(symtab_section, 0); + + for (size_t i = 0; i < number_syms; ++i) + { + GElf_Sym *sym, sym_mem; + sym = gelf_getsym(symtab, i, &sym_mem); + if (!sym) + { + std::cerr << "Could not load symbol with index " << i + << ": Skipping alternative symbol load.\n"; + continue; + } + + const char* const name_str = + elf_strptr(elf_handle, symtab_sheader.sh_link, sym->st_name); + + // no name, no game + if (!name_str) + continue; + + const std::string name = name_str; + if (name.empty()) + continue; + + // Add alternative lookup addresses for CFI symbols + static const std::string cfi = ".cfi"; + if (name.size() > cfi.size() + && name.compare(name.size() - cfi.size(), cfi.size(), cfi) == 0) + // ... name.ends_with(".cfi") + { + const auto candidate_name = name.substr(0, name.size() - cfi.size()); + + auto symbols = lookup_symbol(candidate_name); + // lookup_symbol returns a vector of symbols. For this case we handle + // only the case that there has been exactly one match. Otherwise we + // can't reasonably handle it and need to bail out. + ABG_ASSERT(symbols.size() <= 1); + if (symbols.size() == 1) + { + const auto& symbol_sptr = symbols[0]; + GElf_Addr symbol_value = + elf_helpers::maybe_adjust_et_rel_sym_addr_to_abs_addr( + elf_handle, sym); + + const auto result = + addr_symbol_map_.emplace(symbol_value, symbol_sptr); + ABG_ASSERT(result.second); + } + } + } +} + } // end namespace symtab_reader } // end namespace abigail diff --git a/src/abg-symtab-reader.h b/src/abg-symtab-reader.h index 3b6d5ed7dab2..7ac15352f552 100644 --- a/src/abg-symtab-reader.h +++ b/src/abg-symtab-reader.h @@ -293,6 +293,9 @@ private: update_function_entry_address_symbol_map(Elf* elf_handle, GElf_Sym* native_symbol, const elf_symbol_sptr& symbol_sptr); + + void + add_alternative_address_lookups(Elf* elf_handle); }; /// Helper class to allow range-for loops on symtabs for C++11 and later code. diff --git a/tests/data/test-read-dwarf/test-libaaudio.so b/tests/data/test-read-dwarf/test-libaaudio.so new file mode 100644 index 0000000000000000000000000000000000000000..84c5f05f23f565d61ec37c99937fb64dac96dc8f GIT binary patch literal 214704 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 literal 0 HcmV?d00001 diff --git a/tests/data/test-read-dwarf/test-libaaudio.so.abi b/tests/data/test-read-dwarf/test-libaaudio.so.abi new file mode 100644 index 000000000000..dd98f75dac35 --- /dev/null +++ b/tests/data/test-read-dwarf/test-libaaudio.so.abi @@ -0,0 +1,2072 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tests/test-read-dwarf.cc b/tests/test-read-dwarf.cc index a04cef0866f7..509bc11aa749 100644 --- a/tests/test-read-dwarf.cc +++ b/tests/test-read-dwarf.cc @@ -488,6 +488,14 @@ InOutSpec in_out_specs[] = "data/test-read-dwarf/PR27700/test-PR27700.abi", "output/test-read-dwarf/PR27700/test-PR27700.abi", }, + { + "data/test-read-dwarf/test-libaaudio.so", + "", + "", + HASH_TYPE_ID_STYLE, + "data/test-read-dwarf/test-libaaudio.so.abi", + "output/test-read-dwarf/test-libaaudio.so.abi", + }, // This should be the last entry. {NULL, NULL, NULL, SEQUENCE_TYPE_ID_STYLE, NULL, NULL} };