From 46a5765593cf0cc7ad8785bb277f4f4023e35dbd Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Mon, 2 Aug 2021 16:21:40 +0200 Subject: [PATCH] toolchain magic optional now --- CMakeLists.txt | 8 +++++++ cmake/BBBCrossCompileConfig.cmake | 30 ++++++++++++++------------ cmake/RPiCrossCompileConfig.cmake | 36 ++++++++++++++++--------------- fsfw | 2 +- 4 files changed, 44 insertions(+), 32 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 66e32a7..815cb51 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,10 +20,18 @@ endif() if(TGT_BSP MATCHES "arm/raspberrypi" OR TGT_BSP MATCHES "arm/beagleboneblack") option(LINUX_CROSS_COMPILE "Cross compile for a Linux board" ON) set(FSFW_HAL_ADD_LINUX "Add the FSFW HAL for Linux systems" ON) + option(FSFW_BBB_TOOLCHAIN_FILE_MAGIC + "Perform library magic in toolchain file. Might be removed soon" + OFF + ) endif() if(TGT_BSP MATCHES "arm/raspberrypi") set(FSFW_HAL_ADD_RASPBERRY_PI "Add Raspberry Pi specific HAL files" ON) + option(FSFW_RPI_TOOLCHAIN_FILE_MAGIC + "Perform library magic in toolchain file. Might be removed soon" + OFF + ) endif() # Perform steps like loading toolchain files where applicable. diff --git a/cmake/BBBCrossCompileConfig.cmake b/cmake/BBBCrossCompileConfig.cmake index fcbab88..39ec863 100644 --- a/cmake/BBBCrossCompileConfig.cmake +++ b/cmake/BBBCrossCompileConfig.cmake @@ -68,20 +68,22 @@ set(CMAKE_SYSROOT "${SYSROOT_PATH}") set(CMAKE_SYSTEM_NAME "Linux") set(CMAKE_SYSTEM_PROCESSOR "arm") -# List of library dirs where LD has to look. Pass them directly through gcc. -# LD_LIBRARY_PATH is not evaluated by arm-*-ld -set(LIB_DIRS - "${SYSROOT_PATH}/lib/${MUTLIARCH_FOLDER_NAME}" - "${SYSROOT_PATH}/usr/local/lib" - "${SYSROOT_PATH}/usr/lib/${MUTLIARCH_FOLDER_NAME}" - "${SYSROOT_PATH}/usr/lib" -) -# You can additionally check the linker paths if you add the -# flags ' -Xlinker --verbose' -set(COMMON_FLAGS "-I${SYSROOT_PATH}/usr/include") -foreach(LIB ${LIB_DIRS}) - set(COMMON_FLAGS "${COMMON_FLAGS} -L${LIB} -Wl,-rpath-link,${LIB}") -endforeach() +if(FSFW_BBB_TOOLCHAIN_FILE_MAGIC) + # List of library dirs where LD has to look. Pass them directly through gcc. + # LD_LIBRARY_PATH is not evaluated by arm-*-ld + set(LIB_DIRS + "${SYSROOT_PATH}/lib/${MUTLIARCH_FOLDER_NAME}" + "${SYSROOT_PATH}/usr/local/lib" + "${SYSROOT_PATH}/usr/lib/${MUTLIARCH_FOLDER_NAME}" + "${SYSROOT_PATH}/usr/lib" + ) + # You can additionally check the linker paths if you add the + # flags ' -Xlinker --verbose' + set(COMMON_FLAGS "-I${SYSROOT_PATH}/usr/include") + foreach(LIB ${LIB_DIRS}) + set(COMMON_FLAGS "${COMMON_FLAGS} -L${LIB} -Wl,-rpath-link,${LIB}") + endforeach() +endif() set(CMAKE_C_FLAGS "-march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard ${COMMON_FLAGS}" diff --git a/cmake/RPiCrossCompileConfig.cmake b/cmake/RPiCrossCompileConfig.cmake index 5806af5..80f340a 100644 --- a/cmake/RPiCrossCompileConfig.cmake +++ b/cmake/RPiCrossCompileConfig.cmake @@ -83,23 +83,25 @@ else() set(CMAKE_SYSTEM_PROCESSOR "arm") endif() -# List of library dirs where LD has to look. Pass them directly through gcc. -# LD_LIBRARY_PATH is not evaluated by arm-*-ld -set(LIB_DIRS - "${SYSROOT_PATH}/opt/vc/lib" - "${SYSROOT_PATH}/lib/${MULTIARCH_FOLDER_NAME}" - "${SYSROOT_PATH}/usr/local/lib" - "${SYSROOT_PATH}/usr/lib/${MULTIARCH_FOLDER_NAME}" - "${SYSROOT_PATH}/usr/lib" - "${SYSROOT_PATH}/usr/lib/${MULTIARCH_FOLDER_NAME}/blas" - "${SYSROOT_PATH}/usr/lib/${MULTIARCH_FOLDER_NAME}/lapack" -) -# You can additionally check the linker paths if you add the -# flags ' -Xlinker --verbose' -set(COMMON_FLAGS "-I${SYSROOT_PATH}/usr/include") -foreach(LIB ${LIB_DIRS}) - set(COMMON_FLAGS "${COMMON_FLAGS} -L${LIB} -Wl,-rpath-link,${LIB}") -endforeach() +if(FSFW_RPI_TOOLCHAIN_FILE_MAGIC) + # List of library dirs where LD has to look. Pass them directly through gcc. + # LD_LIBRARY_PATH is not evaluated by arm-*-ld + set(LIB_DIRS + "${SYSROOT_PATH}/opt/vc/lib" + "${SYSROOT_PATH}/lib/${MULTIARCH_FOLDER_NAME}" + "${SYSROOT_PATH}/usr/local/lib" + "${SYSROOT_PATH}/usr/lib/${MULTIARCH_FOLDER_NAME}" + "${SYSROOT_PATH}/usr/lib" + "${SYSROOT_PATH}/usr/lib/${MULTIARCH_FOLDER_NAME}/blas" + "${SYSROOT_PATH}/usr/lib/${MULTIARCH_FOLDER_NAME}/lapack" + ) + # You can additionally check the linker paths if you add the + # flags ' -Xlinker --verbose' + set(COMMON_FLAGS "-I${SYSROOT_PATH}/usr/include") + foreach(LIB ${LIB_DIRS}) + set(COMMON_FLAGS "${COMMON_FLAGS} -L${LIB} -Wl,-rpath-link,${LIB}") + endforeach() +endif() if(RASPBERRY_VERSION VERSION_GREATER 3) set(CMAKE_C_FLAGS diff --git a/fsfw b/fsfw index dee063e..0e5cfcf 160000 --- a/fsfw +++ b/fsfw @@ -1 +1 @@ -Subproject commit dee063e25928f8b24cbd3fc49130d453feb01dd4 +Subproject commit 0e5cfcf28f0183d7286d1160a40dcff2017f7795