April 17, 2012

ChrisW67 ChrisW67
Robot Herder
648 posts

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.

  1. $ make confclean
  2. $ ./configure --prefix=/mnt/data/qt/qt-4.8.1 -plugin-sql-sqlite -opensource
  3. --- 8< -- snip --
  4. Qt is now configured for building. Just run 'gmake'.
  5. Once everything is built, you must run 'gmake install'.
  6. Qt will be installed into /mnt/data/qt/qt-4.8.1
  8. To reconfigure, run 'gmake confclean' and 'configure'.
  9. $ make
  10. --- 8< -- snip --
  11. 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
  12. painting/qdrawhelper_sse2.cpp:535:76: error: ‘Operator’ does not name a type
  13. painting/qdrawhelper_sse2.cpp:535:86: error: ISO C++ forbids declaration of ‘op’ with no type
  14. painting/qdrawhelper_sse2.cpp: In function ‘const uint* qt_fetch_radial_gradient_sse2(uint*, const int*, const QSpanData*, int, int, int):
  15. painting/qdrawhelper_sse2.cpp:538:12: error: ‘qt_fetch_radial_gradient_template’ was not declared in this scope
  16. painting/qdrawhelper_sse2.cpp:538:46: error: ‘QRadialFetchSimd’ was not declared in this scope
  17. painting/qdrawhelper_sse2.cpp:538:72: error: expected primary-expression before ‘>’ token
  18. painting/qdrawhelper_sse2.cpp:538:74: error: expected primary-expression before ‘>’ token
  19. painting/qdrawhelper_sse2.cpp:538:84: warning: left-hand operand of comma has no effect
  20. painting/qdrawhelper_sse2.cpp:538:88: warning: right-hand operand of comma has no effect
  21. painting/qdrawhelper_sse2.cpp:538:94: warning: right-hand operand of comma has no effect
  22. painting/qdrawhelper_sse2.cpp:538:97: warning: right-hand operand of comma has no effect
  23. painting/qdrawhelper_sse2.cpp:538:100: warning: right-hand operand of comma has no effect
  24. painting/qdrawhelper_sse2.cpp:539:1: warning: control reaches end of non-void function
  25. make[1]: *** [.obj/release-shared/qdrawhelper_sse2.o] Error 1
  26. make[1]: Leaving directory `/mnt/data/qt/qt-everywhere-opensource-src-4.8.1/src/gui'
  27. make: *** [sub-gui-make_default-ordered] Error 2

Using this compiler
  1. $ gcc -v
  2. Using built-in specs.
  3. COLLECT_GCC=/usr/x86_64-pc-linux-gnu/gcc-bin/4.5.3/gcc
  4. COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/4.5.3/lto-wrapper
  5. Target: x86_64-pc-linux-gnu
  6. 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'
  7. Thread model: posix
  8. gcc version 4.5.3 (Gentoo 4.5.3-r2 p1.1, pie-0.4.7)

on a Core i7-2600

3 replies

April 17, 2012

KeithS KeithS
Lab Rat
34 posts

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.

April 17, 2012

GentooXativa GentooXativa
Lab Rat
126 posts

Im out of topic, but yeah, another gentoo user here XD


Jose Vicente Giner Sanchez - Senior Mobile Developer


C/ Dr. Zamenhof 36bis, 1ºA 28027 Madrid
T: +34 917431436

April 18, 2012

ChrisW67 ChrisW67
Robot Herder
648 posts

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:

  1. private-headers : Install Qt declarative private headers required by Qt-creator
  2.  QmlDesigner and QmlInspector plugins

painting/qdrawhelper_sse2.cpp does this:

  1. include <private/qdrawhelper_x86_p.h>

so it could be picking up the unrelated

  1. /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.

  ‹‹ MySQL + Qt4 + Windows7 = problems [SOLVED]      How to use QT5 Multimedia in Windows 7? ››

You must log in to post a reply. Not a member yet? Register here!