[Development] qt-4.8.6 + gcc5 fails to build ?

Thiago Macieira thiago.macieira at intel.com
Sat Feb 14 03:46:29 CET 2015


On Friday 13 February 2015 14:21:09 Thiago Macieira wrote:
> On Friday 13 February 2015 11:37:27 Rex Dieter wrote:
> > Fedora development has recently adopted gcc5, and we've run into several
> > problems, one of which is that qt-4.8.6 fails to build, when linking
> > libQtGui:
> > 
> > .obj/release-shared/qdrawhelper_sse2.o: In function `unsigned int const*
> > qt_fetch_radial_gradient_template<QRadialFetchSimd<QSimdSse2> >(unsigned
> > int*, Operator const*, QSpanData const*, int, int, int)':
> > /builddir/build/BUILD/qt-everywhere-opensource-
> > src-4.8.6/src/gui/../../include/QtGui/private/../../../src/gui/painting/qd
> > ra whelper_p.h:396: undefined reference to `qt_memfill32'
> > collect2: error: ld returned 1 exit status
> > 
> > same problem with latest 4.8.7 2015-02-02-3 snapshot.
> > 
> > Currently tracking issue @
> > https://bugreports.qt.io/browse/QTBUG-44466
> > 
> > anyone with similar or different experiences?
> 
> It's a GCC bug. One file defines a symbol "qt_memfill32" and the other
> searches for "_Z12qt_memfill32".
> 
> GCC 4.9, Clang and ICC don't have this problem. Therefore, it's a GCC bug.

Reported: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65062

Testcase:
template <class>
void tf()
{
  extern void (*qt_memfill32)();
  qt_memfill32();
}

void f() {
  tf<int>();
}

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center




More information about the Development mailing list