summaryrefslogtreecommitdiff
path: root/ldso
AgeCommit message (Collapse)Author
2009-10-15ldso: unify and cleanup _dl_mmap codeMike Frysinger
The interface should be straight forward now and the same for everyone. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-10-15ldso: define MAP_FAILED for everyoneMike Frysinger
This fixes build errors where common code has started using MAP_FAILED. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-10-15ldso: simplify handling of extra _dl_lookup_hash() argMike Frysinger
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-14ldso: fixup all the rest of the calls to _dl_find_hashAustin Foxley
With TLS _dl_find_hash grew an extra param. These archs don't have TLS reloc support yet, but they do need to compile without it. Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-10-09check_ld some more flagsBernhard Reutner-Fischer
gold does not currently implement these. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-10-07ldso: pull in missing bits/fcntl.h header for O_CLOEXECMike Frysinger
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-10-06fix coding styleBernhard Reutner-Fischer
TODO: use likely/unlikely Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-10-06commentary typo fixBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-10-06trim whitespaceBernhard Reutner-Fischer
and wrap superlong line. Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-10-06whitespace cleanupBernhard Reutner-Fischer
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-10-04mips: fix typo in elfinterp.cAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-09-26ldso/: tls support for dynamic linkerAustin Foxley
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-08-17support building out-of-treeBernhard Reutner-Fischer
Handle O= Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2009-07-23Blackfin: rename __dl_boot to __startMike Frysinger
The entry symbol is __start rather than __dl_boot. While in the past this was silently ignored, now with common code checking the _start symbol in C code, we end up with link errors: ldso/ldso/ld-uClibc_so.a(ldso.oS): In function `__dl_get_ready_to_run': ldso/ldso/ldso.c:(.text+0x2b30): undefined reference to `__start' collect2: ld returned 1 exit status make[1]: *** [lib/ld-uClibc.so] Error 1 Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-23Blackfin: fix incorrect attribute orderMike Frysinger
The order of attributes in a function definition matters and in a few places in the Blackfin code, it was being applied to the return type instead of the function itself. In file included from ldso/ldso/ldso.c:43: ldso/ldso/bfin/elfinterp.c: At top level: ldso/ldso/bfin/elfinterp.c:42: warning: '__visibility__' attribute ignored on non-class types In file included from ldso/ldso/bfin/elfinterp.c:341, from ldso/ldso/ldso.c:43: libc/sysdeps/linux/bfin/crtreloc.c: At top level: libc/sysdeps/linux/bfin/crtreloc.c:91: warning: 'visibility' attribute ignored on non-class types Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-23Blackfin: add elf_machine_load_address() stubMike Frysinger
The Blackfin port never defined elf_machine_load_address() because the one place this code is called never matters to us. But without it, common code likes to hit a build failure, so stub it out. ldso/ldso/dl-startup.c: In function '_dl_start': ldso/ldso/dl-startup.c:170: warning: implicit declaration of function 'elf_machine_load_address' Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-23ldso: fix building for FDPIC systemsMike Frysinger
The force shareable code missed a spot of using the DL_RELOC_ADDR() indirection thus leading to invalid operands: ldso/ldso/ldso.c: In function '_dl_get_ready_to_run': ldso/ldso/ldso.c:409: error: invalid operands to binary + (have 'Elf32_Addr' and 'struct elf32_fdpic_loadaddr') Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-23silence warnings in Blackfin ldso codeMike Frysinger
In file included from ./ldso/include/ldso.h:135, from ldso/ldso/ldso.c:34: ./ldso/ldso/bfin/dl-inlines.h: In function '__dl_init_loadaddr_map': ./ldso/ldso/bfin/dl-inlines.h:43: warning: assignment makes pointer from integer without a cast In file included from ldso/ldso/ldso.c:43: ldso/ldso/bfin/elfinterp.c: In function '_dl_do_lazy_reloc': ldso/ldso/bfin/elfinterp.c:299: warning: assignment makes pointer from integer without a cast ldso/ldso/ldso.c: In function '_dl_get_ready_to_run': ldso/ldso/ldso.c:534: warning: assignment makes integer from pointer without a cast Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-23Blackfin: add support for automatic loading of L2 SRAM regionsJie Zhang
These match the kernel/etc... pieces already merged. Signed-off-by: Jie Zhang <jie.zhang@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-07-20fix building for systems w/out ldso supportMike Frysinger
If an arch (like alpha and others) have no ldso support at all, then there is no point in attempting to walk loaded modules in the dl-* helper funcs. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
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-07-05Move extern prototype out of function scopeRon
gcc-4.4 now barks about this, so appease it. Signed-off-by: Ron Lee <ron@debian.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-06-01Blackfin: make sure all relocs are uppercaseMike Frysinger
This is to match changes in the toolchain. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2009-04-11for sparc v8 MAGIC1 was defined incorrectlyaustinf
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-04-11sparc also needs CONSTANT_STRING_GOT_FIXUP for doing debug printing in ldsoaustinf
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
2009-04-09Fix the ifdef logic broken by last commit for !defined (__mcoldfire__)Khem Raj
2009-04-09The attached patches fixes the problems found bringing up uclibc on coldfire Khem Raj
M5485 processor 1. Disable mmap2() if we're compiling for coldfire and fall back to mmap(). It seems to map a different file area on a 2.6.25 linux kernel. 2. Uses pc-relative addresing[1], computes ADDR_ALIGN, PAGE_ALIGN and OFFSET_ALIGN relatively to _dl_pagesize[3]. On coldfire/M5485 _dl_pagesize is 0x2000. Signed-off-by: Groleo Marius <groleo@gmail.com>
2009-03-05Use __always_inline instead of __inline__Carmelo Amoroso
2009-02-23- fix weak ssp symbol on some arches (Peter S. Mazinger)Bernhard Reutner-Fischer
Work around alleged binutils glitch with weak symbols on some arches. See binutils ML, weak psm and vapier.
2009-01-28Remove check for the relocation type check in the resolver,Carmelo Amoroso
from all archs. Signed-off-by: Jiri Olsa <olsajiri@gmail.com>
2009-01-14ldso: performs bootstrap relocations only if required by the arch.Carmelo Amoroso
It is controlled by ARCH_NEEDS_BOOTSTRAP_RELOCS macro. Signed-off-by: Jirka <olsajiri@gmail.com> Acked-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2009-01-12ldso: do not comment out unused variables, just delete it.Carmelo Amoroso
SIgned-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2009-01-11replace yet another _dl_malloc + _dl_memset with _dl_zallocDenis Vlasenko
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
2009-01-04ldso/ldso/dl-startup.c: make _dl_elf_main static; remove one dead variable.Denis Vlasenko
ldso/ldso/avr32/dl-startup.h: remove superfluous definition of START() macro. ldso/ldso/*/dl-startup.h: fix a typo in comment text data bss dec hex filename - 16752 244 92 17088 42c0 lib/ld-uClibc.so + 16709 240 92 17041 4291 lib/ld-uClibc.so
2008-12-22- non-pic support for MIPS (Catherine Moore, clm at codesourcery com)Bernhard Reutner-Fischer
2008-12-03- use proper macrosBernhard Reutner-Fischer
2008-12-03- use proper macro (no obj-code changes)Bernhard Reutner-Fischer
2008-12-03- Use runtime pagesize (Jeremy Kerr)Bernhard Reutner-Fischer
Some powerpc machines can support 64k pages, enabled by the CONFIG_64K_PAGES option in linux. However, the uClibc dynamic loader won't currently work on these machines, as it uses hard-coded values (PAGE_ALIGN, ADDR_ALIGN and OFFS_ALIGN) in the ldso architecture-specific headers. When running on a kernel with 64k pages, ld.so tries to mmap with 4k-aligned addresses, rather than 64k, so mmap fails with -EINVAL. When booting a 64k machine with a uClibc dynamic linker, init fails with: /init:500: can't map '/lib/libc.so.0' /init:500: can't map '/lib/libc.so.0' /init:500: can't map '/lib/libc.so.0' /init: can't load library 'libc.so.0' Kernel panic - not syncing: Attempted to kill init! This change allows ld.so determine these alignment masks at runtime, rather than compile-time. Since we have the _dl_pagesize variable available, we can use that to generate the appropriate masks. Since almost all of the architectures can use the common definitions for the _ALIGN macros, we can consolidate them all in ldso.h, and override in the sysdep headers where necessary (ie, mips). This allows me to start a uClibc-based root fs on a 64k machine. Signed-off-by: Jeremy Kerr <jk at ozlabs org>
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-11-07- less verbose make cleanBernhard Reutner-Fischer
2008-11-03Prefix variables defined in INIT_GOT define for AVR32 archHans-Christian Egtvedt
This patch will prefix the i and nr_got variable with an underscore to seperate them from any variables already present in the functions where the macro is used. Needed to silence compiler warnings. Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
2008-11-03Make sure functions in dl-sysdep.h for AVR32 are always inlinedHans-Christian Egtvedt
Replace __inline__ with __always_inline. Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
2008-11-03Fix whitespace damage in file.Hans-Christian Egtvedt
Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
2008-11-03- jmp on coldfire accepts only address registersBernhard Reutner-Fischer
Closes #3824
2008-10-29- fix use after free (Kevin Day)Bernhard Reutner-Fischer
dl_cleanup will call do_dlclose with the handle. Inside of do_dlclose, the handle will ultimately get free'd.
2008-10-24- tidy up inline:Bernhard Reutner-Fischer
ldso and syscalls are __always_inline (the latter would need more cleanup)