Skip to content

Commit e5988ab

Browse files
edmooringarnopo
authored andcommitted
CMake: Drop deprecated CMAKE_FORCE_*_COMPILER directives.
Building OpenAMP for standalone ARM R5, the following warning occurs: CMake Deprecation Warning at /usr/share/cmake-3.16/Modules/CMakeForceCompiler.cmake:75 (message): The CMAKE_FORCE_C_COMPILER macro is deprecated. Instead just set CMAKE_C_COMPILER and allow CMake to identify the compiler. Call Stack (most recent call first): cmake/platforms/cross_generic_gcc.cmake:5 (CMAKE_FORCE_C_COMPILER) /home/mooring/build-oa/toolchain.r5-oa.sa:18 (include) /usr/share/cmake-3.16/Modules/CMakeDetermineSystem.cmake:93 (include) CMakeLists.txt:19 (project) Follow the suggestions in the above error message, and add CMAKE_TRY_COMPILE_TARGET_TYPE = STATIC LIBRARY, which makes try_compile() not try to link the cross-compiled binary. This is necessary because the arm-none-eabi toolchain libgcc doesn't have an implementation of _exit(), leaving that to the BSP. This results in a CMake error because it can't build the test executable. Signed-off-by: Ed Mooring <ed.mooring@gmail.com>
1 parent 9fdadd0 commit e5988ab

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

cmake/platforms/cross_generic_gcc.cmake

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
set (CMAKE_SYSTEM_NAME "Generic" CACHE STRING "")
22

3-
include (CMakeForceCompiler)
4-
5-
CMAKE_FORCE_C_COMPILER ("${CROSS_PREFIX}gcc" GNU)
6-
CMAKE_FORCE_CXX_COMPILER ("${CROSS_PREFIX}g++" GNU)
3+
set (CMAKE_C_COMPILER "${CROSS_PREFIX}gcc")
4+
set (CMAKE_CXX_COMPILER "${CROSS_PREFIX}g++")
5+
# _exit is in the BSP rather than in libgcc, leaving this out
6+
# causes errors in try_compile on ARM generic.
7+
set (CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
78

89
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER CACHE STRING "")
910
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER CACHE STRING "")

0 commit comments

Comments
 (0)