This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: A gdb+bfd string pool?


On Fri, Oct 31, 2003 at 10:15:39AM -0500, Andrew Cagney wrote:

Hello,

GDB, to contain its run-time size is, uses gdb/bcaches where ...
/* A bcache is a data structure for factoring out duplication in
read-only structures. You give the bcache some string of bytes S.
If the bcache already contains a copy of S, it hands you back a
pointer to its copy. Otherwise, it makes a fresh copy of S, and
hands you back a pointer to that. In either case, you can throw
away your copy of S, and use the bcache's.
One notable feature of this mechanism is that it lets you eliminate string equality comparisons - equal bcache values implies equal strings.


Now, if I'm reading the BFD elf reader correctly, elf-strtab implements a similar mechanism (But I think it is currently only used by the linker?).

Should/could BFD export a string pool that GDB could use and then use that for any slurped symbol names?


Well, if so, it should go in libiberty - and in fact, is the hash table
in libiberty in any way unsuited to replace bcache?

The interface or the implementation? The bcache interface is focused and simple (something that can't be said for that hash table). The hashtab could certainly be used in the implementation (as elf-strtab did).


Anyway, back to the question. Does a [global] common pool make sense for BFD?

Andrew



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]