Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] SIGSEGV in __pthread_initialize_minimal_internal ()
@ 2014-02-06 16:05 Johannes Morgenroth
  2014-02-06 21:02 ` Arnout Vandecappelle
  2014-02-07 15:59 ` Johannes Morgenroth
  0 siblings, 2 replies; 4+ messages in thread
From: Johannes Morgenroth @ 2014-02-06 16:05 UTC (permalink / raw)
  To: buildroot

Hello.

I try to compile a DTN stack (IBR-DTN) as static binary using buildroot.
Formerly with the release 2012.02 this wasn't an issue, but since my
recent system no longer compile the old release, I tried the new one but
without any luck. Any static binary I compile exists with a SIGSEGV. To
reproduce my set-up, I pushed my repository (based on the recent master)
to github.
https://github.com/ibrdtn/buildroot.git

I used the configuration stored in the added default configuration
'ibrdtn_x86_defconfig'. So my steps are...

$ make ibrdtn_x86_defconfig
$ make
(get a coffee)
$ ./output/target/usr/sbin/dtnd --version
Segmentation fault (core dumped)

To investigate that fault, I compiled the toolchain with debug symbols
and the GDB points me to __pthread_initialize_minimal_internal ().

$ gdb --args ./output/build/ibrdtnd-0.10.2/src/dtnd
GNU gdb (GDB) 7.6.1-ubuntu
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later
<http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from ./output/build/ibrdtnd-0.10.2/src/dtnd...done.
(gdb) r
Starting program: ./output/build/ibrdtnd-0.10.2/src/dtnd

Program received signal SIGSEGV, Segmentation fault.
0x082b81f1 in __pthread_initialize_minimal_internal ()
(gdb) bt
#0  0x082b81f1 in __pthread_initialize_minimal_internal ()
#1  0x08408797 in __uClibc_init ()
#2  0x08408939 in __uClibc_main ()
#3  0x08049111 in _start ()
(gdb)

I assume this may has to do with some sort of order issues while linking
the libraries, but I am not sure and have no idea where to start with
the debugging. Any help or advice is appreciated.

Thanks!
Johannes

-- 
Johannes Morgenroth     Institut fuer Betriebssysteme und Rechnerverbund
Tel.: +49-531-391-3249                           Muehlenpfordtstrasse 23
Fax.: +49-531-391-5936      TU Braunschweig         D-38106 Braunschweig

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] SIGSEGV in __pthread_initialize_minimal_internal ()
  2014-02-06 16:05 [Buildroot] SIGSEGV in __pthread_initialize_minimal_internal () Johannes Morgenroth
@ 2014-02-06 21:02 ` Arnout Vandecappelle
  2014-02-07  8:21   ` Johannes Morgenroth
  2014-02-07 15:59 ` Johannes Morgenroth
  1 sibling, 1 reply; 4+ messages in thread
From: Arnout Vandecappelle @ 2014-02-06 21:02 UTC (permalink / raw)
  To: buildroot

On 06/02/14 17:05, Johannes Morgenroth wrote:
> Hello.
> 
> I try to compile a DTN stack (IBR-DTN) as static binary using buildroot.
> Formerly with the release 2012.02 this wasn't an issue, but since my
> recent system no longer compile the old release, I tried the new one but
> without any luck. Any static binary I compile exists with a SIGSEGV. To
> reproduce my set-up, I pushed my repository (based on the recent master)
> to github.
> https://github.com/ibrdtn/buildroot.git
> 
> I used the configuration stored in the added default configuration
> 'ibrdtn_x86_defconfig'. So my steps are...
> 
> $ make ibrdtn_x86_defconfig
> $ make
> (get a coffee)
> $ ./output/target/usr/sbin/dtnd --version

 You're trying to use the cross-compiled binary directly on your host.
This may work by accident, but may not work as well. In this particular
case, I suspect it may be an issue with kernel headers: the cross-build
is using 3.13.x while your host is probably running an earlier kernel.

 Try running it under a system qemu so you have the corresponding kernel,
or build the toolchain with kernel headers corresponding to your host.

 Regards,
 Arnout

> Segmentation fault (core dumped)
> 
> To investigate that fault, I compiled the toolchain with debug symbols
> and the GDB points me to __pthread_initialize_minimal_internal ().
> 
> $ gdb --args ./output/build/ibrdtnd-0.10.2/src/dtnd
> GNU gdb (GDB) 7.6.1-ubuntu
> Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-linux-gnu".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> Reading symbols from ./output/build/ibrdtnd-0.10.2/src/dtnd...done.
> (gdb) r
> Starting program: ./output/build/ibrdtnd-0.10.2/src/dtnd
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x082b81f1 in __pthread_initialize_minimal_internal ()
> (gdb) bt
> #0  0x082b81f1 in __pthread_initialize_minimal_internal ()
> #1  0x08408797 in __uClibc_init ()
> #2  0x08408939 in __uClibc_main ()
> #3  0x08049111 in _start ()
> (gdb)
> 
> I assume this may has to do with some sort of order issues while linking
> the libraries, but I am not sure and have no idea where to start with
> the debugging. Any help or advice is appreciated.
> 
> Thanks!
> Johannes
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] SIGSEGV in __pthread_initialize_minimal_internal ()
  2014-02-06 21:02 ` Arnout Vandecappelle
