Issue with Conan when compiling for ARMHF (arm32v7) with Focal (20.04)/GNU C++ v10 compiler
I get a compile crash when using Conan C++ Package Manager for architecture ARMHF (arm32v7) but same process successfully functions for amd64 and arm64 architectures. I am using the recently released Ubuntu Focal (20.04) and the repo versions of cmake, G++, openssl etc.
Output below is using cmake 3.16.3 but issue also occurs when I directly compile cmake 3.17.1. I'm using Conan branch 1.24 for the build process.
This may be down to the fact Focal uses G++ v10 whereas Eoan is G++ v9 - but I'm surprised if this issue is just occuring on the ARMHF build process.
`
ERROR [linux/arm/v7 stage1-build 8/15] RUN mkdir /home/nmos-cpp/Development/build && cd /home/nmos-cpp/Development/build && cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:S 19.6s
[linux/arm/v7 stage1-build 8/15] RUN mkdir /home/nmos-cpp/Development/build && cd /home/nmos-cpp/Development/build && cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_CONFIGURATION_TYPES:STRING="Release" -DCXXFLAGS:STRING="-Os" -build /home/nmos-cpp/Development/build .. && if [ -n "4" ]; then echo "Making multi-threaded with 4 jobs"; make -j4; else echo "Making single-threaded"; make; fi: #52 0.426 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 0.426 list sub-command REMOVE_ITEM requires two or more arguments. #52 0.426 Call Stack (most recent call first): #52 0.426 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 0.426 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 0.426 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 0.426 /usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake:116 (CMAKE_DETERMINE_COMPILER_ID) #52 0.426 CMakeLists.txt:5 (project) #52 0.426 #52 0.427 #52 0.718 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 0.718 list sub-command REMOVE_ITEM requires two or more arguments. #52 0.718 Call Stack (most recent call first): #52 0.718 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 0.718 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 0.718 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 0.718 /usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake:116 (CMAKE_DETERMINE_COMPILER_ID) #52 0.718 CMakeLists.txt:5 (project) #52 0.718 #52 0.718 #52 1.003 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 1.003 list sub-command REMOVE_ITEM requires two or more arguments. #52 1.003 Call Stack (most recent call first): #52 1.003 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 1.003 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 1.003 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 1.003 /usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake:116 (CMAKE_DETERMINE_COMPILER_ID) #52 1.003 CMakeLists.txt:5 (project) #52 1.003 #52 1.003 #52 1.295 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 1.295 list sub-command REMOVE_ITEM requires two or more arguments. #52 1.295 Call Stack (most recent call first): #52 1.295 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 1.295 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 1.295 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 1.295 /usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake:116 (CMAKE_DETERMINE_COMPILER_ID) #52 1.295 CMakeLists.txt:5 (project) #52 1.295 #52 1.295 #52 1.579 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 1.579 list sub-command REMOVE_ITEM requires two or more arguments. #52 1.579 Call Stack (most recent call first): #52 1.579 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 1.579 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 1.579 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 1.579 /usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake:116 (CMAKE_DETERMINE_COMPILER_ID) #52 1.579 CMakeLists.txt:5 (project) #52 1.579 #52 1.579 #52 1.684 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 1.684 list sub-command REMOVE_ITEM requires two or more arguments. #52 1.684 Call Stack (most recent call first): #52 1.684 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 1.684 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 1.684 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 1.684 /usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake:116 (CMAKE_DETERMINE_COMPILER_ID) #52 1.684 CMakeLists.txt:5 (project) #52 1.684 #52 1.684 #52 1.969 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 1.969 list sub-command REMOVE_ITEM requires two or more arguments. #52 1.969 Call Stack (most recent call first): #52 1.969 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 1.969 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 1.969 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 1.969 /usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake:116 (CMAKE_DETERMINE_COMPILER_ID) #52 1.969 CMakeLists.txt:5 (project) #52 1.969 #52 1.970 #52 2.258 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 2.258 list sub-command REMOVE_ITEM requires two or more arguments. #52 2.258 Call Stack (most recent call first): #52 2.258 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 2.258 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 2.258 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 2.258 /usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake:116 (CMAKE_DETERMINE_COMPILER_ID) #52 2.258 CMakeLists.txt:5 (project) #52 2.258 #52 2.258 #52 2.550 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 2.550 list sub-command REMOVE_ITEM requires two or more arguments. #52 2.550 Call Stack (most recent call first): #52 2.550 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 2.550 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 2.550 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 2.550 /usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake:116 (CMAKE_DETERMINE_COMPILER_ID) #52 2.550 CMakeLists.txt:5 (project) #52 2.550 #52 2.550 #52 2.847 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 2.847 list sub-command REMOVE_ITEM requires two or more arguments. #52 2.847 Call Stack (most recent call first): #52 2.847 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 2.847 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 2.847 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 2.847 /usr/share/cmake-3.16/Modules/CMakeDetermineCCompiler.cmake:116 (CMAKE_DETERMINE_COMPILER_ID) #52 2.847 CMakeLists.txt:5 (project) #52 2.847 #52 2.847 #52 3.030 -- The C compiler identification is unknown #52 3.072 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 3.072 list sub-command REMOVE_ITEM requires two or more arguments. #52 3.072 Call Stack (most recent call first): #52 3.072 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 3.072 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 3.072 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 3.072 /usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake:111 (CMAKE_DETERMINE_COMPILER_ID) #52 3.072 CMakeLists.txt:5 (project) #52 3.072 #52 3.072 #52 3.422 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 3.422 list sub-command REMOVE_ITEM requires two or more arguments. #52 3.422 Call Stack (most recent call first): #52 3.422 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 3.422 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 3.422 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 3.422 /usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake:111 (CMAKE_DETERMINE_COMPILER_ID) #52 3.422 CMakeLists.txt:5 (project) #52 3.422 #52 3.422 #52 3.772 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 3.772 list sub-command REMOVE_ITEM requires two or more arguments. #52 3.772 Call Stack (most recent call first): #52 3.772 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 3.772 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 3.772 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 3.772 /usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake:111 (CMAKE_DETERMINE_COMPILER_ID) #52 3.772 CMakeLists.txt:5 (project) #52 3.772 #52 3.772 #52 3.833 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 3.833 list sub-command REMOVE_ITEM requires two or more arguments. #52 3.833 Call Stack (most recent call first): #52 3.833 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 3.833 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 3.833 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 3.833 /usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake:111 (CMAKE_DETERMINE_COMPILER_ID) #52 3.833 CMakeLists.txt:5 (project) #52 3.833 #52 3.833 #52 3.893 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 3.893 list sub-command REMOVE_ITEM requires two or more arguments. #52 3.893 Call Stack (most recent call first): #52 3.893 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 3.893 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 3.893 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 3.893 /usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake:111 (CMAKE_DETERMINE_COMPILER_ID) #52 3.893 CMakeLists.txt:5 (project) #52 3.893 #52 3.894 #52 4.004 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 4.004 list sub-command REMOVE_ITEM requires two or more arguments. #52 4.004 Call Stack (most recent call first): #52 4.004 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 4.004 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 4.004 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 4.004 /usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake:111 (CMAKE_DETERMINE_COMPILER_ID) #52 4.004 CMakeLists.txt:5 (project) #52 4.004 #52 4.004 #52 4.348 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 4.348 list sub-command REMOVE_ITEM requires two or more arguments. #52 4.348 Call Stack (most recent call first): #52 4.348 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 4.348 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 4.348 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 4.348 /usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake:111 (CMAKE_DETERMINE_COMPILER_ID) #52 4.348 CMakeLists.txt:5 (project) #52 4.348 #52 4.348 #52 4.712 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 4.712 list sub-command REMOVE_ITEM requires two or more arguments. #52 4.712 Call Stack (most recent call first): #52 4.712 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 4.712 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 4.712 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 4.712 /usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake:111 (CMAKE_DETERMINE_COMPILER_ID) #52 4.712 CMakeLists.txt:5 (project) #52 4.712 #52 4.713 #52 4.788 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 4.788 list sub-command REMOVE_ITEM requires two or more arguments. #52 4.788 Call Stack (most recent call first): #52 4.788 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 4.788 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 4.788 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 4.788 /usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake:111 (CMAKE_DETERMINE_COMPILER_ID) #52 4.788 CMakeLists.txt:5 (project) #52 4.788 #52 4.788 #52 4.854 CMake Error at /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list): #52 4.854 list sub-command REMOVE_ITEM requires two or more arguments. #52 4.854 Call Stack (most recent call first): #52 4.854 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:211 (compiler_id_detection) #52 4.854 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:230 (CMAKE_DETERMINE_COMPILER_ID_WRITE) #52 4.854 /usr/share/cmake-3.16/Modules/CMakeDetermineCompilerId.cmake:32 (CMAKE_DETERMINE_COMPILER_ID_BUILD) #52 4.854 /usr/share/cmake-3.16/Modules/CMakeDetermineCXXCompiler.cmake:111 (CMAKE_DETERMINE_COMPILER_ID) #52 4.854 CMakeLists.txt:5 (project) #52 4.854 #52 4.855 #52 5.041 -- The CXX compiler identification is unknown #52 5.094 -- Check for working C compiler: /usr/bin/cc #52 6.358 -- Check for working C compiler: /usr/bin/cc -- works #52 6.366 -- Detecting C compiler ABI info #52 7.539 -- Detecting C compiler ABI info - done #52 7.569 -- Check for working CXX compiler: /usr/bin/c++ #52 8.810 -- Check for working CXX compiler: /usr/bin/c++ -- works #52 8.825 -- Detecting CXX compiler ABI info #52 10.12 -- Detecting CXX compiler ABI info - done #52 10.13 -- Downloading conan.cmake from https://github.com/conan-io/cmake-conan #52 11.08 -- Conan: checking conan executable #52 11.10 -- Conan: Found program /usr/local/bin/conan #52 15.81 -- Conan: Version found Conan version 1.24.1 #52 15.81 #52 15.81 -- Conan: Adding bincrafters remote repository (https://api.bintray.com/conan/bincrafters/public-conan) #52 19.37 WARN: Remotes registry file missing, creating default one in /root/.conan/remotes.json #52 19.51 -- Conan: Automatic detection of conan settings from cmake #52 19.52 CMake Error at build/conan.cmake:127 (if): #52 19.52 if given arguments: #52 19.52 #52 19.52 "STREQUAL" "GNU" #52 19.52 #52 19.52 Unknown arguments specified #52 19.52 Call Stack (most recent call first): #52 19.52 build/conan.cmake:496 (conan_cmake_settings) #52 19.52 cmake/NmosCppConan.cmake:19 (conan_cmake_run) #52 19.52 CMakeLists.txt:13 (include) #52 19.52 #52 19.52 #52 19.53 -- Configuring incomplete, errors occurred! #52 19.53 See also "/home/nmos-cpp/Development/build/CMakeFiles/CMakeOutput.log". #52 19.53 See also "/home/nmos-cpp/Development/build/CMakeFiles/CMakeError.log".
failed
to solve: rpc error: code = Unknown desc = executor failed running [/bin/sh -c mkdir /home/nmos-cpp/Development/build && cd /home/nmos-cpp/Development/build && cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE:STRING="Release" -DCMAKE_CONFIGURATION_TYPES:STRING="Release" -DCXXFLAGS:STRING="-Os" -build /home/nmos-cpp/Development/build .. && if [ -n "$makemt" ]; then echo "Making multi-threaded with $makemt jobs"; make -j$makemt; else echo "Making single-threaded"; make; fi]: buildkit-runc did not terminate successfully make: *** [Makefile:18: buildx] Error 1
I don't think this issue is Conan related, looks very similar to this one: https://gitlab.kitware.com/cmake/cmake/-/issues/20568
Yes, I agree. My issue does appear to be very similar to https://gitlab.kitware.com/cmake/cmake/-/issues/20568
I have commented on this issue and provided full logs etc. Let's see where it runs to... Thanks
Further digging into this it appears an issue with glibc...
Building using Bionic means a glibc version < 2.28, Focal is >2.28 - It appears the READDIR is returning NULL due to a 32-bit / 64-bit filesystem mapping issue.
https://bugs.launchpad.net/qemu/+bug/1805913
Not sure yet if there is easy way round this bug/issue?
Apparently resolved by https://gitlab.kitware.com/cmake/cmake/-/merge_requests/5258.