public inbox for binutils-cvs@sourceware.org
 help / color / mirror / Atom feed
* [binutils-gdb] libctf: make ctf_lookup of symbols by name work in more cases
@ 2024-04-19 15:52 Nick Alcock
  0 siblings, 0 replies; only message in thread
From: Nick Alcock @ 2024-04-19 15:52 UTC (permalink / raw)
  To: binutils-cvs

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=9049b960f2bc7f0cb9db80d255e9fbec9f476f0f

commit 9049b960f2bc7f0cb9db80d255e9fbec9f476f0f
Author: Nick Alcock <nick.alcock@oracle.com>
Date:   Tue Apr 2 16:06:50 2024 +0100

    libctf: make ctf_lookup of symbols by name work in more cases
    
    In particular, we don't need a symbol table if we're looking up a
    symbol by name and that type of symbol has an indexed symtypetab,
    since in that case we get the name from the symtypetab index, not
    from the symbol table.
    
    This lets you do symbol lookups in unlinked object files and unlinked
    dicts written out via libctf's writeout functions.
    
    libctf/
    
            * ctf-lookup.c (ctf_lookup_by_sym_or_name): Allow lookups
            by index even when there is no symtab.

Diff:
---
 libctf/ctf-lookup.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libctf/ctf-lookup.c b/libctf/ctf-lookup.c
index aa251bafb89..f37dd7e45ce 100644
--- a/libctf/ctf-lookup.c
+++ b/libctf/ctf-lookup.c
@@ -1045,7 +1045,9 @@ ctf_lookup_by_sym_or_name (ctf_dict_t *fp, unsigned long symidx,
     }
 
   err = ECTF_NOSYMTAB;
-  if (sp->cts_data == NULL)
+  if (sp->cts_data == NULL && symname == NULL &&
+      ((is_function && !fp->ctf_funcidx_names) ||
+       (!is_function && !fp->ctf_objtidx_names)))
     goto try_parent;
 
   /* This covers both out-of-range lookups by index and a dynamic dict which

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2024-04-19 15:52 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-19 15:52 [binutils-gdb] libctf: make ctf_lookup of symbols by name work in more cases Nick Alcock

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).