_dl_app_init_array and _dl_app_fini_array problems
Kevin Day
thekevinday at gmail.com
Thu Oct 5 23:00:29 UTC 2006
> I have checked everything except the ld-uClibc.so file.
> # ldd /tools/lib/ld-uClibc.so.0
> not a dynamic executable
>
> # ldd /lib/ld-uClibc.so.0
> libc.so.0 => /lib/libc.so.0 (0xb7ec1000)
> ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0xb7f5f000)
> libc.so.0 => libc.so.0 (0x00000000)
> /lib/ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x00000000)
>
> For some reason, the ld-uClibc.so.0 (aka ld-uClibc-0.9.29.so) is not
> being created as a shared object, so attempts to link against it do
> not seem to work properly.
>
I went over with a uClibc 0.9.28 and found this was the case as well,
so the above quoted post is no bug. I still don't get why a static
file is being called a *.so file. This may be whats breaking, but I
cannot see this as being true as the same gcc and same binutils are
used to build uClibc-0.9.28 sucessfully. The only difference between
the systems is the uClibc version.
It is simply impossible to create a toolchain as is, so there is no
possible way to have anything link against libc.so as is. And created
a uClibc svn from a host of a different version (or libc) is
practically the definition of what the toolchain is for. So this is a
problem.
However, this problem may be spawned by the combination of whatever
gcc-4.1.1 does, binutils-2.17 does (tested on binutils-2.16.1 to the
same end) and uClibc svn...
As I had pointed out in #2 of the original post. The functions are
not being attatched (UND), this normally is supposed to happen when
objects become linked.
So, I decided that I'd put it back in myself. After the compilation
of the "broken" libc, I then created the following: ln -s
ld-uClibc.so.0 /tools/lib/libld-uClibc.so. I then add the following
to all packages built agains this libc: "-lld-uClibc "
Which means this generates code that compiles and creates a working executable:
/tools/bin//i686-pc-linux-uclibc-gcc -lld-uClibc -x c -
This works. It also shows that somehow when the libuClibc-0.9.29 is
being linked, and is somehow doing it improperly. However, the cause
of this is a complete mystery to me.
--
Kevin Day
More information about the uClibc
mailing list