Public bug reported: When cross-compiling for a STM32 I've found that no compiler flags are passed during compiler testing on several releases of Ubuntu but I have no issues on Fedora. In both cases build flags are shown in the log but on Ubuntu they are not used... Since it errors out on Ubuntu I have both CMakeOutput.log and CmakeError.log:
CmakeOutput.log: The target system is: Generic - 1 - arm The host system is: Linux - 4.15.0-32-generic - x86_64 Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. Compiler: /usr/bin/arm-none-eabi-gcc Build flags: ;-Wall;-std=gnu11;-mlittle-endian;-mthumb;-mthumb-interwork;-nostartfiles;-mcpu=cortex-m4;-fsingle-precision-constant;-Wdouble-promotion;-mfpu=fpv4-sp-d16;-mfloat-abi=hard;-D__FPU_PRESENT=1;-D__FPU_USED=1;--specs=nosys.specs Id flags: The output was: 0 /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000008000 Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" The C compiler identification is GNU, found in "/home/richard/build/stm32/CMakeFiles/3.10.2/CompilerIdC/a.out" CmakeError.log: Determining if the C compiler works failed with the following output: Change Dir: /home/richard/build/stm32/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/make" "cmTC_e5a38/fast" /usr/bin/make -f CMakeFiles/cmTC_e5a38.dir/build.make CMakeFiles/cmTC_e5a38.dir/build make[1]: Entering directory '/home/richard/build/stm32/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_e5a38.dir/testCCompiler.c.obj /usr/bin/arm-none-eabi-gcc -o CMakeFiles/cmTC_e5a38.dir/testCCompiler.c.obj -c /home/richard/build/stm32/CMakeFiles/CMakeTmp/testCCompiler.c Linking C executable cmTC_e5a38 /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e5a38.dir/link.txt --verbose=1 /usr/bin/arm-none-eabi-gcc CMakeFiles/cmTC_e5a38.dir/testCCompiler.c.obj -o cmTC_e5a38 /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/libc.a(lib_a-exit.o): In function `exit': /build/newlib-8gJlYR/newlib-2.4.0.20160527/build/arm-none-eabi/newlib/libc/stdlib/../../../../../newlib/libc/stdlib/exit.c:70: undefined reference to `_exit' collect2: error: ld returned 1 exit status CMakeFiles/cmTC_e5a38.dir/build.make:97: recipe for target 'cmTC_e5a38' failed make[1]: *** [cmTC_e5a38] Error 1 make[1]: Leaving directory '/home/richard/build/stm32/CMakeFiles/CMakeTmp' Makefile:126: recipe for target 'cmTC_e5a38/fast' failed make: *** [cmTC_e5a38/fast] Error 2 On Fedora the build flags are passed to the compiler during compiler testing: The target system is: Generic - - arm The host system is: Linux - 4.17.12-200.fc28.x86_64 - x86_64 Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. Compiler: /usr/lib64/ccache/arm-none-eabi-gcc Build flags: ;-Wall;-std=gnu11;-mlittle-endian;-mthumb;-mthumb-interwork;-nostartfiles;-mcpu=cortex-m4;-fsingle-precision-constant;-Wdouble-promotion;-mfpu=fpv4-sp-d16;-mfloat-abi=hard;-D__FPU_PRESENT=1;-D__FPU_USED=1;--specs=nosys.specs Id flags: The output was: 0 /usr/lib/gcc/arm-none-eabi/7.1.0/../../../../arm-none-eabi/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000008000 Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" The C compiler identification is GNU, found in "/home/build/build/stm32/CMakeFiles/3.11.2/CompilerIdC/a.out" Determining if the C compiler works passed with the following output: Change Dir: /home/build/build/stm32/CMakeFiles/CMakeTmp Run Build Command:"/usr/bin/gmake" "cmTC_e050e/fast" /usr/bin/gmake -f CMakeFiles/cmTC_e050e.dir/build.make CMakeFiles/cmTC_e050e.dir/build gmake[1]: Entering directory '/home/build/build/stm32/CMakeFiles/CMakeTmp' Building C object CMakeFiles/cmTC_e050e.dir/testCCompiler.c.obj /usr/lib64/ccache/arm-none-eabi-gcc -Wall -std=gnu11 -mlittle-endian -mthumb -mthumb-interwork -nostartfiles -mcpu=cortex-m4 -fsingle-precision-constant -Wdouble-promotion -mfpu=fpv4-sp-d16 -mfloat-abi=hard -D__FPU_PRESENT=1 -D__FPU_USED=1 --specs=nosys.specs -o CMakeFiles/cmTC_e050e.dir/testCCompiler.c.obj -c /home/build/build/stm32/CMakeFiles/CMakeTmp/testCCompiler.c Linking C executable cmTC_e050e /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e050e.dir/link.txt --verbose=1 /usr/lib64/ccache/arm-none-eabi-gcc -Wall -std=gnu11 -mlittle-endian -mthumb -mthumb-interwork -nostartfiles -mcpu=cortex-m4 -fsingle-precision-constant -Wdouble-promotion -mfpu=fpv4-sp-d16 -mfloat-abi=hard -D__FPU_PRESENT=1 -D__FPU_USED=1 --specs=nosys.specs CMakeFiles/cmTC_e050e.dir/testCCompiler.c.obj -o cmTC_e050e /usr/lib/gcc/arm-none-eabi/7.1.0/../../../../arm-none-eabi/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000008000 gmake[1]: Leaving directory '/home/build/build/stm32/CMakeFiles/CMakeTmp' I have reproduced this on Ubuntu 18 but have reports from other developers on version 14 and 17. Cmake version on Ubuntu Bionic: 3.10.2 on Fedora 28: 3.11.2 ** Affects: cmake (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Kubuntu Bugs, which is subscribed to cmake in Ubuntu. https://bugs.launchpad.net/bugs/1787723 Title: CMake fails to apply compiler flags during compiler testing To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/cmake/+bug/1787723/+subscriptions -- kubuntu-bugs mailing list kubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/kubuntu-bugs