From patchwork Tue May 21 15:44:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 90609 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 4C866384AB77 for ; Tue, 21 May 2024 15:43:38 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by sourceware.org (Postfix) with ESMTPS id 27F163858D3C for ; Tue, 21 May 2024 15:43:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 27F163858D3C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 27F163858D3C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306186; cv=none; b=vsxZKYt8BVbnZwlY9F59khBoMDz1EgGNMchQeuBmMV+9BtMryjX2VSOI5fIa9r9slSxQ9ZpvG7yz+q0TXqoa5wwp4EgAmnQjlwnXVkVN2p7nbKis5yeUiIb+r1N8vw8AmRWd2izo3D7w8NjjNq/Nzi2VzHHGWmRC29MVBXzeD/4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306186; c=relaxed/simple; bh=bKaMMVKYOUU3HHkq45p6Nn2zxLXTnv7+iHoRPYV/bjk=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=dUjdhv2kjUEQSVSu6EBv/WTLWPxzUt1+8LW3TBbbbSn0MC46O5vnL16StZvjzP75sIs+Q6E8SjhbUblfW46m1AXZV/hIIGCfxRx7ufBUvVdQsOjIoLt87lg04OkddoyFz/BVdSKdFO+9plAp2hak6NcZwT6Cs+MlG8n/KwDHzD0= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 097AA5C28F for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=8FE6L4W8dIns311ZkUfe3QLO8CiHDDnEi8evDPV/cz8=; b=iG4nnZdceYAAAEK0UgK7o4szrWvOslfkW4T3fBNmR6lKzPQV7N/mh25pp8aaCItc09oDMo CE8qRjN/eqrRpzRH02zVoHQB4Qc+VUVHIwhb0grdM24/T8WFfeetCdF66fmCxb3jRbj+Cx ykXRYqIKJUBGbVOdIHrazfIZ3tRY7os= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=8FE6L4W8dIns311ZkUfe3QLO8CiHDDnEi8evDPV/cz8=; b=ktWOKXx8XTJuM/FcXTe6RVOR3yGlZ7YpfiJVytQcjRiTcAnCurs5UjgAbf4tP5aKS2rpYc x5kL1yTip1+r3MCg== Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=8FE6L4W8dIns311ZkUfe3QLO8CiHDDnEi8evDPV/cz8=; b=iG4nnZdceYAAAEK0UgK7o4szrWvOslfkW4T3fBNmR6lKzPQV7N/mh25pp8aaCItc09oDMo CE8qRjN/eqrRpzRH02zVoHQB4Qc+VUVHIwhb0grdM24/T8WFfeetCdF66fmCxb3jRbj+Cx ykXRYqIKJUBGbVOdIHrazfIZ3tRY7os= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=8FE6L4W8dIns311ZkUfe3QLO8CiHDDnEi8evDPV/cz8=; b=ktWOKXx8XTJuM/FcXTe6RVOR3yGlZ7YpfiJVytQcjRiTcAnCurs5UjgAbf4tP5aKS2rpYc x5kL1yTip1+r3MCg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id E6C2B13685 for ; Tue, 21 May 2024 15:43:02 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id Q/bjNgbBTGbJGwAAD6G6ig (envelope-from ) for ; Tue, 21 May 2024 15:43:02 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 01/11] [gdb/testsuite] Add gdb.base/fission-macro.exp Date: Tue, 21 May 2024 17:44:05 +0200 Message-Id: <20240521154415.9543-1-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 MIME-Version: 1.0 X-Spam-Level: X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spam-Score: -2.80 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_PASS, TXREP 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: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Starting with gcc commit 80048aa13a6 ("debug/111409 - don't generate COMDAT macro sections for split DWARF"), available from release gcc 14.1 onwards, gcc produces a usable dwarf-5 32-bit .debug_macro.dwo section. Add a test-case excercising this. Tested on x86_64-linux. Tested test-case using a current gcc trunk build, and gcc 14. --- gdb/testsuite/gdb.base/fission-macro-2.c | 27 +++++++++ gdb/testsuite/gdb.base/fission-macro.c | 27 +++++++++ gdb/testsuite/gdb.base/fission-macro.exp | 75 ++++++++++++++++++++++++ 3 files changed, 129 insertions(+) create mode 100644 gdb/testsuite/gdb.base/fission-macro-2.c create mode 100644 gdb/testsuite/gdb.base/fission-macro.c create mode 100644 gdb/testsuite/gdb.base/fission-macro.exp base-commit: 05887e360ad3db3265e3dc2f7a845660d1d3c02f diff --git a/gdb/testsuite/gdb.base/fission-macro-2.c b/gdb/testsuite/gdb.base/fission-macro-2.c new file mode 100644 index 00000000000..fb088c8bfaf --- /dev/null +++ b/gdb/testsuite/gdb.base/fission-macro-2.c @@ -0,0 +1,27 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2024 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#define THIRD 3 +#define FOURTH 4 + +extern int foo (void); + +int +foo (void) +{ + return 0; +} diff --git a/gdb/testsuite/gdb.base/fission-macro.c b/gdb/testsuite/gdb.base/fission-macro.c new file mode 100644 index 00000000000..9c8cbece5c5 --- /dev/null +++ b/gdb/testsuite/gdb.base/fission-macro.c @@ -0,0 +1,27 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2024 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#define FIRST 1 +#define SECOND 2 + +extern int foo (void); + +int +main (void) +{ + return foo (); +} diff --git a/gdb/testsuite/gdb.base/fission-macro.exp b/gdb/testsuite/gdb.base/fission-macro.exp new file mode 100644 index 00000000000..705e3dd0c4b --- /dev/null +++ b/gdb/testsuite/gdb.base/fission-macro.exp @@ -0,0 +1,75 @@ +# Copyright 2024 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . */ + +# Gcc 14 is the first release containing the fix for PR debug/111409. +require {expr [gcc_major_version] >= 14} + +standard_testfile .c -2.c + +proc do_tests { dwarf_version dwarf_bits strict_dwarf } { + set opts {} + lappend opts debug + lappend opts quiet + lappend opts additional_flags=-gsplit-dwarf + lappend opts macros + + if { $dwarf_bits == 64 } { + lappend opts additional_flags=-gdwarf64 + } + + if { $strict_dwarf } { + lappend opts additional_flags=-gstrict-dwarf + } + + lappend opts additional_flags=-gdwarf-$dwarf_version + + set id v$dwarf_version-b$dwarf_bits-s$strict_dwarf + + set srcfiles [list $::srcfile $::srcfile2] + if { [build_executable "failed to prepare" $::testfile-$id $srcfiles $opts] } { + return -1 + } + + clean_restart + + gdb_load_no_complaints $::binfile-$id + + if {![runto_main]} { + return 0 + } + + gdb_test "p FIRST" " = 1" + gdb_test "p SECOND" " = 2" + + gdb_test "info macro FIRST" "#define FIRST 1" + gdb_test "info macro SECOND" "#define SECOND 2" + + gdb_breakpoint foo + gdb_continue_to_breakpoint "foo" + + gdb_test "p THIRD" " = 3" + gdb_test "p FOURTH" " = 4" + + gdb_test "info macro THIRD" "#define THIRD 3" + gdb_test "info macro FOURTH" "#define FOURTH 4" +} + +foreach_with_prefix dwarf_version {5} { + foreach_with_prefix dwarf_bits {32} { + foreach_with_prefix strict_dwarf {0 1} { + do_tests $dwarf_version $dwarf_bits $strict_dwarf + } + } +} From patchwork Tue May 21 15:44:06 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 90608 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 9019F3858D3C for ; Tue, 21 May 2024 15:43:37 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2a07:de40:b251:101:10:150:64:2]) by sourceware.org (Postfix) with ESMTPS id 1C4E73858D1E for ; Tue, 21 May 2024 15:43:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1C4E73858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1C4E73858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:2 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306186; cv=none; b=SUBgqGiOtO2+aiFfjdRcsJc2B0RKgwQMTxhOzkH1ogHvoS430uYUMF04uQ3pmKDtxGujt6lwwM1NTM4MAcAobEHDTOqx6xm3rjVX+46YlnP5BL6cQ5osOWpvpM2cIZvXrleRqLUBEe1tec+T712mqzys9oAmK3GHyDnjcWmHlAY= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306186; c=relaxed/simple; bh=cRQorUsf4nSxBFLl6kL0RGWeXe7MIwEQt3eeK+IUOws=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=GX8qb2wG3lYthPT0CrkzQiknpDBNgmVIccreFa31AQM4i1S0UyRFRa3b8cjWD90OaviuZlh6UCSMjbpcWHIBIM3551WPf2KOsVArvulRr4lgFMNfuDXAkuKzXAWMrdTNQEoF+zkTrlzO8shh2QiBvjJIqaXovfmh0cNnWIXrN9c= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 2E5515C290 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=o94An8Kfab0vcSfUAoIj0OKYaTCwuiu7j3bKSwFA6fc=; b=uviOkfJzQoOmVpMStkhYvqFsOTkokB0BkmgSb67VO1QhhB/XqaEPXAQ0eSsdNNrBAInR0B J/qRf1mciHwuZ/nJZ6sExom882IvooY0bCG/cm53NMvLb8iassvTa1gKGaIa+qFB2i+/iL ZWjpv0h+5Z457QXhfWqRXykD+xAfYmY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=o94An8Kfab0vcSfUAoIj0OKYaTCwuiu7j3bKSwFA6fc=; b=JDSZKIQvZ9wUWR24V/e8ZRhGCBwcAMWpGN6NR9NN9ibbVlP0mB6xk2U7Y/vW1fpKB+Uy4f CoaY02YZKWiVsZDA== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=uviOkfJz; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=JDSZKIQv DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=o94An8Kfab0vcSfUAoIj0OKYaTCwuiu7j3bKSwFA6fc=; b=uviOkfJzQoOmVpMStkhYvqFsOTkokB0BkmgSb67VO1QhhB/XqaEPXAQ0eSsdNNrBAInR0B J/qRf1mciHwuZ/nJZ6sExom882IvooY0bCG/cm53NMvLb8iassvTa1gKGaIa+qFB2i+/iL ZWjpv0h+5Z457QXhfWqRXykD+xAfYmY= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=o94An8Kfab0vcSfUAoIj0OKYaTCwuiu7j3bKSwFA6fc=; b=JDSZKIQvZ9wUWR24V/e8ZRhGCBwcAMWpGN6NR9NN9ibbVlP0mB6xk2U7Y/vW1fpKB+Uy4f CoaY02YZKWiVsZDA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 11B9C13A21 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id sFTpAgfBTGbJGwAAD6G6ig (envelope-from ) for ; Tue, 21 May 2024 15:43:03 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 02/11] [gdb/macros] Handle 64-bit dwarf in gdb.base/fission-macro.exp Date: Tue, 21 May 2024 17:44:06 +0200 Message-Id: <20240521154415.9543-2-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240521154415.9543-1-tdevries@suse.de> References: <20240521154415.9543-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Score: -3.01 X-Rspamd-Action: no action X-Rspamd-Queue-Id: 2E5515C290 X-Spam-Level: X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; RCVD_TLS_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FUZZY_BLOCKED(0.00)[rspamd.com]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; MIME_TRACE(0.00)[0:+]; DKIM_TRACE(0.00)[suse.de:+] X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP 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: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org When enabling 64-bit dwarf in the test-case gdb.base/fission-macro.exp, we run into: ... (gdb) break -qualified main^M DW_MACRO_define_strx pointing outside of .debug_str.dwo section \ [in module fission-macro-5-640.dwo]^M (gdb) FAIL: gdb.base/fission-macro.exp: dwarf_version=5: dwarf_bits=64: \ gdb_breakpoint: set breakpoint at main ... A dwarf-5 .debug_str_offsets section starts with a header consisting of: - an initial length (4 bytes for 32-bit and 12 bytes for 64-bit), - a 2 byte version string, and - 2 bytes padding so in total 8 bytes for 32-bit and 16 bytes for 64-bit. This offset is calculated here in dwarf_decode_macros: ... str_offsets_base = cu->header.addr_size; ... and in both cases this evaluates to 8. So in the 64-bit case, we interpret the last 8 bytes of the header as an offset. Fix this by computing str_offsets_base correctly for dwarf-5, for both the 32-bit and 64-bit case. Tested on x86_64-linux. Tested test-case using a current gcc trunk build, and gcc 14. --- gdb/dwarf2/read.c | 11 ++++++++++- gdb/testsuite/gdb.base/fission-macro.exp | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index e8416905163..4884553000a 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -21232,7 +21232,16 @@ dwarf_decode_macros (struct dwarf2_cu *cu, unsigned int offset, str_offsets_section = &cu->dwo_unit->dwo_file ->sections.str_offsets; str_section = &cu->dwo_unit->dwo_file->sections.str; - str_offsets_base = cu->header.addr_size; + if (cu->per_cu->version () <= 4) + str_offsets_base = cu->header.addr_size; + else + { + bfd *abfd = str_offsets_section->get_bfd_owner (); + unsigned int bytes_read = 0; + read_initial_length (abfd, str_offsets_section->buffer, &bytes_read, false); + const bool is_dwarf64 = bytes_read != 4; + str_offsets_base = is_dwarf64 ? 16 : 8; + } } else { diff --git a/gdb/testsuite/gdb.base/fission-macro.exp b/gdb/testsuite/gdb.base/fission-macro.exp index 705e3dd0c4b..4eb9c0efe21 100644 --- a/gdb/testsuite/gdb.base/fission-macro.exp +++ b/gdb/testsuite/gdb.base/fission-macro.exp @@ -67,7 +67,7 @@ proc do_tests { dwarf_version dwarf_bits strict_dwarf } { } foreach_with_prefix dwarf_version {5} { - foreach_with_prefix dwarf_bits {32} { + foreach_with_prefix dwarf_bits {32 64} { foreach_with_prefix strict_dwarf {0 1} { do_tests $dwarf_version $dwarf_bits $strict_dwarf } From patchwork Tue May 21 15:44:07 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 90611 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 D291F3858429 for ; Tue, 21 May 2024 15:43:55 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2a07:de40:b251:101:10:150:64:2]) by sourceware.org (Postfix) with ESMTPS id 3D7F93858C62 for ; Tue, 21 May 2024 15:43:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3D7F93858C62 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 3D7F93858C62 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:2 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306187; cv=none; b=hkbbx6yXa0g3eR8Wxw9C+vgCORT0HeMsbNfTrjMJzIlINGrPpSJ5pJfgKJoP9Z7whkGPFQWl8hsF0ObLOZdob6tCruSzJ2NVSNAn6VtA9sIgvRulSdieUgyBj61UC8c6BDAjvQagMYq1yZSk0AC48GtgKsj2wu8bdMMThmmvk+s= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306187; c=relaxed/simple; bh=Xv++Po5ChgjEatjh4v1+35gf42NhW8GoL2G4zkg/V5Y=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=iYemFN9m5BGKY4A9GwhBvmZ1ZmoiieMIoI6070psIsD/G5gMz6TjuPt1nslud6VP/dDLA6swhrDwhLDc8J+E0MfawpvxiZC/OBurvOoDrogc05lEAAXyaN8chW7igjsGUHtVPlVluItMToFPnN8ASOHPCuBHjSfEcqCRhGVycQI= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 468775C291 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OJBNb6Y9vvdyqt2d/UPpJ7pWtKRsWghy4Fh00KD4TgA=; b=qLE9TE8L+j2ho3gSbkRJR3d8AYMmeQCdP2idMylx5jsZYTbH5/cH5ADT+mmK5LPwNEz5YR 1j/AKwmm7jKp8vYfjqj7BE4IXsNUFmHkDnh/RklUAZszUP9kmxB4/KoiottTynyUbnqkHU EybedjyeKEinopVIwJjW1BJWaq4o0d0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OJBNb6Y9vvdyqt2d/UPpJ7pWtKRsWghy4Fh00KD4TgA=; b=2RfCW/IqsFRiIRuq4eHIovKv75glSweuwE1S3K+MQbxNiZY5xsuhjrxpShixmJNXEgLLOn 5P3miucc9vgZxECQ== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=qLE9TE8L; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b="2RfCW/Iq" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OJBNb6Y9vvdyqt2d/UPpJ7pWtKRsWghy4Fh00KD4TgA=; b=qLE9TE8L+j2ho3gSbkRJR3d8AYMmeQCdP2idMylx5jsZYTbH5/cH5ADT+mmK5LPwNEz5YR 1j/AKwmm7jKp8vYfjqj7BE4IXsNUFmHkDnh/RklUAZszUP9kmxB4/KoiottTynyUbnqkHU EybedjyeKEinopVIwJjW1BJWaq4o0d0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=OJBNb6Y9vvdyqt2d/UPpJ7pWtKRsWghy4Fh00KD4TgA=; b=2RfCW/IqsFRiIRuq4eHIovKv75glSweuwE1S3K+MQbxNiZY5xsuhjrxpShixmJNXEgLLOn 5P3miucc9vgZxECQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 2E07413A75 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id yE7pCQfBTGbJGwAAD6G6ig (envelope-from ) for ; Tue, 21 May 2024 15:43:03 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 03/11] [gdb/testsuite] Add test-case gdb.base/fission-macro-i.exp Date: Tue, 21 May 2024 17:44:07 +0200 Message-Id: <20240521154415.9543-3-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240521154415.9543-1-tdevries@suse.de> References: <20240521154415.9543-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Level: X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; RCVD_TLS_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FUZZY_BLOCKED(0.00)[rspamd.com]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; MIME_TRACE(0.00)[0:+]; DKIM_TRACE(0.00)[suse.de:+] X-Rspamd-Action: no action X-Rspamd-Queue-Id: 468775C291 X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Spam-Score: -3.01 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_PASS, TXREP 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: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org We can exercise test-case gdb.base/fission-macro.exp using gcc release 14. We cannot use the test-case with a gcc release earlier than gcc 14, because it's missing gcc commit 80048aa13a6 ("debug/111409 - don't generate COMDAT macro sections for split DWARF"). A way to work around this is to use a .i file instead of a .c file. Add a test-case using this approach. This allows use to excercise gcc 11-13 in addition. Tested on x86_64-linux. Tested test-case using a current gcc trunk build and gcc 11-14. --- gdb/testsuite/gdb.base/fission-macro-i-2.i | 27 ++++++++ gdb/testsuite/gdb.base/fission-macro-i.exp | 77 ++++++++++++++++++++++ gdb/testsuite/gdb.base/fission-macro-i.i | 27 ++++++++ 3 files changed, 131 insertions(+) create mode 100644 gdb/testsuite/gdb.base/fission-macro-i-2.i create mode 100644 gdb/testsuite/gdb.base/fission-macro-i.exp create mode 100644 gdb/testsuite/gdb.base/fission-macro-i.i diff --git a/gdb/testsuite/gdb.base/fission-macro-i-2.i b/gdb/testsuite/gdb.base/fission-macro-i-2.i new file mode 100644 index 00000000000..fb088c8bfaf --- /dev/null +++ b/gdb/testsuite/gdb.base/fission-macro-i-2.i @@ -0,0 +1,27 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2024 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#define THIRD 3 +#define FOURTH 4 + +extern int foo (void); + +int +foo (void) +{ + return 0; +} diff --git a/gdb/testsuite/gdb.base/fission-macro-i.exp b/gdb/testsuite/gdb.base/fission-macro-i.exp new file mode 100644 index 00000000000..bf1ca206a6c --- /dev/null +++ b/gdb/testsuite/gdb.base/fission-macro-i.exp @@ -0,0 +1,77 @@ +# Copyright 2024 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . */ + +# Gcc 11 is the first release containing the fix for PR debug/99319. +require {expr [gcc_major_version] >= 11} + +# Use a .i file instead of a .c file, to make sure that we only generate one +# .debug_macros section, working around gcc PR debug/111409. +standard_testfile .i -2.i + +proc do_tests { dwarf_version dwarf_bits strict_dwarf } { + set opts {} + lappend opts debug + lappend opts quiet + lappend opts additional_flags=-gsplit-dwarf + lappend opts macros + + if { $dwarf_bits == 64 } { + lappend opts additional_flags=-gdwarf64 + } + + if { $strict_dwarf } { + lappend opts additional_flags=-gstrict-dwarf + } + + lappend opts additional_flags=-gdwarf-$dwarf_version + + set id v$dwarf_version-b$dwarf_bits-s$strict_dwarf + + set srcfiles [list $::srcfile $::srcfile2] + if { [build_executable "failed to prepare" $::testfile-$id $srcfiles $opts] } { + return -1 + } + + clean_restart + + gdb_load_no_complaints $::binfile-$id + + if {![runto_main]} { + return 0 + } + + gdb_test "p FIRST" " = 1" + gdb_test "p SECOND" " = 2" + + gdb_test "info macro FIRST" "#define FIRST 1" + gdb_test "info macro SECOND" "#define SECOND 2" + + gdb_breakpoint foo + gdb_continue_to_breakpoint "foo" + + gdb_test "p THIRD" " = 3" + gdb_test "p FOURTH" " = 4" + + gdb_test "info macro THIRD" "#define THIRD 3" + gdb_test "info macro FOURTH" "#define FOURTH 4" +} + +foreach_with_prefix dwarf_version {5} { + foreach_with_prefix dwarf_bits {32 64} { + foreach_with_prefix strict_dwarf {0 1} { + do_tests $dwarf_version $dwarf_bits $strict_dwarf + } + } +} diff --git a/gdb/testsuite/gdb.base/fission-macro-i.i b/gdb/testsuite/gdb.base/fission-macro-i.i new file mode 100644 index 00000000000..9c8cbece5c5 --- /dev/null +++ b/gdb/testsuite/gdb.base/fission-macro-i.i @@ -0,0 +1,27 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2024 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#define FIRST 1 +#define SECOND 2 + +extern int foo (void); + +int +main (void) +{ + return foo (); +} From patchwork Tue May 21 15:44:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 90610 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 DEC7D3849AD2 for ; Tue, 21 May 2024 15:43:43 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by sourceware.org (Postfix) with ESMTPS id 4F86D3858C78 for ; Tue, 21 May 2024 15:43:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4F86D3858C78 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 4F86D3858C78 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306187; cv=none; b=RVd+z7kyVrj9z/wZ31SrSg96TvyZmIg/OmxOE91g8fhhgHdjValidF9/MKRW5xZBzYZBqCjsSoNnoB85QKsETflghwTr6WrQ4vVYrDCbCxNXDW03XFzlkycfw4IX1nJFXBi+FGrdk9mrv/bcxli3un2N4FqUClKb7YGTV27k8tU= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306187; c=relaxed/simple; bh=l3zvECN8Xy6EScucAwfv4hOAG/nPhI7gNiBNM+EkATE=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=ebdX3hBHxci4YaYeItfcnGETUaqqQeB8YpcmOE4Vo8Y3P8nM5/B2pIkx1Fwt+l5Kcv5Ambv8cmAv2YVXxCGiYR6bRPk1ilUnpGPvkIKO6iajiZU1VEsOD5c4LH/AhHz7f1fnHyS2zCLnhpFu92KgIg1R9UEJIt12OXAyn6fzOqI= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 5EC975C292 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PWqTMLCrFwE5ebpM+XmRlWeMGGGkbw1YkdQZ36dSCPg=; b=OalK9GupzNedpc0DBcri37U27e0w/YGKu/Y6+H546du+K8TTLRV/2gHppS/q+Yu/rTfstF sjoPdaBOqcJAcL/d0/y39CMBADJRvglScwX+o+PYoBM57e99UdQsnMo17IZ/Q0PB5fPlT+ hOHSbPxLVauJXIAabDI9Jy0BTYia8NQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PWqTMLCrFwE5ebpM+XmRlWeMGGGkbw1YkdQZ36dSCPg=; b=lPB7mzEpn6Eq9KPY19UTDwOWnmbtLLr9LdrBiMP5OIEOy5dq+FtBaoYWI1vYSs+R5z2vWo pSnaIBFcAMV6vfAQ== Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PWqTMLCrFwE5ebpM+XmRlWeMGGGkbw1YkdQZ36dSCPg=; b=OalK9GupzNedpc0DBcri37U27e0w/YGKu/Y6+H546du+K8TTLRV/2gHppS/q+Yu/rTfstF sjoPdaBOqcJAcL/d0/y39CMBADJRvglScwX+o+PYoBM57e99UdQsnMo17IZ/Q0PB5fPlT+ hOHSbPxLVauJXIAabDI9Jy0BTYia8NQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=PWqTMLCrFwE5ebpM+XmRlWeMGGGkbw1YkdQZ36dSCPg=; b=lPB7mzEpn6Eq9KPY19UTDwOWnmbtLLr9LdrBiMP5OIEOy5dq+FtBaoYWI1vYSs+R5z2vWo pSnaIBFcAMV6vfAQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 4A23313685 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id 6N3JEAfBTGbJGwAAD6G6ig (envelope-from ) for ; Tue, 21 May 2024 15:43:03 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 04/11] [gdb/macros] Work around gcc PR debug/99319 Date: Tue, 21 May 2024 17:44:08 +0200 Message-Id: <20240521154415.9543-4-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240521154415.9543-1-tdevries@suse.de> References: <20240521154415.9543-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Score: -2.80 X-Spam-Level: X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, KAM_SHORT, SPF_HELO_NONE, SPF_PASS, TXREP 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: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org When running test-case gdb.base/fission-macro-i.exp using gcc-10 we get: ... (gdb) break -qualified main^M DW_FORM_strp pointing outside of .debug_str section [in module fission-macro-i-5-32]^M (gdb) FAIL: gdb.base/fission-macro-i.exp: dwarf_version=5: dwarf_bits=32: \ gdb_breakpoint: set breakpoint at main ... The problem is that gcc emits this in the .debug_macro.dwo section: ... .byte 0x5 # Define macro strp .uleb128 0x12 # At line number 18 .uleb128 0 # The macro: "FIRST 1" .byte 0x5 # Define macro strp .uleb128 0x13 # At line number 19 .uleb128 0x5 # The macro: "SECOND 2" ... The second operand of a DW_MACRO_define_strp is supposed be an offset into the .debug_str section, but it's actually an index into the .debug_str_offsets section: ... .long 0 # indexed string 0x0: FIRST 1 ... .long 0xba # indexed string 0x5: SECOND 2 ... In other words, gcc is actually emitting a DW_MACRO_define_strx while labeling it a DW_MACRO_define_strp. Work around this by treating it as a DW_MACRO_define_strx. Tested on x86_64-linux. Tested test-case (and gdb.base/fission-macro.exp) using a current gcc trunk build and gcc 9-14. --- gdb/dwarf2/cu.c | 1 + gdb/dwarf2/cu.h | 1 + gdb/dwarf2/macro.c | 18 ++++++++++++++++++ gdb/dwarf2/read.c | 11 +++++++++++ gdb/dwarf2/read.h | 4 ++++ gdb/testsuite/gdb.base/fission-macro-i.exp | 3 +-- 6 files changed, 36 insertions(+), 2 deletions(-) diff --git a/gdb/dwarf2/cu.c b/gdb/dwarf2/cu.c index a64cb1d8380..e51ac900ea3 100644 --- a/gdb/dwarf2/cu.c +++ b/gdb/dwarf2/cu.c @@ -34,6 +34,7 @@ dwarf2_cu::dwarf2_cu (dwarf2_per_cu_data *per_cu, checked_producer (false), producer_is_gxx_lt_4_6 (false), producer_is_gcc_lt_4_3 (false), + producer_is_gcc_lt_11 (false), producer_is_gcc_11 (false), producer_is_icc (false), producer_is_icc_lt_14 (false), diff --git a/gdb/dwarf2/cu.h b/gdb/dwarf2/cu.h index 58e89960aad..190d395159d 100644 --- a/gdb/dwarf2/cu.h +++ b/gdb/dwarf2/cu.h @@ -256,6 +256,7 @@ struct dwarf2_cu bool checked_producer : 1; bool producer_is_gxx_lt_4_6 : 1; bool producer_is_gcc_lt_4_3 : 1; + bool producer_is_gcc_lt_11 : 1; bool producer_is_gcc_11 : 1; bool producer_is_icc : 1; bool producer_is_icc_lt_14 : 1; diff --git a/gdb/dwarf2/macro.c b/gdb/dwarf2/macro.c index a511d0a3b44..fd081f3c1f9 100644 --- a/gdb/dwarf2/macro.c +++ b/gdb/dwarf2/macro.c @@ -480,6 +480,15 @@ dwarf_decode_macro_bytes (dwarf2_per_objfile *per_objfile, macinfo_type = (enum dwarf_macro_record_type) read_1_byte (abfd, mac_ptr); mac_ptr++; + if (section_is_gnu && cu->dwo_unit != nullptr + && cu->per_cu->version () >= 5 && producer_is_gcc_lt_11 (cu)) + { + if (macinfo_type == DW_MACRO_define_strp) + macinfo_type = DW_MACRO_define_strx; + else if (macinfo_type == DW_MACRO_undef_strp) + macinfo_type = DW_MACRO_undef_strx; + } + /* Note that we rely on the fact that the corresponding GNU and DWARF constants are the same. */ DIAGNOSTIC_PUSH @@ -850,6 +859,15 @@ dwarf_decode_macros (dwarf2_per_objfile *per_objfile, macinfo_type = (enum dwarf_macro_record_type) read_1_byte (abfd, mac_ptr); mac_ptr++; + if (section_is_gnu && cu->dwo_unit != nullptr + && cu->per_cu->version () >= 5 && producer_is_gcc_lt_11 (cu)) + { + if (macinfo_type == DW_MACRO_define_strp) + macinfo_type = DW_MACRO_define_strx; + else if (macinfo_type == DW_MACRO_undef_strp) + macinfo_type = DW_MACRO_undef_strx; + } + /* Note that we rely on the fact that the corresponding GNU and DWARF constants are the same. */ DIAGNOSTIC_PUSH diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 4884553000a..3c2698d6832 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -7268,6 +7268,16 @@ producer_is_gcc_lt_4_3 (struct dwarf2_cu *cu) return cu->producer_is_gcc_lt_4_3; } +/* See dwarf2/read.h. */ +bool +producer_is_gcc_lt_11 (struct dwarf2_cu *cu) +{ + if (!cu->checked_producer) + check_producer (cu); + + return cu->producer_is_gcc_lt_11; +} + /* See dwarf2/read.h. */ bool producer_is_clang (struct dwarf2_cu *cu) @@ -11299,6 +11309,7 @@ check_producer (struct dwarf2_cu *cu) { cu->producer_is_gxx_lt_4_6 = major < 4 || (major == 4 && minor < 6); cu->producer_is_gcc_lt_4_3 = major < 4 || (major == 4 && minor < 3); + cu->producer_is_gcc_lt_11 = major < 11; cu->producer_is_gcc_11 = major == 11; } else if (producer_is_icc (cu->producer, &major, &minor)) diff --git a/gdb/dwarf2/read.h b/gdb/dwarf2/read.h index 7ab61528ab7..7fca859c43d 100644 --- a/gdb/dwarf2/read.h +++ b/gdb/dwarf2/read.h @@ -818,6 +818,10 @@ extern void dwarf2_get_section_info (struct objfile *, asection **, const gdb_byte **, bfd_size_type *); +/* Return true if the producer of the inferior is gcc, and earlier than + gcc 11. */ +extern bool producer_is_gcc_lt_11 (struct dwarf2_cu *cu); + /* Return true if the producer of the inferior is clang. */ extern bool producer_is_clang (struct dwarf2_cu *cu); diff --git a/gdb/testsuite/gdb.base/fission-macro-i.exp b/gdb/testsuite/gdb.base/fission-macro-i.exp index bf1ca206a6c..3121e1d289b 100644 --- a/gdb/testsuite/gdb.base/fission-macro-i.exp +++ b/gdb/testsuite/gdb.base/fission-macro-i.exp @@ -13,8 +13,7 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . */ -# Gcc 11 is the first release containing the fix for PR debug/99319. -require {expr [gcc_major_version] >= 11} +require {expr [gcc_major_version] >= 9} # Use a .i file instead of a .c file, to make sure that we only generate one # .debug_macros section, working around gcc PR debug/111409. From patchwork Tue May 21 15:44:09 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 90613 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 1CF54385840B for ; Tue, 21 May 2024 15:44:26 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2a07:de40:b251:101:10:150:64:2]) by sourceware.org (Postfix) with ESMTPS id 66964385840B for ; Tue, 21 May 2024 15:43:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 66964385840B Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 66964385840B Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:2 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306187; cv=none; b=bhL7v6uhFgOyQ3S2T3V0qUful9VAXSEuBnaa2hcdSgYN0G3ya1KRa4g6i4/ZUqTvPLgka/weyXoaAdT4sonUg7tWiWc9wLBhbu1sU107IrQ3tcmn5xnnZqngfeGcuWinLpyXS5IFOLShKTgSbgABmbSJnVyFds37ieeLM6zs1hA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306187; c=relaxed/simple; bh=Fm+KeEILMP3fRVhbYwCiz/RjMo0FF6xrjpede+MdgI4=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=FCDagUKvH91cb5G7G6Ak33mtoQDNJyZAuS4qWTAj/t9c+a3c+rO9UcyJxP7wN2dorOc35afjCQ3cOGBgxD0z2tpwRuJVWTpjzJlUQtrE7IzyCiEpHyy+S1RZj8A+tyohgGjNnTeVUKubkhw69WIexy3pCQmLkPSoQyHwQriEi3M= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 7B0205C293 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qvI1dXfOGRpRjtxa2rX5OMDTfQGryhx7F0y68Db5FG0=; b=Q/9yvLgSPgMI2EvNlxezemWHZDLW08CrJ4LjuJwtxZg8WdzWtxDuhdeKijxZHh6/oUrAZs S35r9E4RUOlGhCITSv4hHwenLVgnEZ7x/SdK2RXt9v2G6L2SoBVaMF6mnJSPnhzfzTLynT 9KmU46kxgJ5oS1Af8Smr9pQ8CBjwOGc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qvI1dXfOGRpRjtxa2rX5OMDTfQGryhx7F0y68Db5FG0=; b=dl/J/B9YloFUqVPVWSbDDjWJV6egknKz2HWgup8CpBVl3FV3qH6Z7njMvWvDk00Qqs+r2W hLHmFj3a+2oNi7AA== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b="Q/9yvLgS"; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b="dl/J/B9Y" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qvI1dXfOGRpRjtxa2rX5OMDTfQGryhx7F0y68Db5FG0=; b=Q/9yvLgSPgMI2EvNlxezemWHZDLW08CrJ4LjuJwtxZg8WdzWtxDuhdeKijxZHh6/oUrAZs S35r9E4RUOlGhCITSv4hHwenLVgnEZ7x/SdK2RXt9v2G6L2SoBVaMF6mnJSPnhzfzTLynT 9KmU46kxgJ5oS1Af8Smr9pQ8CBjwOGc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=qvI1dXfOGRpRjtxa2rX5OMDTfQGryhx7F0y68Db5FG0=; b=dl/J/B9YloFUqVPVWSbDDjWJV6egknKz2HWgup8CpBVl3FV3qH6Z7njMvWvDk00Qqs+r2W hLHmFj3a+2oNi7AA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 657B113A21 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id IOGWFwfBTGbJGwAAD6G6ig (envelope-from ) for ; Tue, 21 May 2024 15:43:03 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 05/11] [gdb/macros] Work around a gcc PR fixed in gcc 9 Date: Tue, 21 May 2024 17:44:09 +0200 Message-Id: <20240521154415.9543-5-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240521154415.9543-1-tdevries@suse.de> References: <20240521154415.9543-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Level: X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; RCVD_TLS_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FUZZY_BLOCKED(0.00)[rspamd.com]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; MIME_TRACE(0.00)[0:+]; DKIM_TRACE(0.00)[suse.de:+] X-Rspamd-Action: no action X-Rspamd-Queue-Id: 7B0205C293 X-Rspamd-Server: rspamd1.dmz-prg2.suse.org X-Spam-Score: -3.01 X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, KAM_SHORT, SPF_HELO_NONE, SPF_PASS, TXREP 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: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org When running test-case gdb.base/fission-macro-i.exp with gcc 8, we run into: ... (gdb) set complaints 0^M Offset from DW_FORM_GNU_str_index or DW_FORM_strx pointing outside of \ .debug_str.dwo section in CU at offset 0x0 \ [in module fission-macro-i-v5-b32-s0]^M (gdb) FAIL: gdb.base/fission-macro-i.exp: dwarf_version=5: dwarf_bits=32: \ strict_dwarf=0: set complaints 0 ... We're using dwarf5, so the .debug_str_offsets section is supposed to have a header, but there's none: ... .section .debug_str_offsets.dwo,"e",@progbits .long 0 # indexed string 0x0: GNU C17 8.2.1 20180831 ... .long 0x87 # indexed string 0x1: FIRST 1 .long 0x8f # indexed string 0x2: /home/vries/gdb .long 0x9f # indexed string 0x3: main .long 0xa4 # indexed string 0x4: fission-macro-i.i .long 0xe1 # indexed string 0x5: SECOND 2 ... In other words, we have a v4-style .debug_str_offsets section. Workaround this by detecting that it's not a valid v5 header by comparing the initial length to the the section size, and handling it as a v4 section. IWBN to enable this workaround only for gcc version < 9, but unfortunately the workaround is required to correctly read the producer string, so that's not possible. Tested on x86_64-linux. Tested test-case (and gdb.base/fission-macro.exp) using a current gcc trunk build and gcc 7-14. --- gdb/dwarf2/read.c | 77 +++++++++++++++------- gdb/testsuite/gdb.base/fission-macro-i.exp | 2 - 2 files changed, 53 insertions(+), 26 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 3c2698d6832..abe128f35df 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -17514,32 +17514,47 @@ read_dwo_str_index (const struct die_reader_specs *reader, ULONGEST str_index) const gdb_byte *p = reader->dwo_file->sections.str_offsets.buffer; /* Header: Initial length. */ - read_initial_length (abfd, p + bytes_read, &bytes_read); + LONGEST initial_length + = read_initial_length (abfd, p + bytes_read, &bytes_read); - /* Determine offset_size based on the .debug_str_offsets header. */ - const bool dwarf5_is_dwarf64 = bytes_read != 4; - offset_size = dwarf5_is_dwarf64 ? 8 : 4; + if (initial_length + bytes_read + == reader->dwo_file->sections.str_offsets.size) + { + /* Determine offset_size based on the .debug_str_offsets header. */ + const bool dwarf5_is_dwarf64 = bytes_read != 4; + offset_size = dwarf5_is_dwarf64 ? 8 : 4; - /* Header: Version. */ - unsigned version = read_2_bytes (abfd, p + bytes_read); - bytes_read += 2; + /* Header: Version. */ + unsigned version = read_2_bytes (abfd, p + bytes_read); + bytes_read += 2; - if (version <= 4) - { - /* We'd like one warning here about ignoring the section, but - because we parse the header more than once (see FIXME above) - we'd have many warnings, so use a complaint instead, which at - least has a limit. */ - complaint (_("Section .debug_str_offsets in %s has unsupported" - " version %d, use empty string."), - reader->dwo_file->dwo_name.c_str (), version); - return ""; - } + if (version <= 4) + { + /* We'd like one warning here about ignoring the section, but + because we parse the header more than once (see FIXME above) + we'd have many warnings, so use a complaint instead, which at + least has a limit. */ + complaint (_("Section .debug_str_offsets in %s has unsupported" + " version %d, use empty string."), + reader->dwo_file->dwo_name.c_str (), version); + return ""; + } - /* Header: Padding. */ - bytes_read += 2; + /* Header: Padding. */ + bytes_read += 2; - str_offsets_base = bytes_read; + str_offsets_base = bytes_read; + } + else + { + /* GCC 8 and earlier has a bug that for dwarf5 it produces a + pre-dwarf5 .debug_str_offsets section. We'd wish we could make + this work-around more precise by checking that producer is gcc and + gcc version <= 8, but that doesn't work if we need this workaround + to read the producer string. */ + offset_size = 4; + str_offsets_base = 0; + } } else { @@ -21249,9 +21264,23 @@ dwarf_decode_macros (struct dwarf2_cu *cu, unsigned int offset, { bfd *abfd = str_offsets_section->get_bfd_owner (); unsigned int bytes_read = 0; - read_initial_length (abfd, str_offsets_section->buffer, &bytes_read, false); - const bool is_dwarf64 = bytes_read != 4; - str_offsets_base = is_dwarf64 ? 16 : 8; + LONGEST initial_length + = read_initial_length (abfd, str_offsets_section->buffer, + &bytes_read, false); + if ((bytes_read == 4 || bytes_read == 12) + && initial_length + bytes_read == str_offsets_section->size) + { + const bool is_dwarf64 = bytes_read != 4; + str_offsets_base = is_dwarf64 ? 16 : 8; + } + else + { + /* GCC 8 and earlier has a bug that for dwarf5 it produces a + pre-dwarf5 .debug_str_offsets section. We use the same test + as in read_dwo_str_index. */ + str_offsets_base = 0; + offset_size = 4; + } } } else diff --git a/gdb/testsuite/gdb.base/fission-macro-i.exp b/gdb/testsuite/gdb.base/fission-macro-i.exp index 3121e1d289b..ae211d0e09b 100644 --- a/gdb/testsuite/gdb.base/fission-macro-i.exp +++ b/gdb/testsuite/gdb.base/fission-macro-i.exp @@ -13,8 +13,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . */ -require {expr [gcc_major_version] >= 9} - # Use a .i file instead of a .c file, to make sure that we only generate one # .debug_macros section, working around gcc PR debug/111409. standard_testfile .i -2.i From patchwork Tue May 21 15:44:10 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 90612 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 78110384AB4A for ; Tue, 21 May 2024 15:44:22 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2a07:de40:b251:101:10:150:64:1]) by sourceware.org (Postfix) with ESMTPS id 852853858416 for ; Tue, 21 May 2024 15:43:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 852853858416 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 852853858416 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306188; cv=none; b=RQ1/KU88KGUEAZ4Mg3UkRSAkrox9hSgZzW7YVetJJOck3OgT4yPxjaIKXzjj8rlbVfIwAL8JJYrkyqq2veAfiREIYCJt1N8ZH3xA2nxGk4xHeag0vtOuyRpBGfzlsuR325gEoPrSLBSjQ9MbTQdhLMeIJhdECp/qasqvTvymxn8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306188; c=relaxed/simple; bh=CmRxv3qIsn+xpog5AWC6jDerS5+SgQ/GWaSpm1itL2s=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=XTbRGc/abdQm2fDJfcsI6qd1QLFoQromnqqci2BFsfxTdv/RHRHfsZcYaD1cyhkx2LkXYHfMb5SV+nrwsuBry/UgLpzSV7W99y64cjfC292a+XgVMOhbW7s1xKEC1G4E/dcAfqjU2nBF2cxOw3ZkCYp8f2OTeFWmKb3rwvCy9Cs= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 95B3221A9A for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wBUrAOANgVsJF0S/o0u9t4Q98hFZyLdF2pa3NyLLgRA=; b=m/dZ0Xs9+sPQsC7JKE4C44Z3jnOwlTlBuLUKkuqNZhjFl8JZ5lkLPLK09ccmy4+RSil0tL Hs/YivIyY5qrHgWdltoEdas9/gP2zVWiLIFtzgdbTjx3LZN4qVOjCHRzvVk/+TSVFmtHSr XPY2FNoy9qWtksYpJ2qeoZnXGTkjPQ0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wBUrAOANgVsJF0S/o0u9t4Q98hFZyLdF2pa3NyLLgRA=; b=40UiIt4ThF6SDpABmydDemC0d/E+PD48EM8nVIyAa8X60nBXahrDlbktPW9daOoaqa4kZB wjsNxsdeUmrDLdBA== Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b="m/dZ0Xs9"; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=40UiIt4T DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wBUrAOANgVsJF0S/o0u9t4Q98hFZyLdF2pa3NyLLgRA=; b=m/dZ0Xs9+sPQsC7JKE4C44Z3jnOwlTlBuLUKkuqNZhjFl8JZ5lkLPLK09ccmy4+RSil0tL Hs/YivIyY5qrHgWdltoEdas9/gP2zVWiLIFtzgdbTjx3LZN4qVOjCHRzvVk/+TSVFmtHSr XPY2FNoy9qWtksYpJ2qeoZnXGTkjPQ0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=wBUrAOANgVsJF0S/o0u9t4Q98hFZyLdF2pa3NyLLgRA=; b=40UiIt4ThF6SDpABmydDemC0d/E+PD48EM8nVIyAa8X60nBXahrDlbktPW9daOoaqa4kZB wjsNxsdeUmrDLdBA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 81B2613685 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id uPNJHgfBTGbJGwAAD6G6ig (envelope-from ) for ; Tue, 21 May 2024 15:43:03 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 06/11] [gdb/macros] Handle v4 dwarf in gdb.base/fission-macro.exp Date: Tue, 21 May 2024 17:44:10 +0200 Message-Id: <20240521154415.9543-6-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240521154415.9543-1-tdevries@suse.de> References: <20240521154415.9543-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Score: -3.01 X-Rspamd-Action: no action X-Rspamd-Queue-Id: 95B3221A9A X-Spam-Level: X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; RCVD_TLS_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FUZZY_BLOCKED(0.00)[rspamd.com]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; MIME_TRACE(0.00)[0:+]; DKIM_TRACE(0.00)[suse.de:+] X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP 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: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org When running test-case gdb.base/fission-macro.exp with dwarf v4 enabled and a gcc trunk build containing the fix for gcc PR debug/115066, we run into: ... (gdb) info macro FIRST^M Defined at /data/vries/gdb/src/gdb/testsuite/gdb.base/fission-macro.c:0^M -DFIRST=1^M (gdb) FAIL: gdb.base/fission-macro.exp: dwarf_version=4: dwarf_bits=32: \ strict_dwarf=0: info macro FIRST ... The problem is in dwarf_decode_macros, where we're setting str_offsets_base effectively to 8: ... if (cu->per_cu->version () <= 4) str_offsets_base = cu->header.addr_size; ... Fix this by setting it to 0. Tested on x86_64-linux. Tested test-case (and gdb.base/fission-macro-i.exp) using a current gcc trunk build and gcc 7-14. --- gdb/dwarf2/read.c | 2 +- gdb/testsuite/gdb.base/fission-macro-i.exp | 6 +++++- gdb/testsuite/gdb.base/fission-macro.exp | 6 +++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index abe128f35df..e5f65ad28f2 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -21259,7 +21259,7 @@ dwarf_decode_macros (struct dwarf2_cu *cu, unsigned int offset, ->sections.str_offsets; str_section = &cu->dwo_unit->dwo_file->sections.str; if (cu->per_cu->version () <= 4) - str_offsets_base = cu->header.addr_size; + str_offsets_base = 0; else { bfd *abfd = str_offsets_section->get_bfd_owner (); diff --git a/gdb/testsuite/gdb.base/fission-macro-i.exp b/gdb/testsuite/gdb.base/fission-macro-i.exp index ae211d0e09b..62304f9b69e 100644 --- a/gdb/testsuite/gdb.base/fission-macro-i.exp +++ b/gdb/testsuite/gdb.base/fission-macro-i.exp @@ -65,7 +65,11 @@ proc do_tests { dwarf_version dwarf_bits strict_dwarf } { gdb_test "info macro FOURTH" "#define FOURTH 4" } -foreach_with_prefix dwarf_version {5} { +foreach_with_prefix dwarf_version {4 5} { + if { $dwarf_version == 4 && [gcc_major_version] < 15 } { + # Gcc does not contain fix for PR debug/115066. + continue + } foreach_with_prefix dwarf_bits {32 64} { foreach_with_prefix strict_dwarf {0 1} { do_tests $dwarf_version $dwarf_bits $strict_dwarf diff --git a/gdb/testsuite/gdb.base/fission-macro.exp b/gdb/testsuite/gdb.base/fission-macro.exp index 4eb9c0efe21..9e5d5c0a0d5 100644 --- a/gdb/testsuite/gdb.base/fission-macro.exp +++ b/gdb/testsuite/gdb.base/fission-macro.exp @@ -66,7 +66,11 @@ proc do_tests { dwarf_version dwarf_bits strict_dwarf } { gdb_test "info macro FOURTH" "#define FOURTH 4" } -foreach_with_prefix dwarf_version {5} { +foreach_with_prefix dwarf_version {4 5} { + if { $dwarf_version == 4 && [gcc_major_version] < 15 } { + # Gcc does not contain fix for PR debug/115066. + continue + } foreach_with_prefix dwarf_bits {32 64} { foreach_with_prefix strict_dwarf {0 1} { do_tests $dwarf_version $dwarf_bits $strict_dwarf From patchwork Tue May 21 15:44:11 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 90614 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 6C465384AB4B for ; Tue, 21 May 2024 15:44:37 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [IPv6:2a07:de40:b251:101:10:150:64:1]) by sourceware.org (Postfix) with ESMTPS id A04883858410 for ; Tue, 21 May 2024 15:43:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A04883858410 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A04883858410 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306188; cv=none; b=eO3Ien80hzDa5C1gYVyazoMH4a2SkwxCQXfrR5BNdfFiEcAxDTPCB0t01WyvQW/BkrsN3RRHnNu5lnmxXetBBL+VQvprkNF/L5hyLSByeTprof60Rbeyjf1bmEqowA0DzH5zgieU0WZ/CctvuY/T0tIloDidFHUxSaKHwB0e93k= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306188; c=relaxed/simple; bh=cNYG8ITEDWHp3xndVHfXo7dLw4u0Q34XEEAdZZCL6MA=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=J3GBMlvHPGdNiHY7gOS/WJB1dwfgC2s72eZmqfFg6Xtl0/Ir/VNWydLsxJtCka8z7fKBaq37PAtHWvaExPjbj6x90aV2TVb4+lF8WFn8a/77MjTVo9az2kNFFRb96Tm36AOmC5S+MBTMGbvljSjP66YM8kIJafaJPqqJhInTFBg= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id B204121B46 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kpsR+medd31H4BwjTrBpt+tcMAvxfHpSqWu+O79gi6E=; b=E55b9vOcAwiUBH3xQm0KP8aFwxkZL9/xlYfZEgqD54g4sSY/Gke7lQ3YHVD/p++BXghLwd nUYxtSJnRK6bjbXrz5tS5wuWK/xgjc31B7Fcz7V/d9mqrmhHkQFJRFl8AfR9a9Ii6f/Enx 99pTTcrYXPG0HSPdGU9LfOoYAaWGdII= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kpsR+medd31H4BwjTrBpt+tcMAvxfHpSqWu+O79gi6E=; b=xZaYOuj06DcbEBoPoFM5T1nvVNm4j3d2k/3286uBVsuCMh/U3Wl5Kda7dGSi9KqCwTgs7P NEcjPtl0HrE0RMBQ== Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kpsR+medd31H4BwjTrBpt+tcMAvxfHpSqWu+O79gi6E=; b=E55b9vOcAwiUBH3xQm0KP8aFwxkZL9/xlYfZEgqD54g4sSY/Gke7lQ3YHVD/p++BXghLwd nUYxtSJnRK6bjbXrz5tS5wuWK/xgjc31B7Fcz7V/d9mqrmhHkQFJRFl8AfR9a9Ii6f/Enx 99pTTcrYXPG0HSPdGU9LfOoYAaWGdII= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=kpsR+medd31H4BwjTrBpt+tcMAvxfHpSqWu+O79gi6E=; b=xZaYOuj06DcbEBoPoFM5T1nvVNm4j3d2k/3286uBVsuCMh/U3Wl5Kda7dGSi9KqCwTgs7P NEcjPtl0HrE0RMBQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 9E6A713A21 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id IGssJQfBTGbJGwAAD6G6ig (envelope-from ) for ; Tue, 21 May 2024 15:43:03 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 07/11] [gdb/macros] Workaround gcc PR debug/115066 Date: Tue, 21 May 2024 17:44:11 +0200 Message-Id: <20240521154415.9543-7-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240521154415.9543-1-tdevries@suse.de> References: <20240521154415.9543-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Level: X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spam-Score: -2.80 X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, SPF_HELO_NONE, SPF_PASS, TXREP 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: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org When running test-case gdb.base/fission-macro.exp with gcc 14, we run into: ... (gdb) p FIRST^M No symbol "FIRST" in current context.^M (gdb) FAIL: gdb.base/fission-macro.exp: dwarf_version=4: dwarf_bits=32: \ strict_dwarf=0: p FIRST ... This is because gcc 14 is missing the fix for gcc PR debug/115066, which is basically the dwarf-4 variant of dwarf-5 gcc PR debug/99319, for which we already have a workaround. Likewise, work around this problem for v4 dwarf. Tested on x86_64-linux. Tested test-case (and gdb.base/fission-macro-i.exp) using a current gcc trunk build and gcc 7-14. --- gdb/dwarf2/cu.c | 1 + gdb/dwarf2/cu.h | 1 + gdb/dwarf2/macro.c | 6 ++++-- gdb/dwarf2/read.c | 11 +++++++++++ gdb/dwarf2/read.h | 4 ++++ gdb/testsuite/gdb.base/fission-macro-i.exp | 4 ---- gdb/testsuite/gdb.base/fission-macro.exp | 4 ---- 7 files changed, 21 insertions(+), 10 deletions(-) diff --git a/gdb/dwarf2/cu.c b/gdb/dwarf2/cu.c index e51ac900ea3..9a5ee59bbcf 100644 --- a/gdb/dwarf2/cu.c +++ b/gdb/dwarf2/cu.c @@ -35,6 +35,7 @@ dwarf2_cu::dwarf2_cu (dwarf2_per_cu_data *per_cu, producer_is_gxx_lt_4_6 (false), producer_is_gcc_lt_4_3 (false), producer_is_gcc_lt_11 (false), + producer_is_gcc_lt_15 (false), producer_is_gcc_11 (false), producer_is_icc (false), producer_is_icc_lt_14 (false), diff --git a/gdb/dwarf2/cu.h b/gdb/dwarf2/cu.h index 190d395159d..875b0250e3e 100644 --- a/gdb/dwarf2/cu.h +++ b/gdb/dwarf2/cu.h @@ -257,6 +257,7 @@ struct dwarf2_cu bool producer_is_gxx_lt_4_6 : 1; bool producer_is_gcc_lt_4_3 : 1; bool producer_is_gcc_lt_11 : 1; + bool producer_is_gcc_lt_15 : 1; bool producer_is_gcc_11 : 1; bool producer_is_icc : 1; bool producer_is_icc_lt_14 : 1; diff --git a/gdb/dwarf2/macro.c b/gdb/dwarf2/macro.c index fd081f3c1f9..10daca2cc54 100644 --- a/gdb/dwarf2/macro.c +++ b/gdb/dwarf2/macro.c @@ -481,7 +481,8 @@ dwarf_decode_macro_bytes (dwarf2_per_objfile *per_objfile, mac_ptr++; if (section_is_gnu && cu->dwo_unit != nullptr - && cu->per_cu->version () >= 5 && producer_is_gcc_lt_11 (cu)) + && ((cu->per_cu->version () <= 4 && producer_is_gcc_lt_15 (cu)) + || (cu->per_cu->version () >= 5 && producer_is_gcc_lt_11 (cu)))) { if (macinfo_type == DW_MACRO_define_strp) macinfo_type = DW_MACRO_define_strx; @@ -860,7 +861,8 @@ dwarf_decode_macros (dwarf2_per_objfile *per_objfile, mac_ptr++; if (section_is_gnu && cu->dwo_unit != nullptr - && cu->per_cu->version () >= 5 && producer_is_gcc_lt_11 (cu)) + && ((cu->per_cu->version () <= 4 && producer_is_gcc_lt_15 (cu)) + || (cu->per_cu->version () >= 5 && producer_is_gcc_lt_11 (cu)))) { if (macinfo_type == DW_MACRO_define_strp) macinfo_type = DW_MACRO_define_strx; diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index e5f65ad28f2..6a489502f8b 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -7278,6 +7278,16 @@ producer_is_gcc_lt_11 (struct dwarf2_cu *cu) return cu->producer_is_gcc_lt_11; } +/* See dwarf2/read.h. */ +bool +producer_is_gcc_lt_15 (struct dwarf2_cu *cu) +{ + if (!cu->checked_producer) + check_producer (cu); + + return cu->producer_is_gcc_lt_15; +} + /* See dwarf2/read.h. */ bool producer_is_clang (struct dwarf2_cu *cu) @@ -11310,6 +11320,7 @@ check_producer (struct dwarf2_cu *cu) cu->producer_is_gxx_lt_4_6 = major < 4 || (major == 4 && minor < 6); cu->producer_is_gcc_lt_4_3 = major < 4 || (major == 4 && minor < 3); cu->producer_is_gcc_lt_11 = major < 11; + cu->producer_is_gcc_lt_15 = major < 15; cu->producer_is_gcc_11 = major == 11; } else if (producer_is_icc (cu->producer, &major, &minor)) diff --git a/gdb/dwarf2/read.h b/gdb/dwarf2/read.h index 7fca859c43d..d61985e4916 100644 --- a/gdb/dwarf2/read.h +++ b/gdb/dwarf2/read.h @@ -822,6 +822,10 @@ extern void dwarf2_get_section_info (struct objfile *, gcc 11. */ extern bool producer_is_gcc_lt_11 (struct dwarf2_cu *cu); +/* Return true if the producer of the inferior is gcc, and earlier than + gcc 15. */ +extern bool producer_is_gcc_lt_15 (struct dwarf2_cu *cu); + /* Return true if the producer of the inferior is clang. */ extern bool producer_is_clang (struct dwarf2_cu *cu); diff --git a/gdb/testsuite/gdb.base/fission-macro-i.exp b/gdb/testsuite/gdb.base/fission-macro-i.exp index 62304f9b69e..01eb8c9ea84 100644 --- a/gdb/testsuite/gdb.base/fission-macro-i.exp +++ b/gdb/testsuite/gdb.base/fission-macro-i.exp @@ -66,10 +66,6 @@ proc do_tests { dwarf_version dwarf_bits strict_dwarf } { } foreach_with_prefix dwarf_version {4 5} { - if { $dwarf_version == 4 && [gcc_major_version] < 15 } { - # Gcc does not contain fix for PR debug/115066. - continue - } foreach_with_prefix dwarf_bits {32 64} { foreach_with_prefix strict_dwarf {0 1} { do_tests $dwarf_version $dwarf_bits $strict_dwarf diff --git a/gdb/testsuite/gdb.base/fission-macro.exp b/gdb/testsuite/gdb.base/fission-macro.exp index 9e5d5c0a0d5..2434a329b7e 100644 --- a/gdb/testsuite/gdb.base/fission-macro.exp +++ b/gdb/testsuite/gdb.base/fission-macro.exp @@ -67,10 +67,6 @@ proc do_tests { dwarf_version dwarf_bits strict_dwarf } { } foreach_with_prefix dwarf_version {4 5} { - if { $dwarf_version == 4 && [gcc_major_version] < 15 } { - # Gcc does not contain fix for PR debug/115066. - continue - } foreach_with_prefix dwarf_bits {32 64} { foreach_with_prefix strict_dwarf {0 1} { do_tests $dwarf_version $dwarf_bits $strict_dwarf From patchwork Tue May 21 15:44:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 90617 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 D02D2384AB7A for ; Tue, 21 May 2024 15:45:12 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by sourceware.org (Postfix) with ESMTPS id 47346384B112 for ; Tue, 21 May 2024 15:43:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 47346384B112 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 47346384B112 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=195.135.223.131 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306189; cv=none; b=vjk1qPvlzleyFmVOb8h7t3yGI/gdf4YxXVRmXHnRmZL1oR0+nVIFiB4CBzxOMb/vr7RuJAGmlYMHoR4eILq/ZBP5xXhC5H8uutRz9eObKlmer/uBkNEG6GoaBHS3anvHGEcv9ekdfrGAmdAMtOfGhxbRdvLepdGKDEwP2mNwIRw= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306189; c=relaxed/simple; bh=gNLbYUO0e/THE3+Yp2CaCFxry+2s4YAdOcIfSt7lfcY=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=tHpckkPG/ZnpPuI3K0N4sutZslZw6zqeKh4rB9mQ1ETs4pHY4zZDl8/QpFRopFKfF1BfwwbjDzaoPlupw7OMUq27mFf0tqlSD4MLQd22g6gBduc3Mje/fnCRIp4C7QOftTI0d7hwdlKv03disywsMhsWV8MesoY5GfaPLEAwOVc= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id D2DE25C294 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YhYHCBjRcB8V0J1R0FyejK+V4yYWu3+NMbvHSZ2TJI0=; b=nrhoSQ+szEz9yd4nJlkrVeyyAdtFrkNKiSHHoy8Ljxshgm+VtlNwmhDY2xzuLwzucjC+b5 I0NQxFaL/uofEF1fN4NVL0ts6z3A9/wHNQadlNMqqzX+itfZ3kJTvuJzmAaenRmNJ6IhsD sFNLvT9iSm9dySmgmOg+OKS+qx2Z4zA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YhYHCBjRcB8V0J1R0FyejK+V4yYWu3+NMbvHSZ2TJI0=; b=Fd2FQeGsRm7WLb8rS8ZNd5ZeVU+9ljNzcyU1QXVkZptJrT0jj/akq8Wu+mDeQRcUT3Wysx D/nzWelKAeuaX7Bg== Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YhYHCBjRcB8V0J1R0FyejK+V4yYWu3+NMbvHSZ2TJI0=; b=nrhoSQ+szEz9yd4nJlkrVeyyAdtFrkNKiSHHoy8Ljxshgm+VtlNwmhDY2xzuLwzucjC+b5 I0NQxFaL/uofEF1fN4NVL0ts6z3A9/wHNQadlNMqqzX+itfZ3kJTvuJzmAaenRmNJ6IhsD sFNLvT9iSm9dySmgmOg+OKS+qx2Z4zA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=YhYHCBjRcB8V0J1R0FyejK+V4yYWu3+NMbvHSZ2TJI0=; b=Fd2FQeGsRm7WLb8rS8ZNd5ZeVU+9ljNzcyU1QXVkZptJrT0jj/akq8Wu+mDeQRcUT3Wysx D/nzWelKAeuaX7Bg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id BCE7013A75 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id YJLRLAfBTGbJGwAAD6G6ig (envelope-from ) for ; Tue, 21 May 2024 15:43:03 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 08/11] [gdb/testsuite] Extend gdb.base/fission-macro.exp Date: Tue, 21 May 2024 17:44:12 +0200 Message-Id: <20240521154415.9543-8-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240521154415.9543-1-tdevries@suse.de> References: <20240521154415.9543-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Score: -2.80 X-Spam-Level: X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_PASS, TXREP 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: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Add a header file to test-case gdb.base/fission-macro.exp, and check that the macros defined there are properly listed. Tested on x86_64-linux. Tested test-case using a current gcc trunk build, and gcc 14. --- gdb/testsuite/gdb.base/fission-macro.c | 2 ++ gdb/testsuite/gdb.base/fission-macro.exp | 16 +++++++++++++++- gdb/testsuite/gdb.base/fission-macro.h | 19 +++++++++++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 gdb/testsuite/gdb.base/fission-macro.h diff --git a/gdb/testsuite/gdb.base/fission-macro.c b/gdb/testsuite/gdb.base/fission-macro.c index 9c8cbece5c5..8c34679d57c 100644 --- a/gdb/testsuite/gdb.base/fission-macro.c +++ b/gdb/testsuite/gdb.base/fission-macro.c @@ -18,6 +18,8 @@ #define FIRST 1 #define SECOND 2 +#include "fission-macro.h" + extern int foo (void); int diff --git a/gdb/testsuite/gdb.base/fission-macro.exp b/gdb/testsuite/gdb.base/fission-macro.exp index 2434a329b7e..5474baf21d5 100644 --- a/gdb/testsuite/gdb.base/fission-macro.exp +++ b/gdb/testsuite/gdb.base/fission-macro.exp @@ -16,7 +16,7 @@ # Gcc 14 is the first release containing the fix for PR debug/111409. require {expr [gcc_major_version] >= 14} -standard_testfile .c -2.c +standard_testfile .c -2.c .h proc do_tests { dwarf_version dwarf_bits strict_dwarf } { set opts {} @@ -56,6 +56,20 @@ proc do_tests { dwarf_version dwarf_bits strict_dwarf } { gdb_test "info macro FIRST" "#define FIRST 1" gdb_test "info macro SECOND" "#define SECOND 2" + gdb_test "p FIFTH" " = 5" + gdb_test "p SIXTH" " = 6" + + gdb_test "info macro FIFTH" \ + [multi_line \ + "Defined at \[^\r\n\]*$::srcfile3:$::decimal" \ + " included at \[^\r\n\]*$::srcfile:$::decimal" \ + "#define FIFTH 5"] + gdb_test "info macro SIXTH" \ + [multi_line \ + "Defined at \[^\r\n\]*$::srcfile3:$::decimal" \ + " included at \[^\r\n\]*$::srcfile:$::decimal" \ + "#define SIXTH 6"] + gdb_breakpoint foo gdb_continue_to_breakpoint "foo" diff --git a/gdb/testsuite/gdb.base/fission-macro.h b/gdb/testsuite/gdb.base/fission-macro.h new file mode 100644 index 00000000000..66f15483b1c --- /dev/null +++ b/gdb/testsuite/gdb.base/fission-macro.h @@ -0,0 +1,19 @@ +/* This testcase is part of GDB, the GNU debugger. + + Copyright 2024 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +#define FIFTH 5 +#define SIXTH 6 From patchwork Tue May 21 15:44:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 90616 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 C9CC0384AB76 for ; Tue, 21 May 2024 15:45:05 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2a07:de40:b251:101:10:150:64:2]) by sourceware.org (Postfix) with ESMTPS id 94101384AB40 for ; Tue, 21 May 2024 15:43:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 94101384AB40 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 94101384AB40 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:2 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306190; cv=none; b=YLEeHXFuN3TfsZ6Dmp7Je1luWoHpwWyy1eVoEvcOzA0pgMM+3S4jA0+QL65KMqbV+6hH9MJ6trGnqLjOz7A9iK+6ULeGPO5jXMUp6xQjxuUSUkfSXJ6WKl8PX5GHa1gfX0ax8n/zeOr0EaiY//argofuFzJRICjnIxa5MlOUkv0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306190; c=relaxed/simple; bh=7zRVs1prGIORq6Twdfa7zQm3f+DaSWVkl79yt6l8vnU=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=If/oLIH7EHbbgDuTGKwZbATOUwXDPH5E+LSUayNV/o8iz4mJWTXa0nvShyRAr4ftqDGAK0zVawNorxweeWub2vSaq7vVbNl1knmxtaKp6NPUlcrGE9v2jUdtXzffhehVU1ePux6SdoAIbNtnavJ46kk4D1WjZqQBcDmBq5HxoQg= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id EF92A5C295 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306185; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iexGmnTUK1jqDHpcLbLUTz6VFNdQgIgXopQypPu0DrU=; b=irCXe2YilMynKzaAh8rfpndaTbHKKOMog2ztXoeiAwAfRQ/uz5cmsYFxLhnbo1FzqPiXmB bDmVvR3yWjyedEBdIcO+33+V5Q/beDTolGTjpRUOePhRbIrJGjIIf8JquoDLYjaHt7JN/1 MnevEiO8QnnHm4tpnDJaghH6HjI5obc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306185; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iexGmnTUK1jqDHpcLbLUTz6VFNdQgIgXopQypPu0DrU=; b=ebfVJF55aN6G25wUH8HDFZ2rgyrNAY6d2S8ODRqR3lgHrpLHd5Gy0y8zRi57ggtidzNW5r ufIpEgjx9SklZ0Cw== Authentication-Results: smtp-out2.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=lYjB7hNn; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b="/hQwzXFA" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iexGmnTUK1jqDHpcLbLUTz6VFNdQgIgXopQypPu0DrU=; b=lYjB7hNnC4obkKQYOMhJMdEeTS92oUWilityAUTjj3kKYcP9X8na4d3vCNN6Oci5aR+Dhu TCQn/Zfv/ZGp+rSRti3LtdH5GQ6Lbkeh7iczIJsdbrn3WbunZQi/RHSLsCyCWrFPxagLlq rBNcd8wVK6LRUEw9QC6jrTjuXPa2olc= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306183; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=iexGmnTUK1jqDHpcLbLUTz6VFNdQgIgXopQypPu0DrU=; b=/hQwzXFA9KeYB/60MagIY8Se6o1izX2p8/8K2oS6uxM8eLzICVDd2nkyji7x+/7Un9vUZW VVN/TVQaNks70uBg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id DA23713A21 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id mCzuMwfBTGbJGwAAD6G6ig (envelope-from ) for ; Tue, 21 May 2024 15:43:03 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 09/11] [gdb/macros] Fix gdb.base/fission-macro.exp with clang Date: Tue, 21 May 2024 17:44:13 +0200 Message-Id: <20240521154415.9543-9-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240521154415.9543-1-tdevries@suse.de> References: <20240521154415.9543-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Score: -3.01 X-Rspamd-Action: no action X-Rspamd-Queue-Id: EF92A5C295 X-Spam-Level: X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spamd-Result: default: False [-3.01 / 50.00]; BAYES_HAM(-3.00)[100.00%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; MX_GOOD(-0.01)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; RCVD_TLS_ALL(0.00)[]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FUZZY_BLOCKED(0.00)[rspamd.com]; TO_DN_NONE(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; MIME_TRACE(0.00)[0:+]; DKIM_TRACE(0.00)[suse.de:+] X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, SPF_HELO_NONE, SPF_PASS, TXREP 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: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org When running test-case gdb.base/fission-macro.exp with clang, we run into: ... (gdb) info macro FIFTH^M Defined at $build/gdb/testsuite/:18^M included at $src/gdb/testsuite/gdb.base/fission-macro.c:21^M (gdb) FAIL: gdb.base/fission-macro.exp: dwarf_version=4: dwarf_bits=32: \ strict_dwarf=0: info macro FIFTH ... This is caused by the fact that the .debug_macros.dwo section refers to the .debug_line.dwo section, but the .debug_line section is used instead. Fix this by making sure the .debug_line.dwo section is used. PR macros/31750 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31750 --- gdb/dwarf2/read.c | 16 ++++++++++++++++ gdb/testsuite/gdb.base/fission-macro.exp | 6 ++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 6a489502f8b..b742f38c303 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -21224,6 +21224,7 @@ dwarf_decode_macros (struct dwarf2_cu *cu, unsigned int offset, struct dwarf2_section_info *section; const char *section_name; + line_header_up lh_up; if (cu->dwo_unit != nullptr) { if (section_is_gnu) @@ -21236,6 +21237,21 @@ dwarf_decode_macros (struct dwarf2_cu *cu, unsigned int offset, section = &cu->dwo_unit->dwo_file->sections.macinfo; section_name = ".debug_macinfo.dwo"; } + + { + struct dwarf2_section_info *line_section; + + line_section = &cu->dwo_unit->dwo_file->sections.line; + line_section->read (per_objfile->objfile); + if (line_section->buffer == NULL) + { + complaint (_("missing .debug_line.dwo section")); + return; + } + lh_up = dwarf_decode_line_header ((sect_offset)0, 0, per_objfile, + line_section, &cu->header, nullptr); + lh = lh_up.get (); + } } else { diff --git a/gdb/testsuite/gdb.base/fission-macro.exp b/gdb/testsuite/gdb.base/fission-macro.exp index 5474baf21d5..de1ce7d3823 100644 --- a/gdb/testsuite/gdb.base/fission-macro.exp +++ b/gdb/testsuite/gdb.base/fission-macro.exp @@ -13,8 +13,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . */ -# Gcc 14 is the first release containing the fix for PR debug/111409. -require {expr [gcc_major_version] >= 14} +if { [test_compiler_info "gcc-*"] } { + # Gcc 14 is the first release containing the fix for PR debug/111409. + require {expr [gcc_major_version] >= 14} +} standard_testfile .c -2.c .h From patchwork Tue May 21 15:44:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 90615 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 B541A384AB5B for ; Tue, 21 May 2024 15:44:58 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out2.suse.de (smtp-out2.suse.de [IPv6:2a07:de40:b251:101:10:150:64:2]) by sourceware.org (Postfix) with ESMTPS id 340C5384CB97 for ; Tue, 21 May 2024 15:43:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 340C5384CB97 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 340C5384CB97 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a07:de40:b251:101:10:150:64:2 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306189; cv=none; b=Vduuig5byIU39BHqZ+ejFxhBM54TN7qkVT/cPMZQndjDZN4VssGZ0tfA6em+yz8p2tRTpXolEpcLB4UdrDEe0Sz+czYi5xiFYxP5TvsN5dX0zEX+RRpF0W/hp3ELbhkIBwsKWi+hp59e2l7+O9ZyRt38X3trdo3KOBrE75gmfNc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306189; c=relaxed/simple; bh=bWcgSn7daE3E9z3f/kzhQs24RFGCCUHpc2F5GU9vP4w=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=AfAQ0Q+MqQwXq0MZMWVvahhqGm95Ls28IbAZmAbLzshhO42vfrtyTFR7pPmT3XUm9OD6FSnhf8k1fHvF+QBmw5BNMWcjWD/0cd7m8vs5eo9NrDuof2Vlno9bezwYNHo7CAx5acD/jqAwgqiV25ZL/dI61gXi+J7CLqoXTCHXhPI= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id 179055C296 for ; Tue, 21 May 2024 15:43:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306184; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yxtP3X6FzMQ3ESg0Tg8fRL5GYtVzvqzhNvLqS67eINg=; b=YuewJ/Oq7Ny7roYb3pCU1mJc2RL3kCpR3Ouj+Iu1ub3/LvZX5vu4hycEdx/yKaW05CcOVu 46wVC7wUiLdmsDZ/ZdrogJkrBDZ2eQCXRp6L0qNMawGSwwFZrMWc3emHuaD2VtSiENPUL4 l1SK6T31A+WEZd29W38px3PRPq4LXHk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306184; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yxtP3X6FzMQ3ESg0Tg8fRL5GYtVzvqzhNvLqS67eINg=; b=MjYp9o8q2KFhm6quXhHGPdiCRtHwS01swtau1atyQHzdae/QXIESmtWwBiQE+zb9lTrwiT 5x6hHDi+mEMTirBQ== Authentication-Results: smtp-out2.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306184; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yxtP3X6FzMQ3ESg0Tg8fRL5GYtVzvqzhNvLqS67eINg=; b=YuewJ/Oq7Ny7roYb3pCU1mJc2RL3kCpR3Ouj+Iu1ub3/LvZX5vu4hycEdx/yKaW05CcOVu 46wVC7wUiLdmsDZ/ZdrogJkrBDZ2eQCXRp6L0qNMawGSwwFZrMWc3emHuaD2VtSiENPUL4 l1SK6T31A+WEZd29W38px3PRPq4LXHk= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306184; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=yxtP3X6FzMQ3ESg0Tg8fRL5GYtVzvqzhNvLqS67eINg=; b=MjYp9o8q2KFhm6quXhHGPdiCRtHwS01swtau1atyQHzdae/QXIESmtWwBiQE+zb9lTrwiT 5x6hHDi+mEMTirBQ== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 0377513A75 for ; Tue, 21 May 2024 15:43:03 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id wIu6OgfBTGbJGwAAD6G6ig (envelope-from ) for ; Tue, 21 May 2024 15:43:03 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 10/11] [gdb/testsuite] Use -g3 in gdb.base/lineinc.exp Date: Tue, 21 May 2024 17:44:14 +0200 Message-Id: <20240521154415.9543-10-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240521154415.9543-1-tdevries@suse.de> References: <20240521154415.9543-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Level: X-Spamd-Result: default: False [-2.79 / 50.00]; BAYES_HAM(-2.99)[99.97%]; NEURAL_HAM_LONG(-1.00)[-1.000]; MID_CONTAINS_FROM(1.00)[]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spam-Score: -2.79 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP 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: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org The stated intention of test-case gdb.base/lineinc.exp is: ... # Test macro handling of #included files. ... However, the test-case does not produce any macro debug information. Fix this by adding macros in the compilation flags. Tested on x86_64-linux. --- gdb/testsuite/gdb.base/lineinc.exp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gdb/testsuite/gdb.base/lineinc.exp b/gdb/testsuite/gdb.base/lineinc.exp index 1fe1390d892..490e39bd0fb 100644 --- a/gdb/testsuite/gdb.base/lineinc.exp +++ b/gdb/testsuite/gdb.base/lineinc.exp @@ -80,7 +80,8 @@ standard_testfile .c -if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" ${binfile} executable {debug}] != ""} { +if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" ${binfile} executable \ + {debug macros}] != ""} { untested "failed to compile" return -1 } From patchwork Tue May 21 15:44:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom de Vries X-Patchwork-Id: 90618 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 EC4D8384AB40 for ; Tue, 21 May 2024 15:45:30 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by sourceware.org (Postfix) with ESMTPS id E21B0385841C for ; Tue, 21 May 2024 15:43:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E21B0385841C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org E21B0385841C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306190; cv=none; b=wY3yHVfIgK+usELKexS8TNrD8qNKt0Sz8ZANwxofUBYfw7kS2fe+miaqI91W45zEL6ftkuAzAxSZjXrWrLslu/3ZGf65JZGTaeR7HRqzYgWWlmH97Mp5iQjC+khPuafoO6wIPGg5PUW3bUHCb3JweZ+WvnCPHniYAOioxY8D1Z4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1716306190; c=relaxed/simple; bh=PxU+6JTVcVwSHhoL9PNGr+Gg3OCs6TD7YnGcDDb/cMs=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature:From: To:Subject:Date:Message-Id:MIME-Version; b=OYmu/51WKbc/CSudK7A0O8RAGpOChK6I7F24k4CyJc2swhSBAqqYNWEfLs9bAlENi1bts1rinRFeODe4HPRA4N351feRSoWedvbBEaGq7vJiLeUVD5HDxfGzs7QBaWAGa79E8ug+ODS7zLXcYGbVEShTgFjWk6er0+hMy5Dyx58= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (unknown [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 33D0421B4A for ; Tue, 21 May 2024 15:43:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306185; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gFIIQKTGuyAgFKKwdIn9Vlv8YzFz5J+VpBGu4iuHW9g=; b=EAQ9k0gpUuoXLb5U8IWk8sac7cUqpx/n0MK2UsGyb75PlCRUE5KTxGKkAgdV7r1v/VP4+9 vuF7736uN6q70Aoum8Lvr3+bhka93l5y4OjaYG6ovMZa00Osk+HDQMNe5zxG2hMTA/+J9l GdSwoAsB0waOsnfnW5qEs6c1i7Q/LzU= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306185; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gFIIQKTGuyAgFKKwdIn9Vlv8YzFz5J+VpBGu4iuHW9g=; b=baE3Ka0BLkj8hJfWHXy6Pq4rmclAdhbDj7OEaNe+1Uwixqw+PtPluGJ7k6hgX1SxypVbP+ Gd7Jo/QTM5M8emCw== Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1716306184; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gFIIQKTGuyAgFKKwdIn9Vlv8YzFz5J+VpBGu4iuHW9g=; b=idodbGG6R6mTvfGpg2lWEElBpnW/W/908ZjEAk6WXGE68u4Nxo/AWKAIi/cGtbMD1dYVPx o6uZvwCQ2gNNmqKeI2kJY1P79LpO/tuv1ggfqI+ctjGVT4rkfL7gKmdcbN3PCfZ8+uDTLH IsoHfbj5imPG5ILmRqi0N/MiGfVWHj0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1716306184; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=gFIIQKTGuyAgFKKwdIn9Vlv8YzFz5J+VpBGu4iuHW9g=; b=3HJy2ZbTJl4+r+oAqyNaB7uNsTW8AjFfMHezjgzRJxegX6y+q8oEjtUVxv6GDHy0eVnzgQ NYT3gOzs1ncw2CAg== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 1ED1E13A79 for ; Tue, 21 May 2024 15:43:04 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id IH88BgjBTGbJGwAAD6G6ig (envelope-from ) for ; Tue, 21 May 2024 15:43:04 +0000 From: Tom de Vries To: gdb-patches@sourceware.org Subject: [PATCH 11/11] [gdb/testsuite] Don't use readelf in gdb/contrib/cc-with-tweaks.sh Date: Tue, 21 May 2024 17:44:15 +0200 Message-Id: <20240521154415.9543-11-tdevries@suse.de> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20240521154415.9543-1-tdevries@suse.de> References: <20240521154415.9543-1-tdevries@suse.de> MIME-Version: 1.0 X-Spam-Level: X-Spamd-Result: default: False [-0.57 / 50.00]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; BAYES_HAM(-0.77)[84.35%]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_VIA_SMTP_AUTH(0.00)[]; MIME_TRACE(0.00)[0:+]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; PREVIOUSLY_DELIVERED(0.00)[gdb-patches@sourceware.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-Spam-Score: -0.57 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_NONE, SPF_PASS, TXREP 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: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Readelf is used in gdb/contrib/cc-with-tweaks.sh to find the .dwo files to put into a .dwp package. Usage a more basic method for this: assume a .dwo file for each .o file in the link line. Verified using shellcheck. PR/testsuite 31754 Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31754 --- gdb/contrib/cc-with-tweaks.sh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/gdb/contrib/cc-with-tweaks.sh b/gdb/contrib/cc-with-tweaks.sh index f760bd7c0a1..036f3e9d394 100755 --- a/gdb/contrib/cc-with-tweaks.sh +++ b/gdb/contrib/cc-with-tweaks.sh @@ -70,7 +70,6 @@ then fi OBJCOPY=${OBJCOPY:-objcopy} -READELF=${READELF:-readelf} DWZ=${DWZ:-dwz} DWP=${DWP:-dwp} @@ -280,14 +279,18 @@ elif [ "$want_multi" = true ]; then fi if [ "$want_dwp" = true ]; then - dwo_files=$($READELF -wi "${output_file}" | grep _dwo_name | \ - sed -e 's/^.*: //' | sort | uniq) + dwo_files=() + for arg in "$@"; do + if echo "$arg" | grep -Eq "\.o$"; then + dwo_files=("${dwo_files[@]}" "${arg/.o/.dwo}") + fi + done rc=0 - if [ -n "$dwo_files" ]; then - $DWP -o "${output_file}.dwp" ${dwo_files} > /dev/null + if [ ${#dwo_files[@]} -ne 0 ]; then + $DWP -o "${output_file}.dwp" "${dwo_files[@]}" > /dev/null rc=$? [ $rc != 0 ] && exit $rc - rm -f ${dwo_files} + rm -f "${dwo_files[@]}" fi fi