From patchwork Fri Jun 19 21:43:00 2020 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: 39705 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 8E505389852E; Fri, 19 Jun 2020 21:43:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8E505389852E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1592603019; bh=OC+BIycxlcFUwB4bOxd3rq5TaMXAW4XlB9hJNq3+gMk=; h=Date:In-Reply-To:References:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Help:List-Subscribe:From:Reply-To:Cc:From; b=RQPoSDgeDXvgztb+RYMaHtfGiX8Z6eef1ivqAgr38faG83FS7u2YsPRcDDJlFad0D +ikyozoR8uszr7/fGTh69A8WPLcr57ZGHqnPbpEqVskFXz5KykWm/BEahk9jNT11aj WGl1WHPC+2wH9/o3bpgBJeKL6mfEe3qqfmOcTI5k= X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from mail-qt1-x849.google.com (mail-qt1-x849.google.com [IPv6:2607:f8b0:4864:20::849]) by sourceware.org (Postfix) with ESMTPS id C7EF7388F057 for ; Fri, 19 Jun 2020 21:43:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C7EF7388F057 Received: by mail-qt1-x849.google.com with SMTP id o11so8151901qti.23 for ; Fri, 19 Jun 2020 14:43:36 -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; bh=OC+BIycxlcFUwB4bOxd3rq5TaMXAW4XlB9hJNq3+gMk=; b=ANY8X/+sra+Bjk5m7OcAFUTPHZ4BWWf/Lnf0Nu6PrynAWlKMTduJLr3U35hTr9ks3y f4+6ljOceXCEaW/kzp7mgtzIoW8ZljVfFnZ8Nv2x56XO7/gU9mUwoSKKm7yAbXZof1J0 AnzsDEeIgDJmIguk/v+O+Q/Ven42W5Z4q+7PiaYemOjaROwRKGp5Xpr8LLqP3XZhjQKI TzxB7EdU912rHOYAErX7P5Gp0Dxi5vPVStJsD80UjyN6oiRwSLq1z5CNKSBE1neZZA43 yD3p9xYz+MNURzDJU/eEBv4ooLhRFIdKCM/pUd3xO/iuWtgD8pyT8QDozkdYtvqifA3u v1xg== X-Gm-Message-State: AOAM533JtQ0N+TpJLbxCrmIdwrMD8ijwtLKC5iSOaMzAlNjpAZJKT6Ui TNcWa8ZAR5n2QtS5IW8729wDk/xfWETFmby/Jssyu0K23CczFg9CWlHiJ3GjWWGXMo50qy75MJj 6iVMRSyySbwiY+bUz3u4jE73dJ4ca/gwy00W5kt5owhaEk5R6LAK0WXRBygzV8ypC2FZtrio= X-Google-Smtp-Source: ABdhPJwXD6BxCF/6UNJnrs7If14LSAnaw6gle+wvsQsvVj2OXH/ICSRQQCR75/A1OzBh+KvakYGmRKrEWuVoYQ== X-Received: by 2002:a0c:e710:: with SMTP id d16mr11166352qvn.158.1592603016404; Fri, 19 Jun 2020 14:43:36 -0700 (PDT) Date: Fri, 19 Jun 2020 23:43:00 +0200 In-Reply-To: <20200619214305.562-1-maennich@google.com> Message-Id: <20200619214305.562-12-maennich@google.com> Mime-Version: 1.0 References: <20200619214305.562-1-maennich@google.com> X-Mailer: git-send-email 2.27.0.111.gc72c7da667-goog Subject: [PATCH v1 11/16] dwarf-reader: read_context: use new symtab in *_symbols_is_exported To: libabigail@sourceware.org X-Spam-Status: No, score=-22.3 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, gprocida@google.com, kernel-team@android.com Errors-To: libabigail-bounces@sourceware.org Sender: "Libabigail" Testing whether a symbol is exported can be simplified using the new symtab implementation. The same holds true for whether a symbol is exported via ksymtab in case of linux kernel binaries. So, do that. * src/abg-dwarf-reader.cc (function_symbol_is_exported): Use new symtab implementation. (variable_symbol_is_exported): Likewise. Reviewed-by: Giuliano Procida Signed-off-by: Matthias Maennich --- src/abg-dwarf-reader.cc | 32 ++++++++------------------------ 1 file changed, 8 insertions(+), 24 deletions(-) diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc index d7b73adb4874..87cf34b2e5b7 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc @@ -5515,11 +5515,11 @@ public: elf_symbol_sptr function_symbol_is_exported(GElf_Addr symbol_address) const { - elf_symbol_sptr symbol = lookup_elf_fn_symbol_from_address(symbol_address); + elf_symbol_sptr symbol = symtab()->lookup_symbol(symbol_address); if (!symbol) return symbol; - if (!symbol->is_public()) + if (!symbol->is_function() || !symbol->is_public()) return elf_symbol_sptr(); address_set_sptr set; @@ -5528,16 +5528,8 @@ public: if (looking_at_linux_kernel_binary) { - if ((set = linux_exported_fn_syms())) - { - if (set->find(symbol_address) != set->end()) - return symbol; - } - if ((set = linux_exported_gpl_fn_syms())) - { - if (set->find(symbol_address) != set->end()) - return symbol; - } + if (symbol->is_in_ksymtab()) + return symbol; return elf_symbol_sptr(); } @@ -5555,11 +5547,11 @@ public: elf_symbol_sptr variable_symbol_is_exported(GElf_Addr symbol_address) const { - elf_symbol_sptr symbol = lookup_elf_var_symbol_from_address(symbol_address); + elf_symbol_sptr symbol = symtab()->lookup_symbol(symbol_address); if (!symbol) return symbol; - if (!symbol->is_public()) + if (!symbol->is_variable() || !symbol->is_public()) return elf_symbol_sptr(); address_set_sptr set; @@ -5568,16 +5560,8 @@ public: if (looking_at_linux_kernel_binary) { - if ((set = linux_exported_var_syms())) - { - if (set->find(symbol_address) != set->end()) - return symbol; - } - if ((set = linux_exported_gpl_var_syms())) - { - if (set->find(symbol_address) != set->end()) - return symbol; - } + if (symbol->is_in_ksymtab()) + return symbol; return elf_symbol_sptr(); }