Summary
I didn't manage to have a working mips64 toolchain file using the codespace toolchain...
Any help will be appreciated !
Setup
Here my setup, extracted from https://github.com/Mizux/cmake-cpp/blob/main/tools/cross_compile.sh
Get the toolchain:
local -r DATE=2019.02-04
local -r CODESCAPE_URL=https://codescape.mips.com/components/toolchain/${DATE}/Codescape.GNU.Tools.Package.${DATE}.for.MIPS.IMG.Linux.CentOS-6.x86_64.tar.gz
wget "${CODESCAPE_URL}"
ref:
Generated toolchain file toolchain_mips64.cmake
:
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR mips64)
set(CMAKE_SYSROOT /.../mips-img-linux-gnu/2019.02-04/sysroot/mips-r6-hard)
set(CMAKE_STAGING_PREFIX /.../mips-img-linux-gnu/2019.02-04/sysroot/mips-r6-hard-stage)
set(tools /.../mips-img-linux-gnu/2019.02-04)
set(CMAKE_C_COMPILER ${tools}/bin/mips-img-linux-gnu-gcc)
set(CMAKE_C_COMPILER_ARG "-EB -mabi=64")
set(CMAKE_CXX_COMPILER ${tools}/bin/mips-img-linux-gnu-g++)
#set(CMAKE_CXX_FLAGS "-EB -mabi=64")
set(CMAKE_CXX_FLAGS "-EB -mabi=64 -L/.../mips-img-linux-gnu/2019.02-04/sysroot/mips-r6-hard/usr/lib64")
set(CMAKE_FIND_ROOT_PATH /.../mips-img-linux-gnu/2019.02-04)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
Protocol
cmake -S. -Bbuild -G 'Unix Makefiles' -DCMAKE_TOOLCHAIN_FILE=/.../toolchain_mips64.cmake
note: If using my project cmake-cpp you can use TARGET=mips64 ./tools/cross_compile.sh build
Observed
-- The CXX compiler identification is GNU 7.4.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - failed
-- Check for working CXX compiler: /.../mips-img-linux-gnu/2019.02-04/bin/mips-img-linux-gnu-g++
-- Check for working CXX compiler: /.../mips-img-linux-gnu/2019.02-04/bin/mips-img-linux-gnu-g++ - broken
CMake Error at /usr/share/cmake-3.19/Modules/CMakeTestCXXCompiler.cmake:59 (message):
The C++ compiler
"/.../mips-img-linux-gnu/2019.02-04/bin/mips-img-linux-gnu-g++"
is not able to compile a simple test program.
[...]
Linking CXX executable cmTC_0d3cc
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0d3cc.dir/link.txt --verbose=1
/.../mips-img-linux-gnu/2019.02-04/bin/mips-img-linux-gnu-g++ --sysroot=/.../mips-img-linux-gnu/2019.02-04/sysroot/mips-r6-hard -EB -mabi=64 -L/.../mips-img-linux-gnu/2019.02-04/sysroot/mips-r6-hard/usr/lib64 CMakeFiles/cmTC_0d3cc.dir/testCXXCompiler.cxx.o -o cmTC_0d3cc
/.../mips-img-linux-gnu/2019.02-04/bin/../lib/gcc/mips-img-linux-gnu/7.4.0/../../../../mips-img-linux-gnu/bin/ld: cannot find crt1.o: No such file or directory
/.../mips-img-linux-gnu/2019.02-04/bin/../lib/gcc/mips-img-linux-gnu/7.4.0/../../../../mips-img-linux-gnu/bin/ld: cannot find crti.o: No such file or directory
collect2: error: ld returned 1 exit status
make[1]: *** [CMakeFiles/cmTC_0d3cc.dir/build.make:106: cmTC_0d3cc] Error 1
FYI
find . -iname "crt1.o"
./mips-img-linux-gnu/2019.02-04/sysroot/mipsel-r6-soft/usr/lib/crt1.o
./mips-img-linux-gnu/2019.02-04/sysroot/micromips-r6-hard/usr/lib/crt1.o
./mips-img-linux-gnu/2019.02-04/sysroot/mips-r6-hard/usr/lib64/crt1.o
./mips-img-linux-gnu/2019.02-04/sysroot/mips-r6-hard/usr/lib32/crt1.o
./mips-img-linux-gnu/2019.02-04/sysroot/mips-r6-hard/usr/lib/crt1.o
./mips-img-linux-gnu/2019.02-04/sysroot/micromips-r6-soft/usr/lib/crt1.o
./mips-img-linux-gnu/2019.02-04/sysroot/mips-r6-soft/usr/lib64/crt1.o
./mips-img-linux-gnu/2019.02-04/sysroot/mips-r6-soft/usr/lib32/crt1.o
./mips-img-linux-gnu/2019.02-04/sysroot/mips-r6-soft/usr/lib/crt1.o
./mips-img-linux-gnu/2019.02-04/sysroot/micromipsel-r6-hard/usr/lib/crt1.o
./mips-img-linux-gnu/2019.02-04/sysroot/mipsel-r6-hard/usr/lib64/crt1.o
./mips-img-linux-gnu/2019.02-04/sysroot/mipsel-r6-hard/usr/lib32/crt1.o
./mips-img-linux-gnu/2019.02-04/sysroot/mipsel-r6-hard/usr/lib/crt1.o
./mips-img-linux-gnu/2019.02-04/sysroot/micromipsel-r6-soft/usr/lib/crt1.o
note: That's why I tried to add a -L/.../mips-r6-hard/usr/lib64/
without success...
Expected
Configure pass i.e. CMake manage to build a "simple" CXX program...
question from:
https://stackoverflow.com/questions/65889221/cmake-mips64-cross-toolchain-issue 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…