From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1287 invoked by alias); 22 Jul 2019 20:59:00 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 1274 invoked by uid 89); 22 Jul 2019 20:59:00 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.2 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=HX-Spam-Relays-External:209.85.221.65, H*RU:209.85.221.65 X-HELO: mail-wr1-f65.google.com Received: from mail-wr1-f65.google.com (HELO mail-wr1-f65.google.com) (209.85.221.65) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 22 Jul 2019 20:58:58 +0000 Received: by mail-wr1-f65.google.com with SMTP id n4so40896572wrs.3 for ; Mon, 22 Jul 2019 13:58:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=embecosm.com; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=Yhhk9L2tAHk4gF/H2/+VW1y3o0TH7TdQzqr2ugly7Nc=; b=PjfGVfnIq4uNbItPKMTUMIJ+QrLsjjjxchqsE2vEpco86eJ7TRrOKKktq/5D1IRZ6I n3om6c/wVrtom/Ewu8M3q8tIZD3erqyBp5yMk46RWVuA3A/eBddqwlMw3nsIXwvUv+4X VnvoIz10EziNVCRGV7LRXbUiqX0EI0tmqL7j6OnEmESgz4s6XJV8p2a2qz3RkEuTSyLm Qw1ZlaEHmhUUwrvFsZCe0ZaEravIjmZTk8iI1L9p3Hoef48p7dhegkukKhJMyCa8cDKZ l+HD8HT5+CZAgwTUnbJLwdat10EpaYggq2GE9sJN64xJK/1Zi7qefCLUYN/sy8Ia3FoG TsYQ== Return-Path: Received: from localhost (host86-128-12-79.range86-128.btcentralplus.com. [86.128.12.79]) by smtp.gmail.com with ESMTPSA id f17sm35927338wmf.27.2019.07.22.13.58.56 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 22 Jul 2019 13:58:56 -0700 (PDT) Date: Mon, 22 Jul 2019 20:59:00 -0000 From: Andrew Burgess To: Christian Biesinger Cc: gdb-patches@sourceware.org Subject: Re: [PATCH] Allow passing a block to lookup_global_symbol_from_objfile Message-ID: <20190722205854.GE23204@embecosm.com> References: <20190722190718.43784-1-cbiesinger@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20190722190718.43784-1-cbiesinger@google.com> X-Fortune: If I have not seen so far it is because I stood in giant's footsteps. X-Editor: GNU Emacs [ http://www.gnu.org/software/emacs ] User-Agent: Mutt/1.9.2 (2017-12-15) X-IsSubscribed: yes X-SW-Source: 2019-07/txt/msg00525.txt.bz2 * Christian Biesinger via gdb-patches [2019-07-22 14:07:18 -0500]: > gdb/ChangeLog: > > 2019-07-22 Christian Biesinger > > * compile/compile-object-load.c (compile_object_load): Pass GLOBAL_SCOPE. > * solib-spu.c (spu_lookup_lib_symbol): Pass GLOBAL_SCOPE. > * solib-svr4.c (elf_lookup_lib_symbol): Pass GLOBAL_SCOPE. > * symtab.c (lookup_global_symbol_from_objfile): Add a scope parameter. > * symtab.h: Add a scope parameter to lookup_global_symbol_from_objfile. > --- > gdb/compile/compile-object-load.c | 1 + > gdb/solib-spu.c | 3 ++- > gdb/solib-svr4.c | 3 ++- > gdb/symtab.c | 7 +++++-- > gdb/symtab.h | 2 ++ > 5 files changed, 12 insertions(+), 4 deletions(-) > > diff --git a/gdb/compile/compile-object-load.c b/gdb/compile/compile-object-load.c > index 4e70205195..3a765a345b 100644 > --- a/gdb/compile/compile-object-load.c > +++ b/gdb/compile/compile-object-load.c > @@ -639,6 +639,7 @@ compile_object_load (const compile_file_names &file_names, > objfile = objfile_holder.get (); > > func_sym = lookup_global_symbol_from_objfile (objfile, > + GLOBAL_BLOCK, > GCC_FE_WRAPPER_FUNCTION, > VAR_DOMAIN).symbol; > if (func_sym == NULL) > diff --git a/gdb/solib-spu.c b/gdb/solib-spu.c > index 448e1a64f4..5b97b9bcf6 100644 > --- a/gdb/solib-spu.c > +++ b/gdb/solib-spu.c > @@ -392,7 +392,8 @@ spu_lookup_lib_symbol (struct objfile *objfile, > const domain_enum domain) > { > if (bfd_get_arch (objfile->obfd) == bfd_arch_spu) > - return lookup_global_symbol_from_objfile (objfile, name, domain); > + return lookup_global_symbol_from_objfile (objfile, GLOBAL_BLOCK, name, > + domain); > > if (svr4_so_ops.lookup_lib_global_symbol != NULL) > return svr4_so_ops.lookup_lib_global_symbol (objfile, name, domain); > diff --git a/gdb/solib-svr4.c b/gdb/solib-svr4.c > index 8cd5b7d8e7..c0c505acaa 100644 > --- a/gdb/solib-svr4.c > +++ b/gdb/solib-svr4.c > @@ -3226,7 +3226,8 @@ elf_lookup_lib_symbol (struct objfile *objfile, > if (abfd == NULL || scan_dyntag (DT_SYMBOLIC, abfd, NULL, NULL) != 1) > return {}; > > - return lookup_global_symbol_from_objfile (objfile, name, domain); > + return lookup_global_symbol_from_objfile (objfile, GLOBAL_BLOCK, name, > + domain); > } > > void > diff --git a/gdb/symtab.c b/gdb/symtab.c > index 5b8bfc1df7..87a0c8e4da 100644 > --- a/gdb/symtab.c > +++ b/gdb/symtab.c > @@ -2224,15 +2224,18 @@ lookup_symbol_in_block (const char *name, symbol_name_match_type match_type, > > struct block_symbol > lookup_global_symbol_from_objfile (struct objfile *main_objfile, > + enum block_enum block_index, > const char *name, > const domain_enum domain) > { > + gdb_assert (block_index == GLOBAL_BLOCK || block_index == STATIC_BLOCK); > + > for (objfile *objfile : main_objfile->separate_debug_objfiles ()) > { > struct block_symbol result > - = lookup_symbol_in_objfile (objfile, GLOBAL_BLOCK, name, domain); > + = lookup_symbol_in_objfile (objfile, block_index, name, domain); > > - if (result.symbol != NULL) > + if (result.symbol != nullptr) > return result; > } > > diff --git a/gdb/symtab.h b/gdb/symtab.h > index b91454c85c..34fce7c3dd 100644 > --- a/gdb/symtab.h > +++ b/gdb/symtab.h > @@ -2048,10 +2048,12 @@ extern enum language main_language (void); > /* Lookup symbol NAME from DOMAIN in MAIN_OBJFILE's global blocks. > This searches MAIN_OBJFILE as well as any associated separate debug info > objfiles of MAIN_OBJFILE. > + block_index can be GLOBAL_BLOCK or STATIC_BLOCK. > Upon success fixes up the symbol's section if necessary. */ The name block_index should be BLOCK_INDEX in this comment. Thanks, Andrew > > extern struct block_symbol > lookup_global_symbol_from_objfile (struct objfile *main_objfile, > + enum block_enum block_index, > const char *name, > const domain_enum domain); > > -- > 2.22.0.657.g960e92d24f-goog >