This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: RFC: Speeding up libstdc++.so with --dynamic-list-data
H. J. Lu writes:
> On Tue, Jan 09, 2007 at 01:51:00PM +0000, Andrew Haley wrote:
> > H. J. Lu writes:
> > > On Tue, Jan 09, 2007 at 01:38:00PM +0000, Andrew Haley wrote:
> > > > H. J. Lu writes:
> > > > > I am enclosing a patch to implement a new linker swicth,
> > > > > --dynamic-list-data. It is -Bsymbolic for function symbols only.
> > > > > I tried it with C, C++, Java and Fortran on Linux/ia32, Linux/x86-64
> > > > > and Linux/ia64. There are only a few regressions. The function calls
> > > > > within the new resulting DSOs will bind locally. It speeds up
> > > > > the enclosed C++ testcase by
> > > > >
> > > > > 1. 23% on ia64.
> > > > > 2. 6% on ia32.
> > > > > 3. 3% on x86-64.
> > > > >
> > > > > Should we consider such optimization?
> > > >
> > > > That's a terrible name for the option. What does it mean?
> > >
> > > It is an extension of the current command line options:
> > >
> > > --dynamic-list-cpp-typeinfo Use C++ typeinfo dynamic list
> > > --dynamic-list FILE Read dynamic list
> >
> > But you said it was like -Bsymbolic for function symbols only. What
> > is the connection between C++ typeinfo and that? (Hint: Java doesn't
> > use C++ typeinfo, but -Bsymbolic for function symbols only would be
> > very useful.)
>
> --dynamic-list is a generic linker feature. Users have to provide a
> list of symbols, which will be bound dynamically and everything else
> is bound locally. --dynamic-list-cpp-typeinfo includes a prefined
> list for C++ typeinfo. --dynamic-list-data puts data symbols on
> the dynamic list.
OK, so in the case of --dynamic-list-data, there is no user-supplied
list. Instead, there's (conceptually) an automatically-generated
list, which contains every symbol that doesn't point to a function.
Can't you just call the new option -Bsymbolic-functions? At least
then people like me might have an outside chance of remembering it.
Andrew.