deployer-gnulinux segfaults on Ubuntu Lucid (x86_64) and boost 1.40

Hi,

Deployer-gnulinux segfaults on all our Ubuntu Lucid (x86_64) machines equipped
with boost 1.40

building ocl with debug information and using libboost1.40-dbg I get the
following (very short) backtrace from gdb:

Program received signal SIGSEGV, Segmentation fault.
0x000000000042a700 in strlen ()
(gdb) bt
#0 0x000000000042a700 in strlen ()
#1 0x00007ffff7dea8cf in _dl_fixup (l=0x40efba, reloc_arg=<value optimized out>)
at ../elf/dl-runtime.c:148
#2 0x00007ffff7df1475 in _dl_runtime_resolve () at ../sysdeps/x86_64/dl-
trampoline.S:41
#3 0x00007ffff5fdca40 in std::basic_string<char, std::char_traits<char>,
std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)
() from /usr/lib/libstdc++.so.6
#4 0x00007ffff6ab5fc0 in __static_initialization_and_destruction_0 () at
libs/program_options/src/value_semantic.cpp:67
#5 global constructors keyed to value_semantic.cpp () at
libs/program_options/src/value_semantic.cpp:263
#6 0x00007ffff6abce56 in __do_global_ctors_aux () from
/usr/lib/libboost_program_options.so.1.40.0
#7 0x00007ffff6a9ca13 in _init () from
/usr/lib/libboost_program_options.so.1.40.0
#8 0x00007ffff7e1f980 in ?? ()
#9 0x00007ffff7dead65 in call_init (main_map=0x7ffff7ffe128, argc=-154372496,
argv=0x7fffffffe398, env=0x7fffffffe3a8) at dl-init.c:70
#10 _dl_init (main_map=0x7ffff7ffe128, argc=-154372496, argv=0x7fffffffe398,
env=0x7fffffffe3a8) at dl-init.c:134
#11 0x00007ffff7ddcb2a in _dl_start_user () from /lib64/ld-linux-x86-64.so.2
#12 0x0000000000000001 in ?? ()
#13 0x00007fffffffe5ef in ?? ()
#14 0x0000000000000000 in ?? ()

I have no idea whats going on, I already made sure I only have one single
version of boost installed.

Ruben

deployer-gnulinux segfaults on Ubuntu Lucid (x86_64) and boost 1

On Thursday 17 June 2010 11:01:27 Ruben Smits wrote:
> Hi,
>
> Deployer-gnulinux segfaults on all our Ubuntu Lucid (x86_64) machines
> equipped with boost 1.40
>
> building ocl with debug information and using libboost1.40-dbg I get the
> following (very short) backtrace from gdb:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x000000000042a700 in strlen ()
> (gdb) bt
> #0 0x000000000042a700 in strlen ()
> #1 0x00007ffff7dea8cf in _dl_fixup (l=0x40efba, reloc_arg=<value optimized
> out>) at ../elf/dl-runtime.c:148
> #2 0x00007ffff7df1475 in _dl_runtime_resolve () at ../sysdeps/x86_64/dl-
> trampoline.S:41
> #3 0x00007ffff5fdca40 in std::basic_string<char, std::char_traits<char>,
> std::allocator<char> >::basic_string(char const*, std::allocator<char>
> const&) () from /usr/lib/libstdc++.so.6
> #4 0x00007ffff6ab5fc0 in __static_initialization_and_destruction_0 () at
> libs/program_options/src/value_semantic.cpp:67
> #5 global constructors keyed to value_semantic.cpp () at
> libs/program_options/src/value_semantic.cpp:263
> #6 0x00007ffff6abce56 in __do_global_ctors_aux () from
> /usr/lib/libboost_program_options.so.1.40.0
> #7 0x00007ffff6a9ca13 in _init () from
> /usr/lib/libboost_program_options.so.1.40.0
> #8 0x00007ffff7e1f980 in ?? ()
> #9 0x00007ffff7dead65 in call_init (main_map=0x7ffff7ffe128,
> argc=-154372496, argv=0x7fffffffe398, env=0x7fffffffe3a8) at dl-init.c:70
> #10 _dl_init (main_map=0x7ffff7ffe128, argc=-154372496,
> argv=0x7fffffffe398, env=0x7fffffffe3a8) at dl-init.c:134
> #11 0x00007ffff7ddcb2a in _dl_start_user () from
> /lib64/ld-linux-x86-64.so.2 #12 0x0000000000000001 in ?? ()
> #13 0x00007fffffffe5ef in ?? ()
> #14 0x0000000000000000 in ?? ()
>
> I have no idea whats going on, I already made sure I only have one single
> version of boost installed.

Me neither. It happens before main() is called, which means some wrong linking
happened or it's a bug in boost program options. The first step would be to
compile a simple boost program options example program and check if it
crashes. If not, check if the output of ldd differs. You probably all know this
:-)

Peter

Ruben Smits's picture

deployer-gnulinux segfaults on Ubuntu Lucid (x86_64) and boost 1

On Thursday 17 June 2010 11:01:27 Ruben Smits wrote:
> Hi,
>
> Deployer-gnulinux segfaults on all our Ubuntu Lucid (x86_64) machines
> equipped with boost 1.40
>
> building ocl with debug information and using libboost1.40-dbg I get the
> following (very short) backtrace from gdb:
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x000000000042a700 in strlen ()
> (gdb) bt
> #0 0x000000000042a700 in strlen ()
> #1 0x00007ffff7dea8cf in _dl_fixup (l=0x40efba, reloc_arg=<value optimized
> out>) at ../elf/dl-runtime.c:148
> #2 0x00007ffff7df1475 in _dl_runtime_resolve () at ../sysdeps/x86_64/dl-
> trampoline.S:41
> #3 0x00007ffff5fdca40 in std::basic_string<char, std::char_traits<char>,
> std::allocator<char> >::basic_string(char const*, std::allocator<char>
> const&) () from /usr/lib/libstdc++.so.6
> #4 0x00007ffff6ab5fc0 in __static_initialization_and_destruction_0 () at
> libs/program_options/src/value_semantic.cpp:67
> #5 global constructors keyed to value_semantic.cpp () at
> libs/program_options/src/value_semantic.cpp:263
> #6 0x00007ffff6abce56 in __do_global_ctors_aux () from
> /usr/lib/libboost_program_options.so.1.40.0
> #7 0x00007ffff6a9ca13 in _init () from
> /usr/lib/libboost_program_options.so.1.40.0
> #8 0x00007ffff7e1f980 in ?? ()
> #9 0x00007ffff7dead65 in call_init (main_map=0x7ffff7ffe128,
> argc=-154372496, argv=0x7fffffffe398, env=0x7fffffffe3a8) at dl-init.c:70
> #10 _dl_init (main_map=0x7ffff7ffe128, argc=-154372496,
> argv=0x7fffffffe398, env=0x7fffffffe3a8) at dl-init.c:134
> #11 0x00007ffff7ddcb2a in _dl_start_user () from
> /lib64/ld-linux-x86-64.so.2 #12 0x0000000000000001 in ?? ()
> #13 0x00007fffffffe5ef in ?? ()
> #14 0x0000000000000000 in ?? ()
>
> I have no idea whats going on, I already made sure I only have one single
> version of boost installed.

I found the problem: removing binutils-gold resolved the problem, apparently
the version of libstc++ in lucid does not like the google linker. (I had
similar backtraces of other executables which started to segfault)

Ruben