Skip to content
This repository has been archived by the owner on Dec 14, 2021. It is now read-only.

Build failure on Exherbo #806

Open
zaufi opened this issue Nov 27, 2019 · 4 comments
Open

Build failure on Exherbo #806

zaufi opened this issue Nov 27, 2019 · 4 comments

Comments

@zaufi
Copy link

zaufi commented Nov 27, 2019

$ cmake -DCMAKE_BUILD_TYPE=Release -DBoost_USE_STATIC_LIBS=OFF -DBUILD_CXX_LANGUAGE_PACKAGE=ON -DClang_DIR=/usr/x86_64-pc-linux-gnu/lib/llvm/9/lib/cmake/clang -DBUILD_PYTHON_LANGUAGE_PACKAGE=ON -DCMAKE_C_COMPILER=gcc-9 -DCMAKE_CXX_COMPILER=g++-9 ..
-- Found Git: /usr/host/bin/git (found version "2.24.0") 
-- Version: 2020.1.26
-- setting up the buildtype for versioning
-- The C compiler identification is GNU 9.2.0
-- The CXX compiler identification is GNU 9.2.0
-- Check for working C compiler: /usr/host/bin/gcc-9
-- Check for working C compiler: /usr/host/bin/gcc-9 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/host/bin/g++-9
-- Check for working CXX compiler: /usr/host/bin/g++-9 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found LLVM 9.0.0
-- Found Boost: /usr/host/lib64/cmake/Boost-1.71.0/BoostConfig.cmake (found suitable version "1.71.0", minimum required is "1.67") found components:  system program_options filesystem date_time 
-- Found Qt 5.13.2
-- Building the Java indexer will be skipped. You can enable building this target by setting 'BUILD_JAVA_LANGUAGE_PACKAGE' to 'ON'.
-- create symlink: /work/Sourcetrail/bin/app/data ->/work/Sourcetrail/build/app/data
-- create icons
sourcedir: /work/Sourcetrail
builddir : /work/Sourcetrail/build
hicolor  : /work/Sourcetrail/build/share/icons/hicolor
icon     : /work/Sourcetrail/bin/app/data/gui/icon/logo_1024_1024.png
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libicui18n.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libicudata.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libicuuc.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libudev.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libpng.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libEGL.so
-- lib: libselinux.so
CMake Warning at cmake/linux_package.cmake:28 (message):
  libselinux.so not found
Call Stack (most recent call first):
  cmake/linux_package.cmake:73 (GetAndInstallLibrary)
  cmake/linux_package.cmake:115 (AddSharedToComponent)
  CMakeLists.txt:776 (include)


-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libXrender.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libX11-xcb.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libXi.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libxcb.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libfontconfig.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libfreetype.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libXext.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libX11.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libudev.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libGL.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libxcb-dri2.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libxcb-xfixes.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libxcb-render.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libxcb-shape.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libgbm.so.1
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libdrm.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libglapi.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libXdamage.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libXfixes.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libxcb-glx.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libXxf86vm.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libdrm.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libXau.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libssl.so
-- lib: /usr/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../libcrypto.so
-- Configuring done
-- Generating done
-- Build files have been written to: /work/Sourcetrail/build

$ make VERBOSE=1
/usr/x86_64-pc-linux-gnu/bin/cmake -S/work/Sourcetrail -B/work/Sourcetrail/build --check-build-system CMakeFiles/Makefile.cmake 0
/usr/x86_64-pc-linux-gnu/bin/cmake -E cmake_progress_start /work/Sourcetrail/build/CMakeFiles /work/Sourcetrail/build/CMakeFiles/progress.marks
make -f CMakeFiles/Makefile2 all
make[1]: Entering directory '/work/Sourcetrail/build'
make -f CMakeFiles/Sourcetrail_lib_utility.dir/build.make CMakeFiles/Sourcetrail_lib_utility.dir/depend
make[2]: Entering directory '/work/Sourcetrail/build'
cd /work/Sourcetrail/build && /usr/x86_64-pc-linux-gnu/bin/cmake -E cmake_depends "Unix Makefiles" /work/Sourcetrail /work/Sourcetrail /work/Sourcetrail/build /work/Sourcetrail/build /work/Sourcetrail/build/CMakeFiles/Sourcetrail_lib_utility.dir/DependInfo.cmake --color=
Dependee "/work/Sourcetrail/build/CMakeFiles/Sourcetrail_lib_utility.dir/DependInfo.cmake" is newer than depender "/work/Sourcetrail/build/CMakeFiles/Sourcetrail_lib_utility.dir/depend.internal".
Dependee "/work/Sourcetrail/build/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/work/Sourcetrail/build/CMakeFiles/Sourcetrail_lib_utility.dir/depend.internal".
Scanning dependencies of target Sourcetrail_lib_utility
make[2]: Leaving directory '/work/Sourcetrail/build'
make -f CMakeFiles/Sourcetrail_lib_utility.dir/build.make CMakeFiles/Sourcetrail_lib_utility.dir/build
make[2]: Entering directory '/work/Sourcetrail/build'
[  0%] Building CXX object CMakeFiles/Sourcetrail_lib_utility.dir/src/lib_utility/utility/TextCodec.cpp.o
/usr/host/bin/g++-9  -DBOOST_ALL_NO_LIB -DBOOST_DATE_TIME_DYN_LINK -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBUILD_TYPE=\"Release\" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -I/work/Sourcetrail/build -I/work/Sourcetrail -I/work/Sourcetrail/src/lib_utility/utility -isystem /usr/host/include -isystem /usr/host/include/qt5 -isystem /usr/host/include/qt5/QtWidgets -isystem /usr/host/include/qt5/QtGui -isystem /usr/host/include/qt5/QtCore -isystem /usr/host/lib/qt5/mkspecs/linux-g++ -isystem /usr/host/include/qt5/QtNetwork  -O3 -DNDEBUG -fPIC   -fPIC -std=gnu++14 -o CMakeFiles/Sourcetrail_lib_utility.dir/src/lib_utility/utility/TextCodec.cpp.o -c /work/Sourcetrail/src/lib_utility/utility/TextCodec.cpp
In file included from /usr/x86_64-pc-linux-gnu/include/c++/9.2.0/ext/string_conversions.h:41,
                 from /usr/x86_64-pc-linux-gnu/include/c++/9.2.0/bits/basic_string.h:6493,
                 from /usr/x86_64-pc-linux-gnu/include/c++/9.2.0/string:55,
                 from /usr/x86_64-pc-linux-gnu/include/c++/9.2.0/stdexcept:39,
                 from /usr/x86_64-pc-linux-gnu/include/c++/9.2.0/array:39,
                 from /usr/x86_64-pc-linux-gnu/include/c++/9.2.0/tuple:39,
                 from /usr/x86_64-pc-linux-gnu/include/c++/9.2.0/bits/unique_ptr.h:37,
                 from /usr/x86_64-pc-linux-gnu/include/c++/9.2.0/memory:80,
                 from /work/Sourcetrail/src/lib_utility/utility/TextCodec.h:4,
                 from /work/Sourcetrail/src/lib_utility/utility/TextCodec.cpp:1:
