From patchwork Fri Dec 29 00:40:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Wielaard X-Patchwork-Id: 82942 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 A49C33858C62 for ; Fri, 29 Dec 2023 00:41:35 +0000 (GMT) X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from gnu.wildebeest.org (gnu.wildebeest.org [45.83.234.184]) by sourceware.org (Postfix) with ESMTPS id 25D3F3858CD1 for ; Fri, 29 Dec 2023 00:41:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 25D3F3858CD1 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=klomp.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=klomp.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 25D3F3858CD1 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=45.83.234.184 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703810487; cv=none; b=g0GyggCynqrCUz95mxbN8puSi71d8424GumWiggsuBTCZQITOU5/O2oBdbxBxI4nXzGQzn9js5TqZtdltvnAY6zKw2FdEeXtJN1wJKr6G08PO5E4jigefeXxrBB56biETHWmoKXzlWxV4OMRKQouZr4kfBd92bQUcUk8u+fBDak= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703810487; c=relaxed/simple; bh=LgB0AJ8Djo/eMRY6d59JCf/02nwuw47H42yg4XAfpQE=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=XMrUNEFwaG+CbPPRgxqjunDvjUwQnhyp40jVjsqQQ0VJUZAAfUSvAewx33O+b8Q1VS09sS8kuJRseW9DhDG5DmldoSWlenjhGcuM7GYkvhRSP59q++a4uovjKKydxLDTKMD4ywjsBb0Wcyxifa2J/e+OHu2E+EEMkMgQrBp6OIE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from csb.redhat.com (dhcp-089-098-125-253.chello.nl [89.98.125.253]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id 8755B302BB42; Fri, 29 Dec 2023 01:41:23 +0100 (CET) Received: by csb.redhat.com (Postfix, from userid 10916) id 3B9C4D0A87; Fri, 29 Dec 2023 01:41:23 +0100 (CET) From: Mark Wielaard To: libabigail@sourceware.org Cc: David Abdurachmanov , Mark Wielaard Subject: [PATCH 1/2] Recognize EM_RISCV in e_machine_to_string Date: Fri, 29 Dec 2023 01:40:50 +0100 Message-Id: <20231229004051.540340-2-mark@klomp.org> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20231229004051.540340-1-mark@klomp.org> References: <20231229004051.540340-1-mark@klomp.org> MIME-Version: 1.0 X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org Check that EM_RISCV is defined in elf.h and if it is then recognize it in e_machine_to_string, producing "elf-riscv". * configure.ac: Defining HAVE_EM_RISCV_MACRO if EM_RISCV is defined in elf.h. * src/abg-dwarf-reader.cc (e_machine_to_string): Handle EM_RISCV if HAVE_EM_RISCV_MACRO is defined. Signed-off-by: Mark Wielaard --- configure.ac | 12 ++++++++++++ src/abg-elf-helpers.cc | 5 +++++ 2 files changed, 17 insertions(+) diff --git a/configure.ac b/configure.ac index 65b738d8..788b5620 100644 --- a/configure.ac +++ b/configure.ac @@ -947,6 +947,18 @@ if test x$HAS_EM_TILEGX = xyes; then [Defined to 1 if elf.h has EM_TILEGX macro defined]) fi +HAS_EM_RISCV=no +AC_CHECK_DECL([EM_RISCV], + [HAS_EM_RISCV=yes], + [HAS_EM_RISCV=no], + [[#include ]]) + +if test x$HAS_EM_RISCV = xyes; then + AC_DEFINE([HAVE_EM_RISCV_MACRO], + 1, + [Defined to 1 if elf.h has EM_RISCV macro defined]) +fi + HAS_R_AARCH64_ABS64=no AC_CHECK_DECL([R_AARCH64_ABS64], [HAS_R_AARCH64_ABS64=yes], diff --git a/src/abg-elf-helpers.cc b/src/abg-elf-helpers.cc index e05dccdc..87feb905 100644 --- a/src/abg-elf-helpers.cc +++ b/src/abg-elf-helpers.cc @@ -287,6 +287,11 @@ e_machine_to_string(GElf_Half e_machine) return "elf-tilera-tilegx"; #endif +#ifdef HAVE_EM_RISCV_MACRO + case EM_RISCV: + return "elf-riscv"; +#endif + case EM_NUM: return "elf-last-arch-number"; case EM_ALPHA: From patchwork Fri Dec 29 00:40:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mark Wielaard X-Patchwork-Id: 82943 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 63CDF3858D28 for ; Fri, 29 Dec 2023 00:41:42 +0000 (GMT) X-Original-To: libabigail@sourceware.org Delivered-To: libabigail@sourceware.org Received: from gnu.wildebeest.org (gnu.wildebeest.org [45.83.234.184]) by sourceware.org (Postfix) with ESMTPS id 60C013858C50 for ; Fri, 29 Dec 2023 00:41:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 60C013858C50 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=klomp.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=klomp.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 60C013858C50 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=45.83.234.184 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703810495; cv=none; b=PGCRTB5WsFGTXlrZekKRKlsp1/5r4e18UvQPBO6C55FBPQ+YN07NgNrKu4MtPadciADawGl3disvbmx9Ww+JoaYO5KoRASl0KAVpvpbF7chpjTk9/3t2ySAvnk5Dm5vFxY2QaNqEJ28cSX770FEQauwU2/5XV3w/DCi/hDH9cNo= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703810495; c=relaxed/simple; bh=NotzapMDBMvzRt7ki8RHbJEm0BizFMXN7PoJTlbQOjo=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=LaAb8Cn7bMS6SRcb/FrPmsKrxzpH9LKJmJct5dmfAo+0NzCu7F08+utHAvoriMYm7AvdRufMCVu+5Y9yJ806pBY+4G1Lf/qp57XYazUIOnv3HkbeIXTfhQBxC+gQHRqdLuCmuJ/KhD+XdmoLlaIAPfmDvjN/gnN0CyTXRVWPwSs= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from csb.redhat.com (dhcp-089-098-125-253.chello.nl [89.98.125.253]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by gnu.wildebeest.org (Postfix) with ESMTPSA id 10C87302BB42; Fri, 29 Dec 2023 01:41:32 +0100 (CET) Received: by csb.redhat.com (Postfix, from userid 10916) id 84444D0A87; Fri, 29 Dec 2023 01:41:31 +0100 (CET) From: Mark Wielaard To: libabigail@sourceware.org Cc: David Abdurachmanov , Mark Wielaard Subject: [PATCH 2/2] Fix ABG_ASSERT in build_ir_node_from_die for DW_TAG_member Date: Fri, 29 Dec 2023 01:40:51 +0100 Message-Id: <20231229004051.540340-3-mark@klomp.org> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20231229004051.540340-1-mark@klomp.org> References: <20231229004051.540340-1-mark@klomp.org> MIME-Version: 1.0 X-Spam-Status: No, score=-9.7 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Mailing list of the Libabigail project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libabigail-bounces+patchwork=sourceware.org@sourceware.org When the die is a member, it is the CU of the die that should not be in the C language, not the dwarf reader current translation unit. * src/abg-dwarf-reader.cc (build_ir_node_from_die): ABG_ASSERT !rdr.die_is_in_c(), not rdr.cur_transl_unit(). Signed-off-by: Mark Wielaard --- src/abg-dwarf-reader.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/abg-dwarf-reader.cc b/src/abg-dwarf-reader.cc index 15a35edf..70e37403 100644 --- a/src/abg-dwarf-reader.cc +++ b/src/abg-dwarf-reader.cc @@ -15822,7 +15822,7 @@ build_ir_node_from_die(reader& rdr, bool var_is_cloned = false; if (tag == DW_TAG_member) - ABG_ASSERT(!is_c_language(rdr.cur_transl_unit()->get_language())); + ABG_ASSERT(!rdr.die_is_in_c(die)); if (die_die_attribute(die, DW_AT_specification, spec_die, false) || (var_is_cloned = die_die_attribute(die, DW_AT_abstract_origin,