From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1053 invoked by alias); 2 Oct 2005 23:22:39 -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 1045 invoked by uid 22791); 2 Oct 2005 23:22:37 -0000 Received: from omta05ps.mx.bigpond.com (HELO omta05ps.mx.bigpond.com) (144.140.83.195) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Sun, 02 Oct 2005 23:22:37 +0000 Received: from grove.modra.org ([144.136.167.90]) by omta05ps.mx.bigpond.com with ESMTP id <20051002232228.UUMB7407.omta05ps.mx.bigpond.com@grove.modra.org> for ; Sun, 2 Oct 2005 23:22:28 +0000 Received: by bubble.grove.modra.org (Postfix, from userid 500) id 9BC76118CD2; Mon, 3 Oct 2005 08:52:28 +0930 (CST) Date: Sun, 02 Oct 2005 23:22:00 -0000 From: Alan Modra To: gdb-patches@sources.redhat.com Subject: Re: Fix powerpc64-linux inferior function calls Message-ID: <20051002232228.GB26007@bubble.grove.modra.org> References: <20050928073345.GK29044@bubble.grove.modra.org> <20051002223118.GC32728@nevyn.them.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20051002223118.GC32728@nevyn.them.org> User-Agent: Mutt/1.4i X-SW-Source: 2005-10/txt/msg00009.txt.bz2 On Sun, Oct 02, 2005 at 06:31:18PM -0400, Daniel Jacobowitz wrote: > > (elf_symfile_read): Read both static and dynamic symbols before > > processing. Call bfd_get_synthetic_symtab. > > Why do we need to read both before processing either? The powerpc64 get_synthetic_symtab will use both dynamic and static symbol tables. Handy when debugging stripped objects. So both symbols tables need to be read before calling bfd_get_synthetic_symtab. > I'm thinking of > the patch I posted here: > http://sourceware.org/ml/gdb-patches/2005-06/msg00220.html > and pinged a few weeks ago. Which I see you do in this patch too. I didn't know about your patch when I wrote mine.. The order of processing doesn't matter at all. It just fell out that way in my patch. Incidentally, why did you need to fudge the synthetic syms? + /* Synthetic symbols are not, strictly speaking, either local + or global. But we can treat them as global symbols, since + they are effectively dynamic symbols. */ + synth_symbol_table[i]->flags |= BSF_GLOBAL; Seems like this should be done in bfd if necessary. -- Alan Modra IBM OzLabs - Linux Technology Centre