FD-PIC patches for uClibc
Joakim Tjernlund
joakim.tjernlund at transmode.se
Mon Nov 26 12:26:02 UTC 2007
On Sun, 2007-11-25 at 22:59 +0100, Bernd Schmidt wrote:
> Joakim Tjernlund wrote:
>
> > Did a quick scan of the patches and came up with these comments:
>
> While they tell me what you dislike, they don't really provide much in
> the way of alternatives.
Yes, sorry for the negative tone. Was in a hurry.
>
> > The 02_underscores patch is really ugly.
>
> Any suggestions how to improve it?
remove _ syms from gcc would be best. Do you really need them?
>
> > Don't like the dl_find_hash_mod v.s dl_find_hash thingy.
>
> What do you dislike, and how would you do it differently?
Thes should only be one dl_find_hash used by all arch. NPTL
has extended dl_find_hash to support NPTL and perhaps you
can use that one?
>
> > +#if defined(DL_BOOT_COMPUTE_GOT)
> > + DL_BOOT_COMPUTE_GOT(got);
> > +#else
> > got = elf_machine_dynamic();
> > +#endif
> > +
> > + /* Now, finally, fix up the location of the dynamic stuff */
> > +#ifdef DL_BOOT_COMPUTE_DYN
> > + DL_BOOT_COMPUTE_DYN (dpnt, got, load_addr);
> > +#else
> > dpnt = (ElfW(Dyn) *) DL_RELOC_ADDR(load_addr, got);
> > +#endif
>
> What happens on the Blackfin is that the startup code computes these
> values and passes them down to the DL_START function. Hence, we need to
> just copy them from a function argument; calling elf_machine_dynamic
> doesn't do the trick.
You can use the same trick DL_RELOC_ADDR() uses:
#ifndef DL_BOOT_COMPUTE_GOT
#define DL_BOOT_COMPUTE_GOT(got) got = elf_machine_dynamic()
>
>
> Bernd
More information about the uClibc
mailing list