From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7634 invoked by alias); 30 Jul 2004 18:57:35 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 7621 invoked from network); 30 Jul 2004 18:57:34 -0000 Received: from unknown (HELO iris1.csv.ica.uni-stuttgart.de) (129.69.118.2) by sourceware.org with SMTP; 30 Jul 2004 18:57:34 -0000 Received: from rembrandt.csv.ica.uni-stuttgart.de ([129.69.118.42] ident=mail) by iris1.csv.ica.uni-stuttgart.de with esmtp id 1BqcZN-0001at-00; Fri, 30 Jul 2004 20:57:29 +0200 Received: from ica2_ts by rembrandt.csv.ica.uni-stuttgart.de with local (Exim 3.35 #1 (Debian)) id 1BqcZM-00005j-00; Fri, 30 Jul 2004 20:57:28 +0200 Date: Fri, 30 Jul 2004 18:57:00 -0000 To: Joel Brobecker Cc: Mark Kettenis , binutils@sources.redhat.com, gdb-patches@sources.redhat.com Subject: Re: [RFA] MIPS_TEXT symbols should be associated to .text section? Message-ID: <20040730185728.GB965@rembrandt.csv.ica.uni-stuttgart.de> References: <20040721204604.GN1278@gnat.com> <20040729220156.GK1167@gnat.com> <20040729221904.GT965@rembrandt.csv.ica.uni-stuttgart.de> <200407292314.i6TNEqwV024526@elgar.kettenis.dyndns.org> <20040730003138.GU965@rembrandt.csv.ica.uni-stuttgart.de> <20040730180800.GQ1167@gnat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20040730180800.GQ1167@gnat.com> User-Agent: Mutt/1.5.6i From: Thiemo Seufer X-SW-Source: 2004-07/txt/msg00513.txt.bz2 Joel Brobecker wrote: [snip] > So this leaves us with 2 options: > > 1. Do a search for the .text and .data sections by name > > 2. Find a place somewhere where we can set these fields before we > need to use them. If we have a hook for instance after we've > read the ELF header, or while iterating over the different sections > (I don't know the code, so I'm just tossing ideas). > > Or another approach would be to check that field, and if null > then do the lookup by name and store it in elf_tdata > (abfd)->elf_text_section for all the following symbols. > This is just an optimized variation of 1, really. I prefer the first. Please test this patch. Thiemo Index: bfd/elfxx-mips.c =================================================================== RCS file: /cvs/src/src/bfd/elfxx-mips.c,v retrieving revision 1.106 diff -u -p -r1.106 elfxx-mips.c --- bfd/elfxx-mips.c 1 Jul 2004 14:53:40 -0000 1.106 +++ bfd/elfxx-mips.c 30 Jul 2004 18:53:18 -0000 @@ -4192,15 +4192,37 @@ _bfd_mips_elf_symbol_processing (bfd *ab asym->section = bfd_und_section_ptr; break; -#if 0 /* for SGI_COMPAT */ case SHN_MIPS_TEXT: - asym->section = mips_elf_text_section_ptr; + { + asection *section = bfd_get_section_by_name (abfd, ".text"); + + BFD_ASSERT (SGI_COMPAT (abfd)); + if (section != NULL) + { + asym->section = section; + /* MIPS_TEXT is a bit special, the address is not an offset + to the base of the .text section. So substract the section + base address to make it an offset. */ + asym->value -= section->vma; + } + } break; case SHN_MIPS_DATA: - asym->section = mips_elf_data_section_ptr; + { + asection *section = bfd_get_section_by_name (abfd, ".data"); + + BFD_ASSERT (SGI_COMPAT (abfd)); + if (section != NULL) + { + asym->section = section; + /* MIPS_DATA is a bit special, the address is not an offset + to the base of the .data section. So substract the section + base address to make it an offset. */ + asym->value -= section->vma; + } + } break; -#endif } }