I can reproduce this in gconf 2.32.2 built with with -O2 and gcc-linaro-4.5-2011.03-0.
michaelh@ursa3:~/linaro/packages/gconf-2.32.2/gconf/.libs$ export LD_LIBRARY_PATH=$PWD
michaelh@ursa3:~/linaro/packages/gconf-2.32.2/gconf/.libs$ gdb ./gconfd-2
...
(gdb) r
Starting program: /home/michaelh/linaro/packages/gconf-2.32.2/gconf/.libs/gconfd-2
[Thread debugging using libthread_db enabled]
Program received signal SIGSEGV, Segmentation fault.
strlen () at ../ports/sysdeps/arm/strlen.S:29
29 ../ports/sysdeps/arm/strlen.S: No such file or directory.
in ../ports/sysdeps/arm/strlen.S
(gdb) back
#0 strlen () at ../ports/sysdeps/arm/strlen.S:29
#1 0x2ad40f0c in _IO_vfprintf_internal (s=0x7eeabe78, format=<value optimized out>, ap=<value optimized out>) at vfprintf.c:1614
#2 0x2adbd480 in __vasprintf_chk (result_ptr=0x7eeabf54, flags=1, format=0x11634 "Could not connect to session bus: %s", args=<value optimized out>) at vasprintf_chk.c:68
#3 0x2acbae42 in g_vasprintf () from /lib/libglib-2.0.so.0
#4 0x2acbae42 in g_vasprintf () from /lib/libglib-2.0.so.0
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
I can reproduce this in gconf 2.32.2 built with with -O2 and gcc-linaro- 4.5-2011. 03-0.
michaelh@ ursa3:~ /linaro/ packages/ gconf-2. 32.2/gconf/ .libs$ export LD_LIBRARY_ PATH=$PWD ursa3:~ /linaro/ packages/ gconf-2. 32.2/gconf/ .libs$ gdb ./gconfd-2 linaro/ packages/ gconf-2. 32.2/gconf/ .libs/gconfd- 2
michaelh@
...
(gdb) r
Starting program: /home/michaelh/
[Thread debugging using libthread_db enabled]
Program received signal SIGSEGV, Segmentation fault. sysdeps/ arm/strlen. S:29 sysdeps/ arm/strlen. S: No such file or directory. sysdeps/ arm/strlen. S sysdeps/ arm/strlen. S:29 internal (s=0x7eeabe78, format=<value optimized out>, ap=<value optimized out>) at vfprintf.c:1614 ptr=0x7eeabf54, flags=1, format=0x11634 "Could not connect to session bus: %s", args=<value optimized out>) at vasprintf_chk.c:68 2.0.so. 0 2.0.so. 0
strlen () at ../ports/
29 ../ports/
in ../ports/
(gdb) back
#0 strlen () at ../ports/
#1 0x2ad40f0c in _IO_vfprintf_
#2 0x2adbd480 in __vasprintf_chk (result_
#3 0x2acbae42 in g_vasprintf () from /lib/libglib-
#4 0x2acbae42 in g_vasprintf () from /lib/libglib-
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
This smells like the shrink wrap optimisation.