[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