From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11964 invoked by alias); 31 Oct 2003 15:45:46 -0000 Mailing-List: contact gdb-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sources.redhat.com Received: (qmail 11952 invoked from network); 31 Oct 2003 15:45:45 -0000 Received: from unknown (HELO localhost.redhat.com) (207.219.125.105) by sources.redhat.com with SMTP; 31 Oct 2003 15:45:45 -0000 Received: from redhat.com (localhost [127.0.0.1]) by localhost.redhat.com (Postfix) with ESMTP id CCE082B89; Fri, 31 Oct 2003 10:45:43 -0500 (EST) Message-ID: <3FA283A7.7080706@redhat.com> Date: Fri, 31 Oct 2003 15:45:00 -0000 From: Andrew Cagney User-Agent: Mozilla/5.0 (X11; U; NetBSD macppc; en-US; rv:1.0.2) Gecko/20030820 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Daniel Jacobowitz Cc: Andrew Cagney , binutils@sources.redhat.com, gdb@sources.redhat.com Subject: Re: A gdb+bfd string pool? References: <3FA27C9B.1000702@redhat.com> <20031031151927.GA32700@nevyn.them.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-SW-Source: 2003-10/txt/msg00347.txt.bz2 > 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