Cannot build: Qt 4.8.1, Linux, error in qdrawhelper_sse2.cpp
-
Hi All,
Perhaps someone can see the obvious problem with my attempt to build Qt 4.8.1 (or 4.8.0) on Linux using GCC.@
$ make confclean
$ ./configure --prefix=/mnt/data/qt/qt-4.8.1 -plugin-sql-sqlite -opensource
--- 8< -- snip --
Qt is now configured for building. Just run 'gmake'.
Once everything is built, you must run 'gmake install'.
Qt will be installed into /mnt/data/qt/qt-4.8.1To reconfigure, run 'gmake confclean' and 'configure'.
$ make
--- 8< -- snip --
g++ -c -Winline -msse2 -m64 -pipe -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -DQT_SHARED -I/usr/include/gtk-2.0 -I/usr/lib64/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng15 -I/usr/include/qt4 -I/usr/include/qt4/QtGui -I/usr/include/libdrm -I/usr/include/qt4/QtCore -O2 -fvisibility=hidden -fvisibility-inlines-hidden -Wall -W -D_REENTRANT -I/usr/include/freetype2 -fPIC -DQT_SHARED -DQT_BUILD_GUI_LIB -DQT_NO_USING_NAMESPACE -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3_SUPPORT -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_NO_OPENTYPE -DQT_NO_STYLE_MAC -DQT_NO_STYLE_WINDOWSVISTA -DQT_NO_STYLE_WINDOWSXP -DQT_NO_STYLE_WINDOWSCE -DQT_NO_STYLE_WINDOWSMOBILE -DQT_NO_STYLE_S60 -DQ_INTERNAL_QAPP_SRC -DQT_NO_DEBUG -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -DQT_HAVE_SSE3 -DQT_HAVE_SSSE3 -DQT_HAVE_SSE4_1 -DQT_HAVE_SSE4_2 -DQT_HAVE_AVX -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I../../mkspecs/linux-g++-64 -I. -I../../include/QtCore -I../../include -I../../include/QtGui -I.rcc/release-shared -I../3rdparty/xorg -Iimage -I/usr/include/freetype2 -I../3rdparty/harfbuzz/src -Idialogs -I.moc/release-shared -I/usr/X11R6/include -I.uic/release-shared painting/qdrawhelper_sse2.cpp -o .obj/release-shared/qdrawhelper_sse2.o
painting/qdrawhelper_sse2.cpp:535:76: error: ‘Operator’ does not name a type
painting/qdrawhelper_sse2.cpp:535:86: error: ISO C++ forbids declaration of ‘op’ with no type
painting/qdrawhelper_sse2.cpp: In function ‘const uint* qt_fetch_radial_gradient_sse2(uint*, const int*, const QSpanData*, int, int, int)’:
painting/qdrawhelper_sse2.cpp:538:12: error: ‘qt_fetch_radial_gradient_template’ was not declared in this scope
painting/qdrawhelper_sse2.cpp:538:46: error: ‘QRadialFetchSimd’ was not declared in this scope
painting/qdrawhelper_sse2.cpp:538:72: error: expected primary-expression before ‘>’ token
painting/qdrawhelper_sse2.cpp:538:74: error: expected primary-expression before ‘>’ token
painting/qdrawhelper_sse2.cpp:538:84: warning: left-hand operand of comma has no effect
painting/qdrawhelper_sse2.cpp:538:88: warning: right-hand operand of comma has no effect
painting/qdrawhelper_sse2.cpp:538:94: warning: right-hand operand of comma has no effect
painting/qdrawhelper_sse2.cpp:538:97: warning: right-hand operand of comma has no effect
painting/qdrawhelper_sse2.cpp:538:100: warning: right-hand operand of comma has no effect
painting/qdrawhelper_sse2.cpp:539:1: warning: control reaches end of non-void function
make[1]: *** [.obj/release-shared/qdrawhelper_sse2.o] Error 1
make[1]: Leaving directory `/mnt/data/qt/qt-everywhere-opensource-src-4.8.1/src/gui'
make: *** [sub-gui-make_default-ordered] Error 2
@
Using this compiler
@
$ gcc -v
Using built-in specs.
COLLECT_GCC=/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.3/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/4.5.3/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-4.5.3-r2/work/gcc-4.5.3/configure --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.3 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.3 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.3/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.5.3/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.3/include/g++-v4 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec --disable-fixed-point --without-ppl --without-cloog --disable-lto --enable-nls --without-included-gettext --with-system-zlib --disable-werror --enable-secureplt --enable-multilib --enable-libmudflap --disable-libssp --enable-libgomp --with-python-dir=/share/gcc-data/x86_64-pc-linux-gnu/4.5.3/python --enable-checking=release --disable-libgcj --enable-languages=c,c++,fortran --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-targets=all --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo 4.5.3-r2 p1.1, pie-0.4.7'
Thread model: posix
gcc version 4.5.3 (Gentoo 4.5.3-r2 p1.1, pie-0.4.7)
@
on a Core i7-2600 -
You could try hacking it by using the configure option -no-sse2
Hard to say what's going wrong, you've got a type 'Operator' that has not been defined, as to why, that may be a little tricky finding why.
-
Im out of topic, but yeah, another gentoo user here XD
-
Using -no-sse2 gets the process to a different failure point that seems related to ssse3. Adding -no-ssse3 gets me to more errors implying there might be some undesirable crossover with the system-wide Qt install (4.7.4).
I also found https://bugreports.qt-project.org/browse/QTBUG-14443 with an almost identical symptom caused by some private headers being installed system wide. Gentoo does this:
@
private-headers : Install Qt declarative private headers required by Qt-creator
QmlDesigner and QmlInspector plugins
@painting/qdrawhelper_sse2.cpp does this:
@
include <private/qdrawhelper_x86_p.h>
@so it could be picking up the unrelated
@
/usr/include/qt4/QtGui/private/qdrawhelper_x86_p.h
@from the existing 4.7.4 install.
I'll keep chipping away at this and also look at how this is avoided in the Gentoo supplied builds for Qt.