https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64898
Bug ID: 64898
Summary: [5 Regression] qtgui-4.8.6 build error
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: trippels at gcc dot gnu.org
qtgui-4.8.6 fails to build. During final libQtGui.so.4.8.6 link I get:
.obj/release-shared/qdrawhelper_sse2.o: In function
`_Z33qt_fetch_radial_gradient_templateI16QRadialFetchSimdI9QSimdSse2EEPKjPjPK8OperatorPK9QSpanDataiii':
qdrawhelper_sse2.cpp:(.text._Z33qt_fetch_radial_gradient_templateI16QRadialFetchSimdI9QSimdSse2EEPKjPjPK8OperatorPK9QSpanDataiii[_Z33qt_fetch_radial_gradient_templateI16QRadialFetchSimdI9QSimdSse2EEPKjPjPK8OperatorPK9QSpanDataiii]+0x273):
undefined reference to `_Z12qt_memfill32'
markus@x4 test % cat qdrawhelper_sse2.ii
template <class>
void
qt_fetch_radial_gradient_template (int)
{
extern void (*qt_memfill32)(int, int, int);
qt_memfill32 (0, 0, 0);
}
void
qt_fetch_radial_gradient_sse2 ()
{
qt_fetch_radial_gradient_template<int> (0);
}
gcc-5 mangles the extern function to _Z12qt_memfill32.
All other compilers mangle it to qt_memfill32.
markus@x4 test % g++ -O2 -c qdrawhelper_sse2.ii
markus@x4 test % nm qdrawhelper_sse2.o | grep qt_memfill32
U _Z12qt_memfill32
markus@x4 test % clang++ -O2 -c qdrawhelper_sse2.ii
markus@x4 test % nm qdrawhelper_sse2.o | grep qt_memfill32
U qt_memfill32
markus@x4 test % icpc -O2 -c qdrawhelper_sse2.ii
markus@x4 test % nm qdrawhelper_sse2.o | grep qt_memfill32
U qt_memfill32
markus@x4 test % /usr/x86_64-pc-linux-gnu/gcc-bin/4.9.2/g++ -O2 -c
qdrawhelper_sse2.ii
markus@x4 test % nm qdrawhelper_sse2.o | grep qt_memfill32
U qt_memfill32