From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id wRGDD9qNamn5pQYAWB0awg (envelope-from ) for ; Fri, 16 Jan 2026 14:13:30 -0500 Authentication-Results: simark.ca; dkim=pass (2048-bit key; secure) header.d=adacore.com header.i=@adacore.com header.a=rsa-sha256 header.s=google header.b=TVWH7Xs7; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 3AEFC1E0DD; Fri, 16 Jan 2026 14:13:30 -0500 (EST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-2.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED_BLOCKED, RCVD_IN_VALIDITY_RPBL_BLOCKED,RCVD_IN_VALIDITY_SAFE_BLOCKED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id 8C3CB1E08D for ; Fri, 16 Jan 2026 14:13:29 -0500 (EST) Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 6F2B34BA2E1C for ; Fri, 16 Jan 2026 19:13:28 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6F2B34BA2E1C Authentication-Results: sourceware.org; dkim=pass (2048-bit key, secure) header.d=adacore.com header.i=@adacore.com header.a=rsa-sha256 header.s=google header.b=TVWH7Xs7 Received: from mail-ot1-x331.google.com (mail-ot1-x331.google.com [IPv6:2607:f8b0:4864:20::331]) by sourceware.org (Postfix) with ESMTPS id 4C2A64BA2E06 for ; Fri, 16 Jan 2026 19:11:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 4C2A64BA2E06 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 4C2A64BA2E06 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::331 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1768590695; cv=none; b=lBnkcw2vHgmxBCAmIgZbREuRTDG4luNMyvcOrR+MipKNAQaTHgOfbToJjeMOrnGADtAAVn6symACoe3P5kffoaQv1nW5ToPrAOXwR21wkFtCUzPAgXsa2UQ5Aq9ZdctUx1dJ65Fp6XPkA2ENzEXzNQ9mkgDHJ5N9cOH07fBQk8A= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1768590695; c=relaxed/simple; bh=KuRTFCfVjvoPGOAeQKCcZKH5r7TP9JFq6/54N9/qu8Y=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=fgMcH4YkOs5M6zA+9YpCSGfm8u8p4rJdYhR0srFOJAcEOid4ceQA8mlrg664slckeDXzAwGTBwKZu/BZydcF9pS5bXtezAkvbcHfRS8clEecppcFLfAthDvl4XTHSEH8PwjVvSmh65RFHVm0D4i6dEcgSxXUFSWOCPW0KYhkdBo= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4C2A64BA2E06 Received: by mail-ot1-x331.google.com with SMTP id 46e09a7af769-7cfd819ae5eso1169100a34.1 for ; Fri, 16 Jan 2026 11:11:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1768590694; x=1769195494; darn=sourceware.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=F60/0Xv7cJcmZytYmpoHXk51zlj7UIThXRZm9LvIFy0=; b=TVWH7Xs71LEzgCy5TUddegbM/w2x551Zv35DVlMJFCYFXwZfIAIGmlarUFzTwHuAHZ VA45hd2vFFUPAcdrHFTx3rr/ZsNRSgis/LtBgWrltuEkXD61m/4VmoPQWWtaUGuyvtpY WpSXxCIlCeTLF6vTGvh0tzOpG7SkqF2PtAavl7yeRLnpDuF9H6jSck15+aASA/ko5P+X Ap77SozjVCrwJjlWgsQYc3x/igbi7qk7P91jwr4iF3hlNbOI1uJA2/NlQ2ebx+NsOohe b2AjVa8i32Sfu7VWMUM6SbeoIhtT2ssrW/TdWpoEQQnL4FbG+bXtFtt/Nyt+os0i8N6j UuzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768590694; x=1769195494; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=F60/0Xv7cJcmZytYmpoHXk51zlj7UIThXRZm9LvIFy0=; b=vxNTx7duZKlQdooJ1Bzik1DB7oKMlIHsnb0ApoMOHXPt5sUSgbjXlV9DNKYVuYnnC/ xHHrlvpXnl9SnEjSWx0bVaxkaEa8mvrgSCCov6VqBTO7b5PtEuFPLu3eFqfYURwj57U+ OQg5iqjmSFdbwIaNDVnp0ldeShaLvIy6cHAaGy6jvuPs7DK9VETEY5XjZVwTZi4PFDl+ FmvI6NdkaNNJ51Q5mfJeohuHNS4+GHu6LUYTXfzgyFC6kHNCp4E1val7ejkWZhyAAAUw YeXSNnbNf6C16Xrfa19nF60Wx5qnlM3hwa39Kus8+0ei2JlK/y8+Fn8dJBhJVK8TmyYH ojiA== X-Gm-Message-State: AOJu0Yy4EhHn341BckHmwM9VaD8VVohwysPs8EJEEhJOt34Mc4Eu6Wup 0q9DSgyd+PnwM4s8OSPjmgL2dzbxCXcit6iHMzP0sJQD20c7jclu9cQDhaqaBP4ECg== X-Gm-Gg: AY/fxX7GtGqZX8LSZp/SDQfCenTthgGshbqtxowHVAzuzFg0PoKOnqFen0bE/+KgEEd j1rVIuoZFd3BPHgLkADL2DRMz5cadqSk52nI3RHSdzhRkWBw733glAm2IRTrTQ6Q7nMwB6GjYJA gU2ewm4EQEgoNTjU8NLZj8Wr+z5q4lna+NrNFWJ6LO181KGTiR6nqptyz7HpRQtnoUlAbo4AuMW jghndlggt10CLvIcMOzzgWaZP9uMoZNK9es/QQr3V+S0oizwaX7GjouLOYnVPfHpK58CX7+6mmO ZaeWbq3xRRuh22abf+I+OqtXYzI2MSwuDHmLWJm0PyO0FJS1WPSDcUokHXtXp+xAIVRjRYVhEwN 5QM2CUrmIgp54gkqJa7G62YGlZHRGtL2S2xT5ZyNMwG8Q4WIAx0vg7l9EAf2QMaR4UNbbtXibg2 yo7O3ky6xZvjWJQn/K4N9Rb9wKfNpl4kmUdowSWulQbg== X-Received: by 2002:a05:6830:81e6:b0:7af:1d61:1055 with SMTP id 46e09a7af769-7cfdee2473fmr1913306a34.21.1768590694595; Fri, 16 Jan 2026 11:11:34 -0800 (PST) Received: from [192.168.0.26] (97-122-114-32.hlrn.qwest.net. [97.122.114.32]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7cfdf0db2c1sm2196681a34.5.2026.01.16.11.11.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 16 Jan 2026 11:11:34 -0800 (PST) From: Tom Tromey Date: Fri, 16 Jan 2026 12:11:34 -0700 Subject: [PATCH 06/10] Use symfile_bfd in more places MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260116-coffread-cleanups-v1-6-4d46090fad69@adacore.com> References: <20260116-coffread-cleanups-v1-0-4d46090fad69@adacore.com> In-Reply-To: <20260116-coffread-cleanups-v1-0-4d46090fad69@adacore.com> To: gdb-patches@sourceware.org Cc: Tom Tromey X-Mailer: b4 0.14.3 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~public-inbox=simark.ca@sourceware.org Since coffread.c is setting symfile_bfd, it might as well use it everywhere. This changes all other BFD references in coffread.c to use the global. --- gdb/coffread.c | 50 +++++++++++++++++++++++--------------------------- 1 file changed, 23 insertions(+), 27 deletions(-) diff --git a/gdb/coffread.c b/gdb/coffread.c index b75721d2577..5cbbf490937 100644 --- a/gdb/coffread.c +++ b/gdb/coffread.c @@ -87,7 +87,7 @@ static int symnum; static const char *getsymname (struct internal_syment *); -static int init_stringtab (bfd *, file_ptr, gdb::unique_xmalloc_ptr *); +static int init_stringtab (file_ptr, gdb::unique_xmalloc_ptr *); static void read_one_sym (struct coff_symbol *); @@ -97,9 +97,9 @@ static void coff_symtab_read (minimal_symbol_reader &, /* Return the BFD section that CS points to. */ static asection * -cs_to_bfd_section (struct coff_symbol *cs, bfd *abfd) +cs_to_bfd_section (struct coff_symbol *cs) { - for (asection *sect : gdb_bfd_sections (abfd)) + for (asection *sect : gdb_bfd_sections (symfile_bfd)) if (sect->target_index == cs->c_secnum) return sect; @@ -110,19 +110,19 @@ cs_to_bfd_section (struct coff_symbol *cs, bfd *abfd) static int cs_to_section (struct coff_symbol *cs, struct objfile *objfile) { - asection *sect = cs_to_bfd_section (cs, objfile->obfd.get ()); + asection *sect = cs_to_bfd_section (cs); if (sect == NULL) return SECT_OFF_TEXT (objfile); - return gdb_bfd_section_index (objfile->obfd.get (), sect); + return gdb_bfd_section_index (symfile_bfd, sect); } /* Return the address of the section of a COFF symbol. */ static CORE_ADDR -cs_section_address (struct coff_symbol *cs, bfd *abfd) +cs_section_address (struct coff_symbol *cs) { - asection *sect = cs_to_bfd_section (cs, abfd); + asection *sect = cs_to_bfd_section (cs); if (sect == nullptr) return 0; @@ -256,8 +256,7 @@ coff_read_minsyms (file_ptr symtab_offset, unsigned int nsyms, name1 = name + 6; if (name1 != NULL) { - int lead - = bfd_get_symbol_leading_char (objfile->obfd.get ()); + int lead = bfd_get_symbol_leading_char (symfile_bfd); if (lead != '\0' && *name1 == lead) name1 += 1; @@ -283,18 +282,16 @@ coff_read_minsyms (file_ptr symtab_offset, unsigned int nsyms, static void coff_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) { - bfd *abfd = objfile->obfd.get (); - coff_data_type *cdata = coff_data (abfd); - const char *filename = bfd_get_filename (abfd); + symfile_bfd = objfile->obfd.get (); + coff_data_type *cdata = coff_data (symfile_bfd); + const char *filename = bfd_get_filename (symfile_bfd); int val; unsigned int num_symbols; file_ptr symtab_offset; file_ptr stringtab_offset; - symfile_bfd = abfd; /* Kludge for swap routines. */ - /* WARNING WILL ROBINSON! ACCESSING BFD-PRIVATE DATA HERE! FIXME! */ - num_symbols = bfd_get_symcount (abfd); /* How many syms */ + num_symbols = bfd_get_symcount (symfile_bfd); /* How many syms */ symtab_offset = cdata->sym_filepos; /* Symbol table file offset */ stringtab_offset = symtab_offset + /* String table file offset */ num_symbols * cdata->local_symesz; @@ -318,8 +315,8 @@ coff_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) from the section address, rather than as absolute addresses. FIXME: We should use BFD to read the symbol table, and thus avoid this problem. */ - pe_file = (startswith (bfd_get_target (objfile->obfd.get ()), "pe") - || startswith (bfd_get_target (objfile->obfd.get ()), "epoc-pe")); + pe_file = (startswith (bfd_get_target (symfile_bfd), "pe") + || startswith (bfd_get_target (symfile_bfd), "epoc-pe")); /* End of warning. */ @@ -327,7 +324,7 @@ coff_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) scoped_restore restore_stringtab = make_scoped_restore (&stringtab); gdb::unique_xmalloc_ptr stringtab_storage; - val = init_stringtab (abfd, stringtab_offset, &stringtab_storage); + val = init_stringtab (stringtab_offset, &stringtab_storage); if (val < 0) error (_("\"%s\": can't get string table"), filename); @@ -337,7 +334,7 @@ coff_symfile_read (struct objfile *objfile, symfile_add_flags symfile_flags) { bool found_stab_section = false; - for (asection *sect : gdb_bfd_sections (abfd)) + for (asection *sect : gdb_bfd_sections (symfile_bfd)) if (startswith (bfd_section_name (sect), ".stab")) { found_stab_section = true; @@ -383,7 +380,7 @@ coff_symtab_read (minimal_symbol_reader &reader, symnum = 0; /* Position to read the symbol table. */ - val = bfd_seek (objfile->obfd.get (), symtab_offset, 0); + val = bfd_seek (symfile_bfd, symtab_offset, 0); if (val < 0) error (_("Error reading symbols from %s: %s"), objfile_name (objfile), bfd_errmsg (bfd_get_error ())); @@ -476,8 +473,7 @@ coff_symtab_read (minimal_symbol_reader &reader, } else { - asection *bfd_section - = cs_to_bfd_section (cs, objfile->obfd.get ()); + asection *bfd_section = cs_to_bfd_section (cs); sec = cs_to_section (cs, objfile); tmpaddr = cs->c_value; @@ -579,7 +575,7 @@ read_one_sym (struct coff_symbol *cs) case C_FCN: case C_EFCN: if (cs->c_secnum != 0) - cs->c_value += cs_section_address (cs, symfile_bfd); + cs->c_value += cs_section_address (cs); break; } } @@ -588,7 +584,7 @@ read_one_sym (struct coff_symbol *cs) /* Support for string table handling. */ static int -init_stringtab (bfd *abfd, file_ptr offset, gdb::unique_xmalloc_ptr *storage) +init_stringtab (file_ptr offset, gdb::unique_xmalloc_ptr *storage) { long length; int val; @@ -599,10 +595,10 @@ init_stringtab (bfd *abfd, file_ptr offset, gdb::unique_xmalloc_ptr *stora if (offset == 0) return 0; - if (bfd_seek (abfd, offset, 0) < 0) + if (bfd_seek (symfile_bfd, offset, 0) < 0) return -1; - val = bfd_read (lengthbuf, sizeof lengthbuf, abfd); + val = bfd_read (lengthbuf, sizeof lengthbuf, symfile_bfd); /* If no string table is needed, then the file may end immediately after the symbols. Just return with `stringtab' set to null. */ if (val != sizeof lengthbuf) @@ -621,7 +617,7 @@ init_stringtab (bfd *abfd, file_ptr offset, gdb::unique_xmalloc_ptr *stora return 0; val = bfd_read (stringtab + sizeof lengthbuf, - length - sizeof lengthbuf, abfd); + length - sizeof lengthbuf, symfile_bfd); if (val != length - sizeof lengthbuf || stringtab[length - 1] != '\0') return -1; -- 2.52.0