Age | Commit message (Collapse) | Author |
|
Handle O=
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Ron Lee <ron@debian.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
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>
|
|
This is to match changes in the toolchain.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
|
Signed-off-by: Austin Foxley <austinf@cetoncorp.com>
|
|
|
|
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>
|
|
|
|
Work around alleged binutils glitch with weak symbols on some arches.
See binutils ML, weak psm and vapier.
|
|
from all archs.
Signed-off-by: Jiri Olsa <olsajiri@gmail.com>
|
|
It is controlled by ARCH_NEEDS_BOOTSTRAP_RELOCS macro.
Signed-off-by: Jirka <olsajiri@gmail.com>
Acked-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
SIgned-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
|
|
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
|
|
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
|
|
|
|
|
|
|
|
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>
|
|
Currently we have an implementation in ld.so and libdl.a.
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
|
|
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>
|
|
Replace __inline__ with __always_inline.
Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
|
|
Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
|
|
Closes #3824
|
|
dl_cleanup will call do_dlclose with the handle.
Inside of do_dlclose, the handle will ultimately get free'd.
|
|
ldso and syscalls are __always_inline (the latter would need more cleanup)
|
|
Closes issue #5194
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
8 byte aligned. The dynamic linker's malloc needs to match this so structures
become 8 byte aligned to void unaligned accesses.
(71_all_uClibc-arm_fix_alignment.patch from gentoo)
|
|
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
|
|
|
|
always be valid. This patch fixes a part of ldso that had been using an Xtensa CALL0 instruction to get the current PC value, which temporarily clobbered the return address register. The revised code just loads the address of a label in the code. See my change to GCC from 2007-12-20 for more info (http://gcc.gnu.org/ml/gcc-patches/2007-12/msg01023.html).
|
|
|
|
Pass via r4 the rtld finalizer
_dl_fini to the user application. This will be the 6^ arg of
__uClibc_main and will be registered with 'atexit'.
In this way the dynamic linker will be able to call destructors
defined within the loaded DSOs.
Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Add missing 7th arg "stack_end".
add comment of undocumented usage of r4.
fix comment of expected __uClibc_main() prototype.
Signed-off-by: Yoshii Takashi <yoshii.takashi@renesas.com>
Acked-by: Paul Mundt <lethal@linux-sh.org>
|