summaryrefslogtreecommitdiff
path: root/ldso/ldso/dl-elf.c
AgeCommit message (Collapse)Author
2010-09-17ldso: Fix loadaddr and mappaddr when prelink support is enabled.Filippo Arcidiacono
Fixed loadaddr and mappaddr fields to correctly work when prelink support is enabled. - loadaddr is an offset relative to the first loadable segment. - mapaddr is the address where the object has been mapped in memory. Non PIC library detection fixed too. Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com> Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2010-09-17ldso: Add runtime prelink supportFilippo Arcidiacono
Added runtime prelink support to be able to run a prelinked application; at process startup only the conflicts will be relocated. This speed up the startup time. Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com> Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2010-09-17ldso: Rework global scope handling and symbol lookup mechanismFilippo Arcidiacono
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>
2010-09-17ldso: Add implementation of ld.so standalone executionFilippo Arcidiacono
The dynamic linker can be run either indirectly through running some dynamically linked program or library (in which case no command line options to the dynamic linker can be passed and, in the ELF case, the dynamic linker which is stored in the .interp section of the program is executed) or directly by running: /lib/ld-uClibc.so.* [OPTIONS] [PROGRAM [ARGUMENTS]] Stand-alone execution is a prerequisite for adding prelink capabilities to uClibc dynamic linker, as well useful for testing an updated version of the dynamic linker without breaking the whole system. Currently supported option: --library-path PATH use given PATH instead of content of the environment variable LD_LIBRARY_PATH (Mandatory for prelinking) Not supported options: --list list all dependencies and how they are resolved --verify verify that given object really is a dynamically linked object we can handle --inhibit-rpath LIST ignore RUNPATH and RPATH information in object names in LIST This feature can be enabled by setting LDSO_STANDALONE_SUPPORT=y Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono@st.com> Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2010-04-22ldso: support RTLD_NODELETE and DF_1_NODELETETimo Teräs
Honor the nodelete flags so we don't delete shared library if it's sticky. This is useful for libpthread if it gets pulled in by a dlopen'ed library. Signed-off-by: Timo Teräs <timo.teras@iki.fi> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2010-04-12silence debug warningBernhard Reutner-Fischer
variable 'tmp' set but not used Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-12-23Make _dl_dprintf buf non-static to avoid multithreading bugs.Chris Metcalf
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com> Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-12-17check if USE_TLS is defined before useHans-Christian Egtvedt
This patch will convert all the #ifdef USE_TLS and #if USE_TLS to #if defined(USE_TLS) && USE_TLS. By checking if the USE_TLS is defined before checking its value will result in correct behavior for architectures not defining this config symbol. Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com> Acked-by: Carmelo AMOROSO <carmelo.amoroso@st.com>
2009-11-23nommu: use MAP_UNINITIALIZE for mallocsMike Frysinger
Now that the kernel supports MAP_UNINITIALIZE, have the malloc places use it to get real uninitialized memory on no-mmu systems. This avoids a lot of normally useless overhead involved in zeroing out all of the memory (sometimes multiple times). Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-10-15ldso: clean up breakage in tls mergeMike Frysinger
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>
2009-10-07ldso: use O_CLOEXEC for cache fileMike Frysinger
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-10-07ldso: use MAP_FAILED with ld.so.cacheMike Frysinger
Rather than use our own custom casted -1 value, just use the MAP_FAILED that common code already sets up for us for mmap(). Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-09-26ldso/: tls support for dynamic linkerAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-07-05Avoid type-punned pointers that break strict-aliasingRon
Signed-off-by: Ron Lee <ron@debian.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-01-10simple optimizations and style fixes in dynamic loadingDenis Vlasenko
text data bss dec hex filename - 16709 240 92 17041 4291 lib/ld-uClibc.so + 16634 236 92 16962 4242 lib/ld-uClibc.so - 4602 344 4 4950 1356 lib/libdl-0.9.30-svn.so + 4571 328 4 4903 1327 lib/libdl-0.9.30-svn.so - 4602 344 4 4950 1356 lib/libdl.so + 4571 328 4 4903 1327 lib/libdl.so
2008-12-03- use proper macrosBernhard Reutner-Fischer
2008-12-03- use proper macro (no obj-code changes)Bernhard Reutner-Fischer
2008-11-18Move _dl_iterate_phdr into libc.so.0 and libc.a (as glibc does).Carmelo Amoroso
Currently we have an implementation in ld.so and libdl.a. Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2008-09-23ldso: removed dead code.Carmelo Amoroso
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2008-05-30- fix the macros rather than the callees as rightfully noted by bernds (duh!)Bernhard Reutner-Fischer
2008-05-30- Avoid warning about missing brace.Bernhard Reutner-Fischer
2008-01-09fix broken whitespace in many places; no functional changesMike Frysinger
2007-12-04Blackfin FD-PIC patch 6/6.Bernd Schmidt
These are mostly the changes necessary to deal with loading the libraries into memory. A couple new target macros are defined for this purpose, and the code in dl-elf.c is modified to deal with nommu systems.
2007-04-17fix ld.so.cache handling on no-mmu setupsMike Frysinger
2007-02-16Fix dlopen for static apps.Joakim Tjernlund
From Carmelo Amoroso.
2006-09-19merge some more FDPIC related fixes from Bernd SchmidtMike Frysinger
2006-07-05patch from Bernd Schmidt to abstract away initializing of relocation addressesMike Frysinger
2006-07-05patch from Bernd Schmidt to abstract away load address typesMike Frysinger
2006-07-05use ElfW(Addr) in more placesMike Frysinger
2006-07-05revert fdpic patch so we can merge it in bit by bitMike Frysinger
2006-06-30Bernd Schmidt writes: abstract away addresses so we can support FDPIC ELFsMike Frysinger
2006-06-19eat whitespaceMike Frysinger
2006-04-12doh, forgot to copy the final \0Eric Andersen
2006-04-12micro-optimization -- we already know how long the source isEric Andersen
2006-04-12cleanup whitespaceEric Andersen
2006-04-12fixup a big 'ol memory leak in search_for_named_library()Eric Andersen
2006-03-02make all the warnings the same and add line #s so we can pick em out at runtimeMike Frysinger
2006-03-02kill spurious semicolonsMike Frysinger
2006-01-26Get rid of missing prototype warningsPeter S. Mazinger
2006-01-12fix a (very unlikely) page leakMike Frysinger
2005-12-10Remove trailing ';' from strong_alias, thx Bernhard FischerPeter S. Mazinger
2005-11-20fix up ifdef checks so dl_iterate_phdr is defined in all the proper objectsMike Frysinger
2005-11-06Do not set the RELOCS_DONE flag until it is actually done. This order ↵"Steven J. Hill"
matters for NPTL libpthreads to work. Well, that was a nice waste of 3 hours.
2005-10-29Hopefully fix the bug Oleg reported in ↵Joakim Tjernlund
http://uclibc.org/lists/uclibc/2005-October/012809.html This will only fix powerpc. Should be easy to fix the other arches.
2005-09-17Fix bug 430 and reduce ldso size with 1KB :). Not sure if I need to use ↵Joakim Tjernlund
fstat64, but I am sure someone will tell me.
2005-08-29some fixes by anemo in Bug 9 to play nicely with 32 or 64 bit hostsMike Frysinger
2005-07-11use the debug dprint macros to clean up readabilityMike Frysinger
2005-07-11use the debug dprint macros to clean up readabilityMike Frysinger
2005-07-11declare reloc_addr as ElfW(Addr) instead of Word since it is an Addr, not a ↵Mike Frysinger
Word (and it will truncate addresses on 64bit hosts)
2005-07-09make sure we use long instead of int so we dont truncate 64bit valuesMike Frysinger