Bug 41612 - Gnumeric segfaults with -Os
|
Bug#:
41612
|
Product: Gentoo Linux
|
Version: 1.4
|
Platform: x86
|
|
OS/Version: All
|
Status: RESOLVED
|
Severity: normal
|
Priority: P2
|
|
Resolution: UPSTREAM
|
Assigned To: gnome@gentoo.org
|
Reported By: agent_jdh@yahoo.co.uk
|
|
Component: GNOME
|
|
|
URL:
|
|
Summary: Gnumeric segfaults with -Os
|
|
Keywords:
|
|
Status Whiteboard:
|
|
Opened: 2004-02-14 18:01 0000
|
I use -Os in /etc/make.conf, and Gnumeric always produces segfaults when
compiled with -Os when moving between cells. Editing /etc/make.conf to use -O2
then re-rmerging gnumeric results in a binary that works.
Is there any way to force -O to use -O2 in the ebuild.
Thanks.
emerge info? you should always include that in all your bug reports.
and you should also give some more information, like console output, gnumeric
version, etc.
The subject of the bug report should have been "Gnumeric segfaults when
compiled with -Os"
Gnumeric version 1.2.4 and 1.2.6 both have the same issue. This has been
raised in the forums in the past
http://forums.gentoo.org/viewtopic.php?t=115316&highlight=gnumeric+segfault
When Gnumeric segfaults, it starts bug-buddy, and this is the backtrace/debug
output -
Backtrace was generated from '/usr/bin/gnumeric'
(no debugging symbols found)...Using host libthread_db library
"/lib/libthread_db.so.1".
(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
(no debugging symbols found)...(no debugging symbols found)...
0x40b099a8 in waitpid () from /lib/libpthread.so.0
#0 0x40b099a8 in waitpid () from /lib/libpthread.so.0
#1 0x400d7a94 in ?? () from /usr/lib/libgnomeui-2.so.0
#2 0x400a4ce1 in libgnomeui_module_info_get () from /usr/lib/libgnomeui-2.so.0
#3 0xbfffe7bc in ?? ()
I use CFLAGS="-march=athlon-xp -Os -pipe -fomit-frame-pointer"
This can be fixed in one of two ways
1. Modify CFLAGS to ="-march=athlon-xp -O2 -pipe -fomit-frame-pointer"
or
2. Modify gnumeric ebuild, adding in the line after src_compile:
src_compile() {
replace-flags "-Os" "-O2"
econf \
I've tried both, 2. is preferred, both result in a Gnumeric binary that does
not segfault when you move out of a cell.
you should debugbuild gnumeric (add 'inherit debug' on top of the ebuild &
lower your CFLAGS) to get a useful backtrace.
OK I added debug to the inherit line in the ebuild, commented out my alteratin
to force -Os to -O2, changed my CFLAGS to -Os and nothing else, and ran
gnumeric through gdb. Here's the output:
GNU gdb 6.0
....
This GDB was configured as "i686-pc-linux-gnu"...Using host libthread_db
library "/lib/libthread_db.so.1".
(gdb) run
Starting program: /usr/bin/gnumeric
Program received signal SIGSEGV, Segmentation fault.
format_number (result=0x83e71d8, number=6.8307876656754715e-269, col_width=0,
entry=0x0, date_conv=0x835fad8) at format.c:1414
1414 format.c: No such file or directory.
in format.c
(gdb)
And running without gdb, here's the bug-buddy backtrace-
Backtrace was generated from '/usr/bin/gnumeric'
Using host libthread_db library "/lib/libthread_db.so.1".
0x40b099a8 in waitpid () from /lib/libpthread.so.0
#0 0x40b099a8 in waitpid () from /lib/libpthread.so.0
#1 0x400d7a94 in ?? () from /usr/lib/libgnomeui-2.so.0
#2 0x400a4ce1 in libgnomeui_module_info_get () from /usr/lib/libgnomeui-2.so.0
#3 0xbfffe5cc in ?? ()
type 'bt' in gdb after the crash to get a full backtrace, from there we can
maybe take it upstream.
see thats what we like to know about
closing UPSTREAM, added -Os filter for the time being.