[PATCH 4/5] Add protected symbols support for all architectures
Carmelo AMOROSO
carmelo.amoroso at st.com
Wed Jan 12 15:48:10 UTC 2011
-----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
> <carmelo.amoroso at st.com> wrote:
> > From: Salvatore Cro <salvatore.cro at st.com>
> >
> > 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 <salvatore.cro at st.com>
> > Signed-off-by: Carmelo Amoroso <carmelo.amoroso at st.com>
> > ---
> > 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-----
More information about the uClibc
mailing list