From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24708 invoked by alias); 13 Apr 2003 15:25:29 -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 24701 invoked from network); 13 Apr 2003 15:25:29 -0000 Received: from unknown (HELO crack.them.org) (65.125.64.184) by sources.redhat.com with SMTP; 13 Apr 2003 15:25:28 -0000 Received: from nevyn.them.org ([66.93.61.169] ident=mail) by crack.them.org with asmtp (Exim 3.12 #1 (Debian)) id 194jMO-0002dl-00; Sun, 13 Apr 2003 10:25:36 -0500 Received: from drow by nevyn.them.org with local (Exim 3.36 #1 (Debian)) id 194jME-0000I2-00; Sun, 13 Apr 2003 11:25:26 -0400 Date: Sun, 13 Apr 2003 15:25:00 -0000 From: Daniel Jacobowitz To: Elena Zannoni Cc: gdb-patches@sources.redhat.com, Kris Warkentin Subject: Re: RFA: tweak minsyms check for GNU v3 symbols Message-ID: <20030413152526.GB27843@nevyn.them.org> Mail-Followup-To: Elena Zannoni , gdb-patches@sources.redhat.com, Kris Warkentin References: <20030303035409.GA5850@nevyn.them.org> <16012.43672.471576.171837@localhost.redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <16012.43672.471576.171837@localhost.redhat.com> User-Agent: Mutt/1.5.1i X-SW-Source: 2003-04/txt/msg00264.txt.bz2 On Thu, Apr 03, 2003 at 04:41:44PM -0500, Elena Zannoni wrote: > Daniel Jacobowitz writes: > > This is based on a patch that Kris Warkentin sent out last October, that's > > been sitting in my inbox for a while. It's a little more efficient but the > > idea is the same. Right now, we consider any _Z symbol to imply GNU v3; but > > what we really want is for any _Z symbol _which demangled successfully_ to > > imply GNU v3. _Zero is the QNX example of a false positive for the current > > check. It's still not perfect, but it's much better. > > > > Tested in combination with the "set cp-abi" patch, to make sure it behaved > > properly; sure enough: > > - we still get GNU v3 for a v3 application > > - we no longer get GNU v3 for a v2 application containing _Zero (before > > the patch, we did). > > > > Is this OK? > > > > > I am back. yey. Welcome back (belatedly)! > approved, sure. Checked in (belatedly). Here's the updated patch, someone had done the SYMBOL_LINKAGE_NAME bit already. -- Daniel Jacobowitz MontaVista Software Debian GNU/Linux Developer 2003-04-13 Daniel Jacobowitz * minsyms.c (install_minimal_symbols): Only switch to gnu-v3 mode if the linkage name demangled successfully. Index: gdb/minsyms.c =================================================================== RCS file: /cvs/src/src/gdb/minsyms.c,v retrieving revision 1.29 diff -u -p -r1.29 minsyms.c --- gdb/minsyms.c 10 Mar 2003 20:40:45 -0000 1.29 +++ gdb/minsyms.c 13 Apr 2003 15:20:28 -0000 @@ -920,8 +920,14 @@ install_minimal_symbols (struct objfile for (i = 0; i < mcount; i++) { + /* If a symbol's name starts with _Z and was successfully + demangled, then we can assume we've found a GNU v3 symbol. + For now we set the C++ ABI globally; if the user is + mixing ABIs then the user will need to "set cp-abi" + manually. */ const char *name = SYMBOL_LINKAGE_NAME (&objfile->msymbols[i]); - if (name[0] == '_' && name[1] == 'Z') + if (name[0] == '_' && name[1] == 'Z' + && SYMBOL_DEMANGLED_NAME (&objfile->msymbols[i]) != NULL) { set_cp_abi_as_auto_default ("gnu-v3"); break;