Summary: | mail-client/nmh: repl program segfaults when compiled with gcc 4.1.1 -O2 on amd64 | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | David Fellows <fellows> |
Component: | Current packages | Assignee: | Net-Mail Packages <net-mail+disabled> |
Status: | RESOLVED WONTFIX | ||
Severity: | normal | CC: | aeriksson, darkside, in-gentoo, mr, net-mail+disabled |
Priority: | High | ||
Version: | 2006.1 | ||
Hardware: | AMD64 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | 189519, 219333 | ||
Bug Blocks: | 336057 | ||
Attachments: |
patch to the nmh-1.1-r1 ebuild to force -O1 compiler optimaization
file containing message being repied to. cvs ebuild |
Description
David Fellows
2006-11-02 10:06:33 UTC
Created attachment 101060 [details, diff]
patch to the nmh-1.1-r1 ebuild to force -O1 compiler optimaization
Can you attach a backtrace please? http://www.gentoo.org/proj/en/qa/backtraces.xml fellows@kanga ~ $ repl +inbox 1732 Segmentation fault fellows@kanga ~ $ gdb repl GNU gdb 6.4 Copyright 2005 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu"...(no debugging symbols found) Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run +inbox 1732 Starting program: /usr/bin/repl +inbox 1732 (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) Program received signal SIGSEGV, Segmentation fault. 0x0000000000413ce9 in strcasecmp () (gdb) backtrace #0 0x0000000000413ce9 in strcasecmp () #1 0x000000000040379d in ?? () #2 0x000000000040dfcd in ?? () #3 0x00000000004042ca in ?? () #4 0x0000000000402e22 in ?? () #5 0x00002ba089e03134 in __libc_start_main () from /lib/libc.so.6 #6 0x0000000000402ab9 in ?? () #7 0x00007fff20fedc48 in ?? () #8 0x0000000000000000 in ?? () (gdb) Created attachment 101094 [details]
file containing message being repied to.
OK, I did an ebuild compile of nmh with CFLAGS="-o2 -g"> here is the output of running the repl from that. This GDB was configured as "x86_64-pc-linux-gnu"...Using host libthread_db library "/lib/libthread_db.so.1". (gdb) run +inbox 1732 Starting program: /var/tmp/portage/nmh-1.1-r1/work/nmh/uip/repl +inbox 1732 Program received signal SIGSEGV, Segmentation fault. strcasecmp (s1=<value optimized out>, s2=<value optimized out>) at strcasecmp.c:33 33 while (tolower(*us1) == tolower(*us2++)) (gdb) backtrace #0 strcasecmp (s1=<value optimized out>, s2=<value optimized out>) at strcasecmp.c:33 #1 0x000000000040389d in formataddr (orig=<value optimized out>, str=0x547080 "fellows") at replsbr.c:390 #2 0x000000000040e0cd in fmt_scan (format=<value optimized out>, scanl=0x5618f0 "To: \"David M. Fellows\" <fellows@unb.ca>\n", width=1640, dat=0x527b10) at fmt_scan.c:719 #3 0x00000000004043ca in replout (inb=0x556020, msg=<value optimized out>, drft=0x7fffe7eb7900 "/home/fellows/Mail/drafts/130", mp=0x555ed0, outputlinelen=72, mime=0, form=0x529d00 "/etc/nmh/replcomps", filter=0x554ce0 "/home/fellows/Mail/repf2", fcc=0x554ca0 "+outgoing") at replsbr.c:238 #4 0x0000000000402f22 in main (argc=<value optimized out>, argv=<value optimized out>) at repl.c:437 (gdb) The contents of Mail/repf2 are: fellows@kanga ~ $ cat Mail/repf2 ; Reply with original included with >, no identification body:component="> ",compwidth=0,offset=0,overflowtext="> ",overflowoffset=0 : :Dave F : fellows@kanga ~ $ Not amd64-specific; reproducible on a plain i686 laptop. Portage 2.1.1-r2 (default-linux/x86/2006.1, gcc-4.1.1, glibc-2.4-r3, 2.6.16-gentoo-r7 i686) ================================================================= System uname: 2.6.16-gentoo-r7 i686 Intel(R) Pentium(R) M processor 1300MHz Gentoo Base System version 1.12.5 Last Sync: Tue, 28 Nov 2006 23:02:01 +0000 app-admin/eselect-compiler: [Not Present] dev-java/java-config: 1.2.11-r1 dev-lang/python: 2.3.5-r2, 2.4.3-r4 dev-python/pycrypto: 2.0.1-r5 dev-util/ccache: [Not Present] dev-util/confcache: [Not Present] sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2 sys-devel/binutils: 2.16.1-r3 sys-devel/gcc-config: 1.3.13-r4 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r1 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O3 -fomit-frame-pointer -march=pentium3 -pipe" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/terminfo /etc/texmf/web2c" CXXFLAGS="-O3 -fomit-frame-pointer -march=pentium3 -pipe" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks metadata-transfer sandbox sfperms strict" GENTOO_MIRRORS="http://gentoo.osuosl.org/ http://cudlug.cudenver.edu/gentoo/ http://gentoo.chem.wisc.edu/gentoo/ http://gentoo.mirrors.tds.net/gentoo" LC_ALL="C" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 acpi berkdb bitmap-fonts bzip2 cli cracklib crypt cups dlloader dri elibc_glibc fortran gdbm gpm iconv input_devices_keyboard input_devices_mouse ipv6 isdnlog kernel_linux libg++ ncurses nls nptl nptlonly pam pcre perl ppds pppd python readline reflection session spl ssl tcpd truetype-fonts type1-fonts udev unicode userland_GNU video_cards_radeon xorg zlib" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LDFLAGS, LINGUAS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY mail-client/nmh Not specific to any architecture. Reproduced on G4 PPC with -O2. CFLAGS="-O0" was necessary to fix many of the binaries, including mhe and repl. Please consider striping flags on this ebuild for gcc 4. (In reply to comment #7) > mail-client/nmh > > Not specific to any architecture. Reproduced on G4 PPC with -O2. > CFLAGS="-O0" was necessary to fix many of the binaries, including mhe and repl. > > Please consider striping flags on this ebuild for gcc 4. So, Let us pretend that I have ~/Mail/inbox/ - what do I need to do to reproduce this error? % pwd ~/Mail/inbox % repl +inbox repl: no messages in inbox %% ls msg.txt where msg.txt is Comment #4 I know next to nothing about how this works but it is such a trivial fix. I would still like to test it first. (Also, in the bug alone we have two different fixes, -O1 & -O0) Thanks and sorry it has taken so long to fix! =/ (In reply to comment #8) > (In reply to comment #7) > > mail-client/nmh > > > > Not specific to any architecture. Reproduced on G4 PPC with -O2. > > CFLAGS="-O0" was necessary to fix many of the binaries, including mhe and repl. > > > > Please consider striping flags on this ebuild for gcc 4. > > > So, Let us pretend that I have ~/Mail/inbox/ - what do I need to do to > reproduce this error? > > % pwd > ~/Mail/inbox > % repl +inbox > repl: no messages in inbox > %% ls > msg.txt > > where msg.txt is Comment #4 > > I know next to nothing about how this works but it is such a trivial fix. I > would still like to test it first. (Also, in the bug alone we have two > different fixes, -O1 & -O0) > > Thanks and sorry it has taken so long to fix! =/ > I've investigated this quite a bit. The deal is that nmh has its own version of strncpy. The nmh version accepts NULL as input arguments, while the standard's and/or gcc's assumes/requires non-NULL arguments. This fails in gcc >4.x and higher optimizations where gcc uses its own builtin version rather than linking in the one provided in the source. Anyway, the recently released nmh 1.3 now calls the function nmh_strncpy and everybody's happy. (In reply to comment #9) > Anyway, the recently released nmh 1.3 now calls the function nmh_strncpy and > everybody's happy. > Do you have an ebuild that you used? I tried simply renaming the existing ebuild and all the patches failed to apply. Created attachment 165462 [details]
cvs ebuild
The attached ebuild builds ok from CVS (as of today).
1.3 is in the tree. Please confirm that it fixes this. Work here wit the same test case. (In reply to comment #12) > 1.3 is in the tree. Please confirm that it fixes this. > Yes, seems OK. Thanks for the confirmation. I think I would like to wait it out and once 1.3 is stabled, remove this version. (So, please file a stablereq bug after 30 days) BTW, thanks for using Gentoo all these years ;) (In reply to comment #15) > Thanks for the confirmation. I think I would like to wait it out and once 1.3 > is stabled, remove this version. (So, please file a stablereq bug after 30 > days) BTW, thanks for using Gentoo all these years ;) > OK, will do. Thanks to you guys for providing Gentoo all these years. I'm pretty certain this bug has been solved in current, packaged, release(s) of nmh. Not entirely sure which version thugh. Time to close it? (In reply to comment #17) > I'm pretty certain this bug has been solved in current, packaged, release(s) of > nmh. Not entirely sure which version thugh. > > Time to close it? > I think so. Also time to stabilize nmh-1.3-r1 at least for amd64. See bug #254627. nmh was removed from portage, therefore closing as wontfix for now. new ebuilds should go in bug 336057. |