Hi all, When I try to test guix builds for other architectures using the qemu-binfmt-service and the --system flag, the configuration step is failing to identify the compiler with the CMake build system. I did some investigating, and it appears this is a failing test in CMake itself but it causes packages to fail on build. This seems to only be the case when compiling for foreign architectures, as building on the true architecture seems to work (as in the Guix CI).
--8<---------------cut here---------------start------------->8--- CMake Error at /gnu/store/8aamffn0azz4jx4m18pzw4k14sr437ly-cmake-minimal-3.16.5/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): list sub-command REMOVE_ITEM requires two or more arguments. Call Stack (most recent call first): /gnu/store/8aamffn0azz4jx4m18pzw4k14sr437ly-cmake-minimal-3.16.5/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) /gnu/store/8aamffn0azz4jx4m18pzw4k14sr437ly-cmake-minimal-3.16.5/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) /gnu/store/8aamffn0azz4jx4m18pzw4k14sr437ly-cmake-minimal-3.16.5/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) /gnu/store/8aamffn0azz4jx4m18pzw4k14sr437ly-cmake-minimal-3.16.5/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake:111 (CMAKE_DETERMINE_COMPILER_ID) CMakeLists.txt:5 (project) -- The CXX compiler identification is unknown -- Check for working C compiler: /gnu/store/z8954h4nvgxwcyy2in8c1l11g199m2yb-gcc-7.5.0/bin/gcc -- Check for working C compiler: /gnu/store/z8954h4nvgxwcyy2in8c1l11g199m2yb-gcc-7.5.0/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /gnu/store/z8954h4nvgxwcyy2in8c1l11g199m2yb-gcc-7.5.0/bin/c++ -- Check for working CXX compiler: /gnu/store/z8954h4nvgxwcyy2in8c1l11g199m2yb-gcc-7.5.0/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done Unknown C compiler. --8<---------------cut here---------------end--------------->8--- when keeping the failing build, this is what I find in the CMakeError.log. --8<---------------cut here---------------start------------->8--- Compiling the C compiler identification source file "CMakeCCompilerId.c" failed. Compiler: /gnu/store/z8954h4nvgxwcyy2in8c1l11g199m2yb-gcc-7.5.0/bin/gcc Build flags: Id flags: The output was: 1 CMakeCCompilerId.c:20:52: error: expected ‘,’ or ‘;’ before ‘COMPILER_ID’ char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; ^~~~~~~~~~~ --8<---------------cut here---------------end--------------->8--- --8<---------------cut here---------------start------------->8--- Compiling the C compiler identification source file "CMakeCCompilerId.c" failed. Compiler: /gnu/store/z8954h4nvgxwcyy2in8c1l11g199m2yb-gcc-7.5.0/bin/gcc Build flags: Id flags: --target=arm-arm-none-eabi;-mcpu=cortex-m3 The output was: 1 gcc: error: unrecognized command line option ‘--target=arm-arm-none-eabi’ --8<---------------cut here---------------end--------------->8--- I am getting this error on both SWI-Prolog and Lean packages, both of which I have needed to investigate on armhf and i686 because of failures on those architectures. I am not entirely sure how to proceed with these issues. Any help? Thanks. Brett Gilio