[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#683036: qt4-x11: FTBFS on a multiarch system



Source: qt4-x11
Version: 4:4.8.2-1
Severity: normal

I was trying to investigate #679874 (as I suspect I've seen similar
problems with the FTBFS bug against qmf) but I am also developing
Qt applications for armel on the same machine, so I have 
the following multiarch variants installed:

ii  libqt4-dbus:armel            
ii  libqt4-sql:armel            
ii  libqt4-sql-sqlite:armel            
ii  libqt4-xml:armel            
ii  libqtcore4:armel            
ii  libqtgui4:armel    

The architecture detection code in qt4-x11 has a problem:

                    -system-libtiff \
                    -system-libpng \
                    -system-libjpeg \
                    -no-rpath \
                    -optimized-qmake \
                    -dbus-linked \
                    -reduce-relocations \
                    -no-separate-debug-info \
                    -verbose \
                    -gtkstyle \
                    -system-nas-sound \
                    -no-openvg \
                    -lfontconfig \
                    -I/usr/include/freetype2 \
                    -qvfb \
                    -icu \
                    -plugin-sql-ibase -plugin-sql-sqlite2 -arch armv6 -opengl es2
Determining system architecture... (Linux:3.2.0-3-amd64:x86_64)
    64-bit AMD 80x86 (x86_64)
    'arm' is supported
    'x86_64' is supported
System architecture: 'arm'
Precompiled-headers support enabled.

Yes, maybe arm should be supported because I'm also developing for armel but qt4-x11 should
not be able to pick that up as an indication to try and build with the system architecture
set to arm! This isn't a cross-build.

It looks like it's doing a simple alphabetical sort and picking the first arch it
finds if there is more than one ... that is going to cause unexpected failures, like
this one.

The build continues and fails, first at opengl:

OpenGL ES 2.x auto-detection... ()
make[2]: Entering directory `/home/neil/code/debian/src/qt/qt4-x11-4.8.2/config.tests/unix/opengles2'
g++ -c -pipe -O2 -Wall -W -DQT_WEBKIT -I../../../mkspecs/glibc-g++ -I. -I/usr/include/freetype2 -I/usr/X11R6/include -o opengles2.o opengles2.cpp
opengles2.cpp:45:25: fatal error: GLES2/gl2.h: No such file or directory
compilation terminated.
make[2]: *** [opengles2.o] Error 1
make[2]: Leaving directory `/home/neil/code/debian/src/qt/qt4-x11-4.8.2/config.tests/unix/opengles2'
OpenGL ES 2.x disabled.
The OpenGL ES 2.0 functionality test failed!
 You might need to modify the include and library search paths by editing
 QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in
 /home/neil/code/debian/src/qt/qt4-x11-4.8.2/mkspecs/glibc-g++.
make[1]: *** [override_dh_auto_configure] Error 1

(This will be because I don't have libqt4-opengl:armel installed, but that's not
the point.)

The build then fails later (if I mangle the package to avoid opengl) at an attempt to try
and compile the arm assembly code.... Oops.

Note how, despite selecting a system architecture of arm, it is using g++ not
arm-linux-gnueabi-g++ or x86_64-linux-gnu-g++.

Unfortunately, this makes things very difficult for me to test bugs in qt4-x11
and it will also make it hard to debug multiarch builds once the GSoC project for
Emdebian provides MultiArch cross-compiler toolchains.

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: armel
i386

Kernel: Linux 3.2.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_GB.UTF-8)
Shell: /bin/sh linked to /bin/dash


Reply to: