tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Reducing ld.elf_so relocations and size
On Saturday 11 December 2010 21:50:06 Joerg Sonnenberger wrote:
> On Sat, Dec 11, 2010 at 07:52:21AM +0000, Nick Hudson wrote:
> > > (2) It (almost) allows to drop the special visibility hacks in
> > > ld.elf_so. Look at the output of 'readelf -s ld.elf_so' and the long
> > > list of GLOBAL symbols with DEFAULT visiblity. After the patch, only 3
> > > symbols are still visible that shouldn't be (__bss_start, _edata, _end)
> > > and they come from the ld script used. It should be fixed to make them
> > > hidden or protected, but that's a separate discussion.
> >
> > Wouldn't a simple version script be better here?
> >
> > { global: foo; bar; local: *; };
> >
> > Doesn't this allow _rtld_is_exported to die?
>
> This helps the visibility, but doesn't help with goal (1).
What relocs are there against __bss_start, _edata, and _end?
> > > I know that the global define trick is not the most beautiful approach,
> > > but I haven't found an idea that involves less code changes and still
> > > gives the benefits of (1). More importantly, I would strongly prefer to
> > > only have to source code as optimisation, not to make it work. I also
> > > don't want to duplicate the logic from libc to decide where a specific
> > > source file lives and if the C version or the MD assembler should be
> > > used. Ideas are welcome.
> >
> > To replay my previous comments and add some more
> >
> > - Abusing libc/Makefile is awful
>
> libc's build system is not the most friendly for actually reusing stuff.
> It is finding sources in one of four locations, some of them at least
> hard coded using .CURDIR. That's not very helpful for interacting with
> it and I don't want to change half of the libc build system.
>
> > - Extracting make logic into a separate .mk is desirable.
>
> Doesn't help much due to the former.
>
> > - AFAICT, most of what you want to achieve can be done with
> > {C,CPP,AS}FLAGS - no need for .hpico.
>
> Feel free to provide a patch that actually works.
>
> > - Having libc_hidden (or some other name) under libexec/ld.elf_so
seems
> > sensible
>
> I don't think it makes any real difference.
>
> > - the asm stuff is ugly
>
> See above for why it is helpful.
>
> I am waiting for a patch that works, gives the same benefits and is
> cleaner...
There was a time when NetBSD was about doing it right for all supported
platforms even if it took that little bit more effort. You don't seem to
share this goal.
>
> Joerg
>
Home |
Main Index |
Thread Index |
Old Index