This is the mail archive of the
libc-help@sourceware.org
mailing list for the glibc project.
Possible to run an program dynamic linked with glibc on uclibc target?
- From: Kit Park <tegipark at gmail dot com>
- To: libc-help at sourceware dot org
- Date: Thu, 5 Oct 2017 17:48:35 +0100
- Subject: Possible to run an program dynamic linked with glibc on uclibc target?
- Authentication-results: sourceware.org; auth=none
Dear glibc gurus,
I will be very appreciated if you give me some pointers on this. I have
been trying to port uclibc platfrom to glibc and I have a problem of
getting glibc dynamic loader running a uclibc mips target. The way I did is:
* load up a kernel only on a target which is uclibc libraries.
* run glibc ld.so as standalone to see if it works, e.g.,
./lib/ld-2.13.so --library-path /xxx/glibc-libs/lib ./a.out-dynamic
...
20294: symbol=free; lookup in file=./minit-dynamic [0]
20294: symbol=free; lookup in
file=/mnt/tmp/asn/glibc-libs/lib/libgcc_s.so.1
[0]
20294: symbol=free; lookup in
file=/mnt/tmp/asn/glibc-libs/lib/libc.so.6
[0]
20294: binding file ./lib/ld-2.13.so [0] to
/mnt/tmp/asn/glibc-libs/lib/libc.so.6 [0]: normal symbol `free' [GLIBC_2.0]
20294: symbol=_r_debug; lookup in file=./minit-dynamic [0]
20294: symbol=_r_debug; lookup in
file=/mnt/tmp/asn/glibc-libs/lib/libgcc_s.so.1
[0]
20294: symbol=_r_debug; lookup in
file=/mnt/tmp/asn/glibc-libs/lib/libc.so.6
[0]
20294: symbol=_r_debug; lookup in file=./lib/ld-2.13.so [0]
20294: binding file ./lib/ld-2.13.so [0] to ./lib/ld-2.13.so [0]:
normal symbol `_r_debug' [GLIBC_2.0]
20294: symbol=realloc; lookup in file=./minit-dynamic [0]
20294: symbol=realloc; lookup in
file=/mnt/tmp/asn/glibc-libs/lib/libgcc_s.so.1
[0]
20294: symbol=realloc; lookup in
file=/mnt/tmp/asn/glibc-libs/lib/libc.so.6
[0]
20294: binding file ./lib/ld-2.13.so [0] to
/mnt/tmp/asn/glibc-libs/lib/libc.so.6 [0]: normal symbol `realloc'
[GLIBC_2.0]
20294: symbol=calloc; lookup in file=./minit-dynamic [0]
20294: symbol=calloc; lookup in
file=/mnt/tmp/asn/glibc-libs/lib/libgcc_s.so.1
[0]
20294: symbol=calloc; lookup in
file=/mnt/tmp/asn/glibc-libs/lib/libc.so.6
[0]
20294: binding file ./lib/ld-2.13.so [0] to
/mnt/tmp/asn/glibc-libs/lib/libc.so.6 [0]: normal symbol `calloc'
[GLIBC_2.0]
20294: symbol=malloc; lookup in file=./minit-dynamic [0]
20294: symbol=malloc; lookup in
file=/mnt/tmp/asn/glibc-libs/lib/libgcc_s.so.1
[0]
20294: symbol=malloc; lookup in
file=/mnt/tmp/asn/glibc-libs/lib/libc.so.6
[0]
20294: binding file ./lib/ld-2.13.so [0] to
/mnt/tmp/asn/glibc-libs/lib/libc.so.6 [0]: normal symbol `malloc'
[GLIBC_2.0]
20294: symbol=__libc_memalign; lookup in file=./minit-dynamic [0]
20294: symbol=__libc_memalign; lookup in
file=/mnt/tmp/asn/glibc-libs/lib/libgcc_s.so.1 [0]
20294: symbol=__libc_memalign; lookup in
file=/mnt/tmp/asn/glibc-libs/lib/libc.so.6 [0]
20294: binding file ./lib/ld-2.13.so [0] to
/mnt/tmp/asn/glibc-libs/lib/libc.so.6 [0]: normal symbol `__libc_memalign'
[GLIBC_2.0]
20294: symbol=__stack_chk_guard; lookup in file=./minit-dynamic
[0]
20294: symbol=__stack_chk_guard; lookup in
file=/mnt/tmp/asn/glibc-libs/lib/libgcc_s.so.1 [0]
20294: symbol=__stack_chk_guard; lookup in
file=/mnt/tmp/asn/glibc-libs/lib/libc.so.6 [0]
20294: symbol=__stack_chk_guard; lookup in file=./lib/ld-2.13.so
[0]
20294: binding file ./lib/ld-2.13.so [0] to ./lib/ld-2.13.so [0]:
normal symbol `__stack_chk_guard' [GLIBC_2.4]
20294:
20294: calling init: /mnt/tmp/asn/glibc-libs/lib/libc.so.6
20294:
20294:
20294: calling init: /mnt/tmp/asn/glibc-libs/lib/libgcc_s.so.1
20294:
Bus error (core dumped)
Have managed to run a bit but see the errors above. I wonder if I am
trying out a way which is already known as "well, not possible to do" and
how glibc guys port glibc for each target arch since without ld working,
cannot use pretty much everything like gdb.
Many thanks
Kit