Age | Commit message (Collapse) | Author |
|
Update Arch specific part of the dynamic linker to the
latest cahnges required by prelink:
- Use _dl_loaded_modules->scope as global symbol scope
- Pass the sym argument (or NULL) to the _dl_find_hash
- Update _dl_parse, _dl_do_reloc, _dl_do_lazy_reloc and
_dl_parse_relocation_information to reflect the change of
the scope argument's type
- Add the call to _dl_debug_lookup used for trace prelinking.
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>
|
|
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>
|
|
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>
|
|
This is to match changes in the toolchain.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
|
|
|
|
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>
|
|
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>
|
|
ldso and syscalls are __always_inline (the latter would need more cleanup)
|
|
|
|
|
|
|
|
|
|
|
|
exists, and move some definitions to their proper place.
|
|
Change _dl_find_hash to _dl_lookup_hash, as on the NPTL branch.
_dl_find_hash is now a wrapper function around it; unlike on the NPTL branch,
it retains the old interface so that not all callers need to be changed.
_dl_lookup_hash can optionally give its caller a pointer to the module where
the symbol was found.
Introduce ELF_RTYPE_CLASS_DLSYM for lookups from libdl.
Spelling fixes in the Blackfin port, since Alex Oliva's original version of
these patches used _dl_find_hash_mod as the name of the function rather than
_dl_lookup_hash.
|
|
|
|
|
|
L1 functions
|