Bug#823145: Qt4-using packages fail to build with gcc6
Package: libqt4-dev
Version: 4:4.8.7+dfsg-6
Severity: important
Hi,
When I try to compile LibreOffice (which otherwise is ready for gcc 6, see
below) with gcc 6 I get:
checking for Qt4 headers... /usr/include/qt4
checking for qmake-qt4... /usr/bin/qmake-qt4
checking for Qt4 libraries... /usr/lib/x86_64-linux-gnu
checking for moc-qt4... /usr/bin/moc-qt4
checking for KDE4 headers... /usr/include
checking for KDE4 libraries... /usr/lib
checking for QT4... yes
checking whether KDE is >= 4.2... configure: error: KDE version too old
Error running configure at ./autogen.sh line 281.
/home/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.2.0.0.alpha1/debian/rules:1943: recipe for target 'debian/stampdir/build-arch' failed
make[1]: *** [debian/stampdir/build-arch] Error 25
make[1]: Leaving directory '/home/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.2.0.0.alpha1'
debian/rules:1936: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
debuild: fatal error at line 1376:
dpkg-buildpackage -rfakeroot -D -us -uc -b failed
This check is the following:
AC_LANG_PUSH([C++])
save_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $KDE4_CFLAGS"
AC_MSG_CHECKING([whether KDE is >= 4.2])
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <kdeversion.h>
int main(int argc, char **argv) {
if (KDE_VERSION_MAJOR == 4 && KDE_VERSION_MINOR >= 2) return 0;
else return 1;
}
]])],[AC_MSG_RESULT([yes])],[AC_MSG_ERROR([KDE version too old])],[AC_MSG_ERROR([KDE support not tested with cross-compilation])])
CXXFLAGS=$save_CXXFLAGS
AC_LANG_POP([C++])
config.log says:
configure:37726: checking whether KDE is >= 4.2
configure:37742: x86_64-linux-gnu-g++ -o conftest -g -O2 -fstack-protector-stron
g -Wformat -Werror=format-security -isystem /usr/include -DQT_SHARED -isystem /u
sr/include/qt4 -isystem /usr/include/qt4/QtNetwork -isystem /usr/include/qt4 -is
ystem /usr/include/qt4/QtGui -isystem /usr/include/qt4 -isystem /usr/include/qt4
/QtCore -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT -Wdate-time -D_FORTIFY_SOURCE=2
-Wl,-z,relro conftest.cpp >&5
In file included from /usr/include/c++/6/bits/stl_algo.h:59:0,
from /usr/include/c++/6/algorithm:62,
from /usr/include/qt4/QtCore/qglobal.h:68,
from /usr/include/kdemacros.h:162,
from /usr/include/kdecore_export.h:24,
from /usr/include/kdeversion.h:30,
from conftest.cpp:139:
/usr/include/c++/6/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
#include_next <stdlib.h>
^
compilation terminated.
configure:37742: $? = 1
configure: program exited with status 1
configure: failed program was:
[...]
| /* end confdefs.h. */
|
| #include <kdeversion.h>
|
| int main(int argc, char **argv) {
| if (KDE_VERSION_MAJOR == 4 && KDE_VERSION_MINOR >= 2) return 0;
| else return 1;
| }
|
configure:37746: error: KDE version too old
This also happens in the actual compilation later:
[build CXX] shell/source/backends/kde4be/kde4access.cxx
S=/home/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.2.0.0.alpha1 &&
I=$S/instdir && W=$S/workdir && mkdir -p $W/CxxObject/shell/source/backends/kd
e4be/ $W/Dep/CxxObject/shell/source/backends/kde4be/ && cd /home/rene/Debian/Pak
ete/LibreOffice/libreoffice/libreoffice-5.2.0.0.alpha1 && x86_64-linux-gnu-g++ -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_SYSTEM_NO_DEPRECATED -DCPPU_ENV=gcc3 -DLINUX -DNDEBUG -DOPTIMIZE -DOSL_DEBUG_LEVEL=0 -DUNIX -DUNX -DX86_64 -D_FORTIFY_SOURCE=2 -D_PTHREADS -D_REENTRANT -Wdate-time -Wdate-time -D_FORTIFY_SOURCE=2 -DQT_SHARED -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT -DHAVE_GCC_VISIBILITY_FEATURE -fvisibility=hidden -Wall -Wno-missing-braces -Wnon-virtual-dtor -Wendif-labels -Wextra -Wundef -Wunused-macros -fmessage-length=0 -fno-common -pipe -Wduplicated-cond -Wlogical-op -Wnull-dereference -Wshift-overflow=2 -Wunused-const-variable=1 -fvisibility-inlines-hidden -fPIC -Wshadow -Woverloaded-virtual -std=gnu++14 -ggdb2 -DEXCEPTIONS_ON -fexceptions -fno-enforce-eh-specs -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -DLIBO_INTERNAL_ONLY -c $S/shell/source/backends/kde4be/kde4access.cxx -o $W/CxxObject/shell/source/backends/kde4be/kde4access.o -I$S/shell/source/backends/kde4be/ -isystem /usr/include -isystem /usr/include/qt4 -isystem /usr/include/qt4/QtNetwork -isystem /usr/include/qt4 -isystem /usr/include/qt4/QtGui -isystem /usr/include/qt4 -isystem /usr/include/qt4/QtCore -I$S/include -I/usr/lib/jvm/default-java/include -I/usr/lib/jvm/default-java/include/linux -I$S/config_host -I$W/UnoApiHeadersTarget/udkapi/normal -I$W/UnoApiHeadersTarget/offapi/normal -I/usr/include
[build CXX] shell/source/backends/kde4be/kde4backend.cxx
In file included from /usr/include/c++/6/bits/stl_algo.h:59:0,
from /usr/include/c++/6/algorithm:62,
from /usr/include/qt4/QtCore/qglobal.h:68,
from /usr/include/qt4/QtCore/qnamespace.h:45,
from /usr/include/qt4/QtCore/qobjectdefs.h:45,
from /usr/include/qt4/QtGui/qwindowdefs.h:45,
from /usr/include/qt4/QtGui/qfont.h:45,
from /usr/include/qt4/QtGui/QFont:1,
from /home/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.2.0.0.alpha1/shell/source/backends/kde4be/kde4access.cxx:22:
/usr/include/c++/6/cstdlib:75:25: fatal error: stdlib.h: No such file or directory
#include_next <stdlib.h>
^
compilation terminated.
/home/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.2.0.0.alpha1/solenv/gbuild/LinkTarget.mk:189: recipe for target '/home/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.2.0.0.alpha1/workdir/CxxObject/shell/source/backends/kde4be/kde4access.o' failed
make[3]: *** [/home/rene/Debian/Pakete/LibreOffice/libreoffice/libreoffice-5.2.0.0.alpha1/workdir/CxxObject/shell/source/backends/kde4be/kde4access.o] Error 1
# dpkg -S /usr/include/kdeversion.h
kdelibs5-dev: /usr/include/kdeversion.h
This one doesn't include stdlib.h, so looking further down the #include's:
kdeversion.h -> kdecore_export.h -> kdemacros.h -> QtCore/qglobal.h
# dpkg -S /usr/include/qt4/QtCore/qglobal.h
libqt4-dev: /usr/include/qt4/QtCore/qglobal.h
That one has #include <stddef.h>... I stopped here, especially because it
seems to be that the actual error is caused by a libstdc++ include?
# dpkg -l | grep libstdc
ii libstdc++-5-dev:amd64 5.3.1-17 amd64 GNU Standard C++ Library v3 (development files)
ii libstdc++-6-dev:amd64 6.1.1-1 amd64 GNU Standard C++ Library v3 (development files)
ii libstdc++6:amd64 6.1.1-1 amd64 GNU Standard C++ Library v3
Feel free to reassign as appropriate.
Regards,
Rene
Reply to: