On Wednesday, June 3, 2020 4:58:08 PM EDT Håvard Flaget Aasen wrote:
> The beginning of the error message is:
> CMake Error at
> /usr/share/cmake-3.16/Modules/CMakeCompilerIdDetection.cmake:26 (list):
> list sub-command REMOVE_ITEM requires two or more arguments.
That part of the module says
list(REMOVE_ITEM lang_files ${nonlang_files})
so the error probably has to do with ${nonlang_files} being empty. I reproduced
on mipsel emulated with qemu-user-static (a wonderful gem [1]), I didn't try
this on real hardware.
It looks like the part to define nonlang_files immediately preceding is
file(GLOB nonlang_files
"${CMAKE_ROOT}/Modules/Compiler/*-${nonlang}-DetermineCompiler.cmake")
Rolling back to CMake to 3.15.4 was the same, but CMake 3.13.2 worked. So I
looked as to what the difference would be between those paths and got files.diff.
I've attached the diff on CMakeCompilerIdDetection.cmake. Both of these
together seem to be ARM and MIPS-specific, so are probably related to the issue
somehow.
I'm CC'ing the CMake folks should they have a clue.
[1] https://wiki.debian.org/QemuUserEmulation--- CMakeCompilerIdDetection-3.13.cmake 2020-06-03 22:16:34.014977295 +0000
+++ CMakeCompilerIdDetection-3.15.cmake 2020-06-03 22:17:14.334981254 +0000
@@ -57,12 +57,14 @@
HP
Compaq
zOS
+ XLClang
XL
VisualAge
PGI
Cray
TI
Fujitsu
+ GHS
)
if (lang STREQUAL C)
list(APPEND ordered_compilers
@@ -72,21 +74,20 @@
endif()
list(APPEND ordered_compilers
SCO
+ ARMCC
AppleClang
+ ARMClang
Clang
GNU
MSVC
ADSP
IAR
- ARMCC
)
if (lang STREQUAL C)
list(APPEND ordered_compilers
SDCC
)
endif()
- list(APPEND ordered_compilers
- MIPSpro)
#Currently the only CUDA compilers are NVIDIA
if(lang STREQUAL CUDA)
@@ -97,6 +98,8 @@
foreach(Id ${ordered_compilers})
string(APPEND CMAKE_${lang}_COMPILER_ID_CONTENT "# define ${CID_PREFIX}COMPILER_IS_${Id} 0\n")
endforeach()
+ # Hard-code definitions for compilers that are no longer supported.
+ string(APPEND CMAKE_${lang}_COMPILER_ID_CONTENT "# define ${CID_PREFIX}COMPILER_IS_MIPSpro 0\n")
endif()
set(pp_if "#if")
@@ -135,9 +138,6 @@
/* These compilers are either not known or too old to define an
identification macro. Try to identify the platform and guess that
it is the native compiler. */
-#elif defined(__sgi)
-# define ${CID_PREFIX}COMPILER_ID \"MIPSpro\"
-
#elif defined(__hpux) || defined(__hpua)
# define ${CID_PREFIX}COMPILER_ID \"HP\"
--- $(ls /usr/share/cmake-3.16/Modules/Compiler/ | grep DetermineCompiler) 2020-06-03 22:30:47.193727765 +0000 +++ $(ls /usr/share/cmake-3.13/Modules/Compiler/ | grep DetermineCompiler) 2020-06-03 22:30:16.825801414 +0000 @@ -1,5 +1,6 @@ ADSP-DetermineCompiler.cmake ARMCC-DetermineCompiler.cmake +ARMClang-DetermineCompiler.cmake AppleClang-DetermineCompiler.cmake Borland-DetermineCompiler.cmake Bruce-C-DetermineCompiler.cmake @@ -18,7 +19,6 @@ HP-CXX-DetermineCompiler.cmake IAR-DetermineCompiler.cmake Intel-DetermineCompiler.cmake -MIPSpro-DetermineCompiler.cmake MSVC-DetermineCompiler.cmake NVIDIA-DetermineCompiler.cmake OpenWatcom-DetermineCompiler.cmake @@ -35,5 +35,7 @@ Watcom-DetermineCompiler.cmake XL-C-DetermineCompiler.cmake XL-CXX-DetermineCompiler.cmake +XLClang-C-DetermineCompiler.cmake +XLClang-CXX-DetermineCompiler.cmake zOS-C-DetermineCompiler.cmake zOS-CXX-DetermineCompiler.cmake
Attachment:
signature.asc
Description: This is a digitally signed message part.