From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23129 invoked by alias); 17 Jun 2003 15:51:56 -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 23111 invoked from network); 17 Jun 2003 15:51:55 -0000 Received: from unknown (HELO crack.them.org) (146.82.138.56) by sources.redhat.com with SMTP; 17 Jun 2003 15:51:55 -0000 Received: from dsl093-172-017.pit1.dsl.speakeasy.net ([66.93.172.17] helo=nevyn.them.org ident=mail) by crack.them.org with asmtp (Exim 3.12 #1 (Debian)) id 19SIlD-0005J1-00; Tue, 17 Jun 2003 10:52:39 -0500 Received: from drow by nevyn.them.org with local (Exim 3.36 #1 (Debian)) id 19SIkN-0006b3-00; Tue, 17 Jun 2003 11:51:47 -0400 Date: Tue, 17 Jun 2003 15:51:00 -0000 From: Daniel Jacobowitz To: Kris Warkentin Cc: "Gdb-Patches@Sources.Redhat.Com" Subject: Re: [Patch] arch recognition fix for osabi.c Message-ID: <20030617155147.GA25280@nevyn.them.org> Mail-Followup-To: Kris Warkentin , "Gdb-Patches@Sources.Redhat.Com" References: <08c201c334e6$ccb8c750$0202040a@catdog> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <08c201c334e6$ccb8c750$0202040a@catdog> User-Agent: Mutt/1.5.1i X-SW-Source: 2003-06/txt/msg00563.txt.bz2 On Tue, Jun 17, 2003 at 11:40:37AM -0400, Kris Warkentin wrote: > Here are some changes to osabi.c that allow gdb to recognize QNX binaries > properly. The arch check change in gdbarch_init_osabi() allows the backend > abi_init handlers to run. I believe the comment still stand - we will > probably want to do something smarter in the future. > > The sniff change is only temporary. It works reasonably well for now and > will probably stay for backwards compatability but we are also going to add > a special .note section like others OSes in the future. Then we can check > for both. > > cheers, > > Kris > > Changelog: > * osabi.c (gdbarch_init_osabi): Just check arch for compatability rather > identicality. Your mailer is eating indentation again... This half I'm not convinced by. From our previous exchange I don't think you've fully justified it. Not approved without more discussion. > (generic_elf_osabi_sniff_abi_tag_sections): Add check for QNX Neutrino > binaries. This bit looks fine, except for two things: you've missed the coding standards by four space characters (before left parens), and your "safety first" check overruns the buffer (missing +1 in the alloca). > Index: osabi.c > =================================================================== > RCS file: /cvs/src/src/gdb/osabi.c,v > retrieving revision 1.15 > diff -u -r1.15 osabi.c > --- osabi.c 8 Jun 2003 18:27:14 -0000 1.15 > +++ osabi.c 17 Jun 2003 15:32:53 -0000 > @@ -311,8 +311,7 @@ > type that is compatible with the desired machine type. Right > now we simply return the first match, which is fine for now. > However, we might want to do something smarter in the future. */ > - compatible = arch_info->compatible (arch_info, handler->arch_info); > - if (compatible == handler->arch_info) > + if(arch_info->compatible (arch_info, handler->arch_info)) > { > (*handler->init_osabi) (info, gdbarch); > return; > @@ -430,6 +429,17 @@ > necessary yet. */ > *os_ident_ptr = GDB_OSABI_NETBSD_ELF; > } > + return; > + } > + > + /* QNX Neutrino has ldqnx.so as its linker. */ > + if (strcmp (name, ".interp") == 0 && sectsize > 0) > + { > + char *buf = alloca(sectsize); > + bfd_get_section_contents(abfd, sect, buf, 0, sectsize); > + buf[sectsize] = '\0'; /* Safety first boys and girls. */ > + if(strstr(buf, "ldqnx.so")) > + *os_ident_ptr = GDB_OSABI_QNXNTO; > return; > } > } > > > -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer