-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 1/12/2011 4:31 PM, Natanael Copa wrote: > On Wed, Jan 12, 2011 at 12:22 PM, Carmelo AMOROSO > <[email protected]> wrote: > > From: Salvatore Cro <[email protected]> > > > > Protected symbols are global symbols for which interposition is not > allowed. > > We manage them in generic _dl_lookup_hash function. To handle protected > symbols > > we need to get a reference to the module that defines the symbol itself. > > So we pass a new parameter 'struct symbol_ref' to the __dl_lookup_hash > > that is defined as below: > > > > struct symbol_ref { > > const ElfW(Sym) *sym; > > struct elf_resolve *tpnt; > > }; > > > > The tpnt field is used as an ouput parameter and refers to the module > which > defines > > the protected symbol. > > Further it can be used as output parameter for TLS relocations and FDPIC > case. > > The sym field is instead used as an input parameter to detect the > visibility > of the > > symbol we are looking-up. > > In this way we get rid of different signatures for _dl_lookup_hash, > allowing > to remove > > the _dl_find_hash wrapper. > > This new structure is also suitable for prelink integration. > > > > Signed-off-by: Salvatore Cro <[email protected]> > > Signed-off-by: Carmelo Amoroso <[email protected]> > > --- > > ldso/include/dl-hash.h | 16 ++++++++-------- > > ldso/ldso/arm/elfinterp.c | 6 +++++- > > ldso/ldso/avr32/elfinterp.c | 13 +++++++------ > > ldso/ldso/bfin/elfinterp.c | 18 ++++++++++++------ > > ldso/ldso/cris/elfinterp.c | 5 ++++- > > ldso/ldso/dl-hash.c | 20 ++++++++++++-------- > > ldso/ldso/i386/elfinterp.c | 6 +++++- > > ldso/ldso/m68k/elfinterp.c | 15 ++++++++------- > > ldso/ldso/mips/elfinterp.c | 6 +++++- > > ldso/ldso/powerpc/elfinterp.c | 20 +++++++++++--------- > > ldso/ldso/sh/elfinterp.c | 10 +++++++--- > > ldso/ldso/sh64/elfinterp.c | 7 +++++-- > > ldso/ldso/sparc/elfinterp.c | 24 +++++++++++++----------- > > ldso/ldso/x86_64/elfinterp.c | 20 +++++++++++--------- > > ldso/ldso/xtensa/elfinterp.c | 11 ++++++----- > > ldso/libdl/libdl.c | 7 ++++--- > > 16 files changed, 123 insertions(+), 81 deletions(-) > > this didnt apply against current git master? > > maybe needs a rebase? > > -nc > Hi you need to apply also the patch 1,2 and 3 that revert the arch specific implementation (sh, asrm i386). The patch set was created against an updated master branch.
Cheers, carmelo -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAk0tzToACgkQoRq/3BrK1s+LYgCdESi0xoazi+ss5ZqVgmmmjUjq deEAn3XCc3WZghlrzXFZAqydvPnTA89K =OHWD -----END PGP SIGNATURE----- _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