@ 2014-02-07  8:21   ` Johannes Morgenroth
  0 siblings, 0 replies; 4+ messages in thread
From: Johannes Morgenroth @ 2014-02-07  8:21 UTC (permalink / raw)
  To: buildroot

Hello Arnout,

thank you for the response.

Am 06.02.2014 22:02, schrieb Arnout Vandecappelle:
>  You're trying to use the cross-compiled binary directly on your host.
> This may work by accident, but may not work as well. In this particular
> case, I suspect it may be an issue with kernel headers: the cross-build
> is using 3.13.x while your host is probably running an earlier kernel.
>
>  Try running it under a system qemu so you have the corresponding kernel,
> or build the toolchain with kernel headers corresponding to your host.
>
>  Regards,
>  Arnout

The binary is compiled using and for x86. Thus, starting on the same
system should work and actually it had worked with older releases (at
least with 2012.02). I could not test the kernel issue you mentioned
because the system runs a 3.8 and buildroot only support older or newer
one. I tried both 3.2 and 3.13, none of them had worked. However, I do
not understand why a statically linked binary should depend on the
system kernel it runs on. Also this was never an issue with release 2012.02.

Kind regards,
Johannes Morgenroth

-- 
Johannes Morgenroth     Institut fuer Betriebssysteme und Rechnerverbund
Tel.: +49-531-391-3249                           Muehlenpfordtstrasse 23
Fax.: +49-531-391-5936      TU Braunschweig         D-38106 Braunschweig

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Buildroot] SIGSEGV in __pthread_initialize_minimal_internal ()
  2014-02-06 16:05 [Buildroot] SIGSEGV in __pthread_initialize_minimal_internal () Johannes Morgenroth
  2014-02-06 21:02 ` Arnout Vandecappelle
@ 2014-02-07 15:59 ` Johannes Morgenroth
  1 sibling, 0 replies; 4+ messages in thread
From: Johannes Morgenroth @ 2014-02-07 15:59 UTC (permalink / raw)
  To: buildroot

I do not know why, but disabling SSP (stack protection) allows to
generate working binaries again.
Maybe now anyone can tell me why that is an issue?

Kind regards,
Johannes Morgenroth



Am 06.02.2014 17:05, schrieb Johannes Morgenroth:
> $ gdb --args ./output/build/ibrdtnd-0.10.2/src/dtnd
> GNU gdb (GDB) 7.6.1-ubuntu
> Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-linux-gnu".
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>...
> Reading symbols from ./output/build/ibrdtnd-0.10.2/src/dtnd...done.
> (gdb) r
> Starting program: ./output/build/ibrdtnd-0.10.2/src/dtnd
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x082b81f1 in __pthread_initialize_minimal_internal ()
> (gdb) bt
> #0  0x082b81f1 in __pthread_initialize_minimal_internal ()
> #1  0x08408797 in __uClibc_init ()
> #2  0x08408939 in __uClibc_main ()
> #3  0x08049111 in _start ()
> (gdb)


-- 
Johannes Morgenroth     Institut fuer Betriebssysteme und Rechnerverbund
Tel.: +49-531-391-3249                           Muehlenpfordtstrasse 23
Fax.: +49-531-391-5936      TU Braunschweig         D-38106 Braunschweig

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-02-07 15:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-06 16:05 [Buildroot] SIGSEGV in __pthread_initialize_minimal_internal () Johannes Morgenroth
2014-02-06 21:02 ` Arnout Vandecappelle
2014-02-07  8:21   ` Johannes Morgenroth
2014-02-07 15:59 ` Johannes Morgenroth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox