Hi, Max
Thanks for your information.
It is quite strange that the run-time linker is invoked for a
statically linked busybox -- maybe this is the problem?
This is not the problem, because I setup udevd daemon before busybox
when boot up. when I disable udevd and use static dev files, there will
no error information.
That means staitic binary is OK to run, but if I run dynamic binary,
it's failed and prints log: Inconsistency detected by ld.so: rtld.c:
1215: dl_main: Assertion `_rtld_local._dl_rtld_map.l_libname' failed!
I suggest you take a look at <glibc_src>/elf/rtld.c and trace how the
control gets there.
I use glibc-2.5 and check elf/rtld.c 1215 line, the code is as follows:
1206 if (! GL(dl_rtld_map).l_libname && GL(dl_rtld_map).l_name)
1207 {
1208 /* We were invoked directly, so the program might not have a
1209 PT_INTERP. */
1210 _dl_rtld_libname.name = GL(dl_rtld_map).l_name;
1211 /* _dl_rtld_libname.next = NULL; Already zero. */
1212 GL(dl_rtld_map).l_libname = &_dl_rtld_libname;
1213 }
1214 else
1215 assert (GL(dl_rtld_map).l_libname); /* How else did we get
here? */
So I guess GL(dl_rtld_map).l_libname is not NUL and throws an
exception. The reason is still tracing...
Best Regards,
Lanttor
------------------------------------------------------------------------
*From:* Maxim Kuvyrkov <maxim@xxxxxxxxxxxxxxxx>
*Sent:* 02/21/2010 10:57:00 PM +0800
*To:* Lanttor <lanttor.guo@xxxxxxxxxxxxx>
*CC:* Greg Ungerer <gerg@xxxxxxxxxxxx>, linux-m68k@xxxxxxxxxxxxxxx
*Subject:* One issue during kernel porting on coldfire m5441x: dl_main:
Assertion `_rtld_local._dl_rtld_map.l_libname' failed!
On 2/21/10 12:02 PM, Lanttor wrote:
Hi,
I met one interesting issue during I porting 2.6.29 kernel on ColdFire
paltform (v4 core, mcf5441x).
I could boot up the kernel with initramfs, but the kernel message below
displays some error information,
which line I colored red. initramfs image only includes busybox static
binary.
...
Inconsistency detected by ld.so: rtld.c: 1215: dl_main: Assertion
`_rtld_local._dl_rtld_map.l_libname' failed!
Inconsistency detected by ld.so: rtld.c: 1215: dl_main: Assertion
`_rtld_local._dl_rtld_map.l_libname' failed!
The error is an assertion failure in GLIBC's runtime linker, it is not
a kernel issue. It is quite strange that the run-time linker is
invoked for a statically linked busybox -- maybe this is the problem?
I suggest you take a look at <glibc_src>/elf/rtld.c and trace how the
control gets there.
Regards,
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html