/usr/x86_64-pc-linux-gnu/include/c++/9.2.0/cstdlib:75:15: fatal error: stdlib.h: No such file or directory
   75 | #include_next <stdlib.h>
      |               ^~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/Sourcetrail_lib_utility.dir/build.make:63: CMakeFiles/Sourcetrail_lib_utility.dir/src/lib_utility/utility/TextCodec.cpp.o] Error 1
make[2]: Leaving directory '/work/Sourcetrail/build'
make[1]: *** [CMakeFiles/Makefile2:129: CMakeFiles/Sourcetrail_lib_utility.dir/all] Error 2
make[1]: Leaving directory '/work/Sourcetrail/build'
make: *** [Makefile:152: all] Error 2
@zaufi
Copy link
Author

zaufi commented Nov 27, 2019

I also, tried to build w/ GCC 8.3.0 and Clang 9.0.0 → same result.

@egraether
Copy link
Contributor

This is not a Sourcetrail related issue. I think you most likely have multiple C standard libraries installed and the compiler has issues choosing the right one. I'm not an expert on these issues, try searching online for a solution.

@zaufi
Copy link
Author

zaufi commented Nov 27, 2019

@egraether,

Exherbo is a source-based distro. I built tons of various packages for it and also I do tons of builds using CMake at my job for several platforms. Having multiple compilers all the time is quite normal practice for me. And I would say Sourcetrail is the second package w/ this problem. The first one was IWYU (include-what-you-use) when it's built w/another version of clang than currently installed/active. But I have no idea why Sourcetrail behaves incorrectly like this.

@dwlsalmeida
Copy link

@zaufi see if this helps
machinekit/QtQuickVcp#278

specifically:

This occurs throughout Qt in later versions with newer compilers.

The way to fix it is to edit mkspecs/common/gcc-base.conf

Change QMAKE_CFLAGS_ISYSTEM = -isystem
to QMAKE_CFLAGS_ISYSTEM = -I (capital i)

I have been doing this since Qt 5.10.0 at least

Notice this line on your excerpt:

/usr/host/bin/g++-9 -DBOOST_ALL_NO_LIB -DBOOST_DATE_TIME_DYN_LINK -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_SYSTEM_DYN_LINK -DBUILD_TYPE="Release" -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -I/work/Sourcetrail/build -I/work/Sourcetrail -I/work/Sourcetrail/src/lib_utility/utility -isystem /usr/host/include -isystem /usr/host/include/qt5 -isystem /usr/host/include/qt5/QtWidgets -isystem /usr/host/include/qt5/QtGui -isystem /usr/host/include/qt5/QtCore -isystem /usr/host/lib/qt5/mkspecs/linux-g++ -isystem /usr/host/include/qt5/QtNetwork -O3 -DNDEBUG -fPIC -fPIC -std=gnu++14 -o CMakeFiles/Sourcetrail_lib_utility.dir/src/lib_utility/utility/TextCodec.cpp.o -c /work/Sourcetrail/src/lib_utility/utility/TextCodec.cpp


I was having issues with stdlib.h when indexing projects with Sourcetrail, which I fixed after removing /usr/include from the global include path in Project > Edit Project.

From the tooltip in Sourcetrail:

These paths are usually passed to the compiler with the '-isystem' flag.

But as mentioned in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70129

/usr/include is already a system include dir, so -isystem /usr/include serves no useful purpose.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants