Age | Commit message (Collapse) | Author |
|
Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
|
|
They expand into the same code, but using the ELF_xxx()/ElfW() macros
makes it much easier to spot similarities between code bases.
Acked-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Acked-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
gcc 4.6.x raises useful warnings due to unused-but-set-variable,
This patch fixes the following one by using properly preprocessor
guard
In file included from ldso/libdl/libdl.c:129:0:
./ldso/ldso/sh/elfinterp.c: In function '_dl_do_reloc':
./ldso/ldso/sh/elfinterp.c:163:22: warning: variable 'tls_tpnt' set but not used [-Wunused-but-set-variable]
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
* origin/master:
bump version to 0.9.32-rc2-git
release 0.9.32-rc2
nptl: Fix __USER_LABEL_PREFIX__ concatenatio
nptl: fix start_thread() for _STACK_GROWS_UP
ldso: get rid of _dl_lookup_hash
Add protected symbols support for all architectures
Revert "ldso/arm: Correct protected symbol resolution"
Revert "ldso_sh: add support for protected symbols to SH"
Revert "ldso/i386: support protected symbols"
cris: Fix build issues
syslog: fix 'everyone logs with user facility'
__psfs_parse_spec: always use long int for %p
buildsys: headers target should not depend on sysnum.h
buildsys: fix make release target
nptl: get rid of the last preprocessor warning when __ASSUME_TGKILL is not defined
remove uClibc_ctype.h if !LOCALE
Revert "Makefile.in: Add header to 'all' target"
nptl: get rid of preprocessor warning when __ASSUME_TGKILL is not defined
Conflicts:
ldso/include/dl-hash.h
ldso/ldso/arm/elfinterp.c
ldso/ldso/avr32/elfinterp.c
ldso/ldso/bfin/elfinterp.c
ldso/ldso/cris/elfinterp.c
ldso/ldso/dl-hash.c
ldso/ldso/i386/elfinterp.c
ldso/ldso/m68k/elfinterp.c
ldso/ldso/mips/elfinterp.c
ldso/ldso/powerpc/elfinterp.c
ldso/ldso/sh/elfinterp.c
ldso/ldso/sh64/elfinterp.c
ldso/ldso/sparc/elfinterp.c
ldso/ldso/x86_64/elfinterp.c
ldso/ldso/xtensa/elfinterp.c
ldso/libdl/libdl.c
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@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@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
This reverts commit 74407db52d3953c7f3c6b8a53661cfc96cb07e22.
The generic implementation will cover all the architectures handling
the protected symbols in _dl_lookup_hash [ldso/ldso/dl-hash.c]
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Conflicts:
ldso/ldso/sh/elfinterp.c
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Protected symbols should not be overridden by
symbols from other modules. Such symbols are exported
i.e. globally visible, but references from whithin
defining modules are satisfied locally.
Signed-off-by: Salvatore Cro <salvatore.cro@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Added support for the following tracing capabilities:
- LD_WARN to warn about undefined symbols during the lookup stage.
- LD_TRACE_PRELINKING to trace the needed libraries of the object
that we are prelinking.
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Global symbol scope is implemented as a linked list of
local scope, that dynamically grows and shrinks when dlopen/
dlclose are called. Each local scope is implemented as an array
of pointer to struct elf_resolve.
This will help to detect conflict when LD_TRACE_PRELINKING option
will be implemented.
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com>
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
The TLS merge 534661b91c9849 introduced multiple style problems as well as
random breakage:
- missing _dl_free
- incomplete parametrization of _dl_lookup_hash
- restore FDPIC handling in _dl_lookup_hash
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
and wrap superlong line.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
|
from all archs.
Signed-off-by: Jiri Olsa <olsajiri@gmail.com>
|
|
|
|
|
|
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
|
|
|
|
|
|
|
|
|
|
where possible. This will also make ldso smaller.
However the patch touches all archs and I have only tested PPC and x86.
|
|
Andrew de Quincey, who has been most helpful getting this sorted
out, thanks. Thanks also to Peter Mazinger who did alot of testing.
Removed all traces of dl_parse_copy_information() since it is no longer used.
|
|
Move COPY relocs back to _dl_do_reloc().
|
|
"I fixed the _dl_parse_copy_information in the same way than for the
powerpc and it works fine for me.
You may luck at the patch for the powerpc/elfinterp.c, where I change
the paramter of a dl_dprintf statement. Now we use the same
parameters than for the relocation copy."
Arch mantainers, please do the same.
When all arches has been fixed, we can remove of _dl_parse_copy_information,
it is just a waste of CPU cycles.
|
|
Remove unused function parameter in ldso.
Remove echo option '-e' since it is not supported on Solaris.
|
|
is needed if ldso should use libcs malloc whenever possible.
Fix RTLD_LAZY propagation to RTLD_NOW relocation when requested by
libdl.
|
|
|
|
Hi it is me again.
This is the latest ldso patch. the NEW weak symbol handling works now
with a little special handling in _dl_find_hash(). You get to chose
if you want the new or old handling :)
There was 2 missing _dl_check_if_named_library_is_loaded() calls in _dlopen().
I then disabled the _dl_check_if_named_library_is_loaded() in dl-elf.c since
it is rendundant.
Question, why does some _dl_linux_resolver(), like i386, have 2 calls
to _dl_find_hash()? I think that is wrong, isn't it?
I really hope you can check this out soon ...
|
|
_dl_parse_lazy_relocation_information() and _dl_parse_copy_information()
so they are all consistant, allowing for future consolidation.
Trim some trailing whitespace as well.
|
|
Hello,
my patch changed the format of the ldso debug output to the same
format as on the i386 systems.
By Stefan
|
|
Move all configuration options into the new config system.
-Erik
|
|
and "M. R. Brown" <mrbrown@0xd6.org>
|
|
how uClibc handles _init and _fini, allowing shared lib constructors and
destructors to initialize things in the correct sequence. Stefan ported the SH
architecture. I then ported x86, arm, and mips. x86 and arm are working fine,
but I don't think I quite got things correct for mips.
|
|
<tero@paravant.fi>
|
|
loader build properly. Mostly just sprinkling casts, and making
static some things that should be static.
|
|
shared library support. This also adds some cleaner error
handling, which I (Erik) then ported over to x86 and arm.
In addition Stefan added the following fixes:
- in hash.c was the lvalue handling of global library functions wrong.
To fix this I had to change the prototype of _dl_find_hash. (==> TIS and
ELF spec. Vers. 1.2)
- in ldso.c was the order of the .init sections calls wrong. Before we call
the initialization code of a library we have to check that all dependend
libraries are already initialized. This can easily made by calling it in the
revers loading order. For this I added a previous pointer chain.
- in ldso.c the ELF magics wasn't checked fo PPC, MIPS and SH architecture
|