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

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: