Good day. Trying to build first test and run on qemu. Cmake failing to compile the test program. Does this with different versions of cross compile. Can someone point me in the right direction of where to start looking. thx Thad localhost build-arm]# ../init-build.sh -DCROSS_COMPILER_PREFIX=arm-none-eabi- -DPLATFORM=kzm -- The C compiler identification is GNU 7.3.1 -- The CXX compiler identification is GNU 7.3.1 -- Check for working C compiler: /opt/arm/bin/arm-none-eabi-gcc -- Check for working C compiler: /opt/arm/bin/arm-none-eabi-gcc -- 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: /opt/arm/bin/arm-none-eabi-g++ -- Check for working CXX compiler: /opt/arm/bin/arm-none-eabi-g++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- The ASM compiler identification is GNU -- Found assembler: /opt/arm/bin/arm-none-eabi-gcc -- Performing test HARD_FLOAT with flags -mfloat-abi=hard -- Test HARD_FLOAT FAILED -- Performing test SOFTFP_FLOAT with flags -mfloat-abi=softfp -- Test SOFTFP_FLOAT FAILED CMake Warning at tools/seL4/cmake-tool/flags.cmake:123 (message): Kernel supports hardware floating point but toolchain does not Call Stack (most recent call first): tools/seL4/cmake-tool/base.cmake:58 (include) tools/seL4/cmake-tool/all.cmake:16 (include) CMakeLists.txt:21 (include) -- Configuring done -- Generating done -- Build files have been written to: /home/maddthad/seL4test/build-arm -- Performing test SOFT_FLOAT with flags -mfloat-abi=soft -- Test SOFT_FLOAT FAILED CMake Error at tools/seL4/cmake-tool/flags.cmake:135 (message): Kernel does not support hardware floating point but toolchain cannot build software floating point Call Stack (most recent call first): tools/seL4/cmake-tool/base.cmake:58 (include) tools/seL4/cmake-tool/all.cmake:16 (include) CMakeLists.txt:21 (include) -- Configuring incomplete, errors occurred! See also "/home/maddthad/seL4test/build-arm/CMakeFiles/CMakeOutput.log". See also "/home/maddthad/seL4test/build-arm/CMakeFiles/CMakeError.log". CMakeError.log: compiling the C compiler identification source file "CMakeCCompilerId.c" failed. Compiler: /opt/arm/bin/arm-none-eabi-gcc Build flags: Id flags: The output was: 1 /opt/gcc-arm-none-eabi-7-2018-q2-update/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-exit.o): In function `exit': exit.c:(.text.exit+0x2c): undefined reference to `_exit' collect2: error: ld returned 1 exit status Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" failed. Compiler: /opt/arm/bin/arm-none-eabi-g++ Build flags: Id flags: The output was: 1 /opt/gcc-arm-none-eabi-7-2018-q2-update/bin/../lib/gcc/arm-none-eabi/7.3.1/../../../../arm-none-eabi/lib/libc.a(lib_a-exit.o): In function `exit': exit.c:(.text.exit+0x2c): undefined reference to `_exit' collect2: error: ld returned 1 exit status
Hey Thad, As far as I can tell, the default arm-none-eabi cross toolchain doesn't support software floating point, so that's what's producing this error. I don't know what distribution you're using, but in the Ubuntu package repository, the arm-linux-gnueabihf cross toolchain does support software floating point: $ sudo apt-get install gcc-arm-linux-gnueabihf $ arm-linux-gnueabihf-gcc -print-multi-lib .; sf;@mfloat-abi=soft $ Could you either try this toolchain (if it's available in your distribution's package manager), or else find out which toolchain your distro supplies that supports soft-float and try that? -- Kofi Doku Atuah Kernel engineer DATA61 | CSIRO
participants (2)
-
Kofidoku.Atuah@data61.csiro.au
-
Thad Seeberger