Segfaults with eglibc-2.16 on ARM v6 (hardfp)

Carlos O'Donell
Thu Jul 19 15:48:00 GMT 2012

On 7/19/2012 10:05 AM, Stephan Raue wrote:
> Hi,
> after upgrading my embedded distribution from eglibc-2.15 to 2.16 i get libc related segfaults with every program. Because this distro uses shell based init scripts and busybox, which also segfaults provides the shell i cant boot into the system with eglibc-2.16. With eglibc-2.15 all is working.
> I have tried to boot in to a system with eglibc-2.15 and copy the eglibc-2.16 filessystem to a writabable location in /storage:
>     root ~ # LD_LIBRARY_PATH=/storage/system/lib/ /storage/system/bin/busybox
>     Segmentation fault
> if i replace /storage/system/lib/ with the one from eglibc-2.15 system:

WARNING: You should replace all core libraries with the 2.15 versions. The dynamic linker and libc share state and should be at matching versions.

>     root ~ # LD_LIBRARY_PATH=/storage/system/lib/ /storage/system/bin/busybox
>     BusyBox v1.20.2 (2012-07-19 08:32:53 CEST) multi-call binary.
>     Copyright (C) 1998-2011 Erik Andersen, Rob Landley, Denys Vlasenko
>     ...
> how i can debug this system to get more infos to provide to find the issue? i have GDB and STRACE installed on the system, if i run gdb:
>     root ~ # gdb /storage/system/bin/busybox
>     GNU gdb (GDB)
>     ...
>     (gdb) set environment LD_LIBRARY_PATH=/storage/system/lib/
>     (gdb) run
>     Starting program: /storage/system/bin/busybox
>     During startup program terminated with signal SIGSEGV, Segmentation fault.
>     (gdb) bt
>     No stack.

This is likely a crash in the dynamic loader.

You need to debug the dynamic loader.

Start by running with LD_DEBUG=all and see how far you get.

Carlos O'Donell
Mentor Graphics / CodeSourcery
+1 (613) 963 1026

More information about the Libc-help mailing list