GCC internal error (unrecognizable insn ...) building qt4-x11 for Thumb-2 on armel

Bug #490391 reported by Dave Martin
12
This bug affects 1 person
Affects Status Importance Assigned to Milestone
gcc-4.4 (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Binary package hint: gcc-4.4

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu lucid (development branch)
Release: 10.04
Codename: lucid

$ uname -r
2.6.31-105-imx51

Architecture: armel
gcc-4.4 4.4.2-3ubuntu1 (lucid)
qt4-x11 source 4.6.0~rc1-1ubuntu1(lucid)

See dpkg-status in the attached tarball for complete version info of installed packages.

To reproduce the bug, unpack the attached tarball, and from the unpacked directory run
$ . bug.sh

I get the following output:

++ g++ -c -g -O2 -O2 -fPIC -Wall -W -o qfsfileengine_unix.o qfsfileengine_unix.cpp
In file included from ../../../include/QtCore/qstring.h:2,
                 from ../../../include/QtCore/../../src/corelib/io/qdir.h:46,
                 from ../../../include/QtCore/qdir.h:2,
                 from ../../corelib/io/qabstractfileengine.h:46,
                 from ../../corelib/io/qfsfileengine_unix.cpp:44:
../../../include/QtCore/../../src/corelib/tools/qstring.h:91: note: the mangling of 'va_list' has changed in GCC 4.4
../../corelib/io/qfsfileengine_unix.cpp: In member function 'uchar* QFSFileEnginePrivate::map(qint64, qint64, QFile::MemoryMapFlags)':
../../corelib/io/qfsfileengine_unix.cpp:1309: error: unrecognizable insn:
(insn 636 635 218 23 ../../corelib/io/qfsfileengine_unix.cpp:1286 (set (reg:SI 9 r9 [+4 ])
        (and:SI (not:SI (ashiftrt:SI (reg:SI 14 lr [213])
                    (const_int 31 [0x1f])))
            (reg:SI 11 fp [ offset+4 ]))) -1 (nil))
../../corelib/io/qfsfileengine_unix.cpp:1309: internal compiler error: in extract_insn, at recog.c:2048
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.4/README.Bugs> for instructions.

++ g++ -c -g -O2 -pthread -O2 -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -fPIC -o .obj/release-shared/qfsfileengine_unix.o qfsfileengine_unix-2.cpp
In file included from ../../include/QtCore/qstring.h:2,
                 from ../../include/QtCore/../../src/corelib/io/qdir.h:46,
                 from ../../include/QtCore/qdir.h:2,
                 from io/qabstractfileengine.h:46,
                 from io/qfsfileengine_unix.cpp:44:
../../include/QtCore/../../src/corelib/tools/qstring.h:91: note: the mangling of 'va_list' has changed in GCC 4.4
io/qfsfileengine_unix.cpp: In member function 'uchar* QFSFileEnginePrivate::map(qint64, qint64, QFile::MemoryMapFlags)':
io/qfsfileengine_unix.cpp:1309: error: unrecognizable insn:
(insn 693 692 240 27 io/qfsfileengine_unix.cpp:1286 (set (reg:SI 9 r9 [+4 ])
        (and:SI (not:SI (ashiftrt:SI (reg:SI 14 lr [218])
                    (const_int 31 [0x1f])))
            (reg:SI 11 fp [ offset+4 ]))) -1 (nil))
io/qfsfileengine_unix.cpp:1309: internal compiler error: in extract_insn, at recog.c:2048
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.4/README.Bugs> for instructions.

I suspect that these are two instances of the same bug, rather than being instances of different bugs.

Both compiler invocations succeed if g++ is run with the -O2 options removed.

Tags: armel armv7
Revision history for this message
Dave Martin (dave-martin-arm) wrote :
Revision history for this message
Dave Martin (dave-martin-arm) wrote :

This might be a duplicate of https://bugs.launchpad.net/bugs/490466

Revision history for this message
Dave Martin (dave-martin-arm) wrote :

Patch posted upstream which should hopefully fix this:

http://gcc.gnu.org/ml/gcc-patches/2009-12/msg00118.html

Revision history for this message
Matthias Klose (doko) wrote :

fixed in gcc-4.4 4.4.2-1ubuntu2

Changed in gcc-4.4 (Ubuntu):
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.