Summary: | g++ 3.4.1 crashed when compiling crypto++-5.2 "integer.cpp:1681: erreur interne du compilateur: dans reload_cse_simplify_operands, à postreload.c:378" | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | kaouete <kaouete> |
Component: | [OLD] GCC Porting | Assignee: | Crypto team [DISABLED] <crypto+disabled> |
Status: | RESOLVED DUPLICATE | ||
Severity: | normal | CC: | halcy0n, morfic |
Priority: | High | ||
Version: | unspecified | ||
Hardware: | x86 | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | Patch to ebuild |
Description
kaouete
2004-09-19 08:13:16 UTC
When i emerge crypto++ 5.2 i get a lot of error after having compiled a lot of files, i dont know it is g++ or crypto++ but the errors told me that it was the compiler. i have attached the Preprocessed source that emerge gave me. Reproducible: Always Steps to Reproduce: 1. just do emerge crypto++ Actual Results: about 40 files were compiled but i got a warning and then an error from the compiler g++ -march=pentium4 -O2 -pipe -fomit-frame-pointer -c ida.cpp g++ -march=pentium4 -O2 -pipe -fomit-frame-pointer -c idea.cpp Dans le fichier inclus à partir de /usr/lib/gcc/i386-pc-linux-gnu/3.4.1/include/g++-v3/backward/strstream:51, à partir de polynomi.cpp:10, à partir de ida.cpp:10: /usr/lib/gcc/i386-pc-linux-gnu/3.4.1/include/g++-v3/backward/backward_warning.h:32:2: attention : #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated. g++ -march=pentium4 -O2 -pipe -fomit-frame-pointer -c integer.cpp integer.cpp: In static member function `static void CryptoPP::P4Optimized::Multiply4(CryptoPP::word*, const CryptoPP::word*, const CryptoPP::word*)': integer.cpp:1681: erreur: insn ne satisfait pas à ses contraintes: (insn 794 793 651 0 (set (reg/v:V2SI 21 xmm0 [orig:193 <anonymous> ] [193]) (mem:V2SI (plus:SI (reg/f:SI 7 sp) (const_int 4 [0x4])) [0 S8 A8])) 499 {movv2si_internal} (nil) (nil)) integer.cpp:1681: erreur interne du compilateur: dans reload_cse_simplify_operands, à postreload.c:378 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://bugs.gentoo.org/> for instructions. g++ -march=pentium4 -O2 -pipe -fomit-frame-pointer -c iterhash.cpp g++ -march=pentium4 -O2 -pipe -fomit-frame-pointer -c luc.cpp Preprocessed source stored into /var/tmp/portage/crypto++-5.2/temp/cc77U1AH.out file, please attach this to your bugreport. make: *** [integer.o] Erreur 1 make: *** Attente des tâches non terminées.... !!! ERROR: dev-libs/crypto++-5.2 failed. !!! Function src_compile, Line 22, Exitcode 2 !!! (no error message) !!! If you need support, post the topmost build error, NOT this status message. my emerge info : Portage 2.0.51_rc1 (default-x86-2004.2, gcc-3.4.1, glibc-2.3.4.20040808-r0, 2.6.8-gentoo-r4 i686) ================================================================= System uname: 2.6.8-gentoo-r4 i686 Intel(R) Pentium(R) 4 CPU 2.80GHz Gentoo Base System version 1.5.3 distcc 2.17 i386-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] Autoconf: sys-devel/autoconf-2.59-r4 Automake: sys-devel/automake-1.8.5-r1 Binutils: sys-devel/binutils-2.15.90.0.1.1-r3 Headers: sys-kernel/linux-headers-2.4.22 Libtools: sys-devel/libtool-1.5.2-r5 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer" CHOST="i386-pc-linux-gnu" COMPILER="" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=pentium4 -O3 -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://mir.zyrianes.net/gentoo/ ftp://mir.zyrianes.net/gentoo/ http://www.gigaload.org/gentoo.org/ http://195.56.77.10/" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage" USE="X acpi aim alsa audiofile avi berkdb bitmap-fonts bonobo bzlib cdr crypt cups curl divx4linux dvd dvdread encode fam fbcon foomaticdb ftp gcj gdbm gif gnome gnutls gpm gtk gtk2 gtkhtml imap imlib ipv6 jabber java jpeg libg++ libwww mad matroska mikmod mime motif mozilla mpeg msn ncurses nls nvidia oggvorbis openal opengl oscar oss pam pdflib perl png python quicktime readline scanner sdl slang spell ssl svg svga tcpd theora truetype unicode usb v4l v4l2 wmf wxwindows x86 xine xml2 xmms xpm xprint xv xvid yahoo zlib linguas_fr" i cant attach the Preprocessed source because the file is empty :| the first time i compiled crypto++ the file was not. Created attachment 40051 [details, diff]
Patch to ebuild
Looks like another gcc 3.4 sse2 issue. I added a check to see if you are using
gcc 3.4 and if so, it replaces march=pentium4 with mtune=pentium4, which allows
it to compile.
rather append -mno-sse2 copy what we did in xorg 6.8 we cant apply -mno-sse2 for all archs but using the test assures it only gets applied if the arch supports -mno-sse2 (we need to make sure pentium-m is taken care off too, and this way you get the rest of -march= w/o the (currently) problematic sse2 ill apply this then tomorrow if sekretarz or robmoss dont get to it before me thanks for tracking it down to sse2 Yea, didn't think of doing it that way. That's a much better way :) So, i tried with -mno-sse2, it worked, it compiled, but the tests failed after :) i have seen the bug report about that other problem, looks like it's -fomit-frame-pointer. Why dont you remove it too in the ebuild like you do with -O3 and now -mno-sse2 ? Thx for your help |