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