Comment 11 for bug 807156

Revision history for this message
In , Jeffrey Walton (noloader) wrote :

(In reply to comment #0)
> Sorry if this was previously reported. Searching returned an error stating I
> used an invalid file extension.
>
> I was attempting to compile the latest Crypto++ (svn checkout
> https://cryptopp.svn.sourceforge.net/svnroot/cryptopp/trunk/c5 cryptopp) on a
> Dell GX280 (32 bit Pentium 4). Here's the internal compiler error:
>
> $ export PREFIX=/usr/local; make
> g++ -DNDEBUG -g -O2 -m32 -mtune=pentium4 -march=native -pipe -c 3way.cpp
> g++ -DNDEBUG -g -O2 -m32 -mtune=pentium4 -march=native -pipe -c adler32.cpp
> g++ -DNDEBUG -g -O2 -m32 -mtune=pentium4 -march=native -pipe -c algebra.cpp
> g++ -DNDEBUG -g -O2 -m32 -mtune=pentium4 -march=native -pipe -c algparam.cpp
> g++ -DNDEBUG -g -O2 -m32 -mtune=pentium4 -march=native -pipe -c arc4.cpp
> g++ -DNDEBUG -g -O2 -m32 -mtune=pentium4 -march=native -pipe -c asn.cpp
> asn.cpp: In member function ‘void
> CryptoPP::OID::DEREncode(CryptoPP::BufferedTransformation&) const’:
> asn.cpp:254:1: error: unrecognizable insn:
> (insn 194 178 195 2 asn.cpp:248 (set (reg:SI 2 cx)
> (mem:QI (plus:SI (reg/f:SI 1 dx [orig:61 D.44160 ] [61])
> (const_int 4 [0x4])) [16 S1 A32])) -1 (nil))
> asn.cpp:254:1: internal compiler error: in extract_insn, at recog.c:2104
> Please submit a full bug report,
> with preprocessed source if appropriate.
> See <file:///usr/share/doc/gcc-4.5/README.Bugs> for instructions.
> make: *** [asn.o] Error 1
>
> [SNIP]
>
> $ g++ --version
> g++ (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
> Copyright (C) 2010 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions. There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

It looks like removing `-mtune=native` fixed it:

$cat GNUMakefile
...
ifneq ($(GCC42_OR_LATER),0)
ifeq ($(UNAME),Darwin)
CXXFLAGS += -arch x86_64 -arch i386
else
# CXXFLAGS += -march=native
endif
endif
...

$ make
g++ -DNDEBUG -g -O2 -pipe -c 3way.cpp
g++ -DNDEBUG -g -O2 -pipe -c adler32.cpp
g++ -DNDEBUG -g -O2 -pipe -c algebra.cpp
g++ -DNDEBUG -g -O2 -pipe -c algparam.cpp
g++ -DNDEBUG -g -O2 -pipe -c arc4.cpp
g++ -DNDEBUG -g -O2 -pipe -c asn.cpp
g++ -DNDEBUG -g -O2 -pipe -c authenc.cpp
g++ -DNDEBUG -g -O2 -pipe -c base32.cpp
g++ -DNDEBUG -g -O2 -pipe -c base64.cpp
...