diff --git a/cmake/Zephyr-sdkConfig.cmake b/cmake/Zephyr-sdkConfig.cmake index e9662d5e..8104c43f 100644 --- a/cmake/Zephyr-sdkConfig.cmake +++ b/cmake/Zephyr-sdkConfig.cmake @@ -13,7 +13,11 @@ get_filename_component(ZEPHYR_SDK_INSTALL_DIR ${CMAKE_CURRENT_LIST_DIR}/.. ABSOL set(ZEPHYR_SDK_INSTALL_DIR ${ZEPHYR_SDK_INSTALL_DIR}) if(NOT DEFINED ZEPHYR_TOOLCHAIN_VARIANT) - set(ZEPHYR_TOOLCHAIN_VARIANT "zephyr/gnu") + if(DEFINED ZEPHYR_TOOLCHAIN_VARIANT_COMPILER_SUPPORT) + set(ZEPHYR_TOOLCHAIN_VARIANT "zephyr/gnu") + else() + set(ZEPHYR_TOOLCHAIN_VARIANT "zephyr") + endif() endif() # Those are CMake package parameters. diff --git a/cmake/zephyr/Kconfig b/cmake/zephyr/Kconfig index 96db3576..16341bf2 100644 --- a/cmake/zephyr/Kconfig +++ b/cmake/zephyr/Kconfig @@ -24,7 +24,6 @@ config PICOLIBC_DEFAULT Zephyr SDK >=0.17.1 always uses Picolibc # libstdc++ is built without exception support in -Os mode -# gcc 14.3 has bugs compiling with -Os on riscv choice COMPILER_OPTIMIZATIONS - default SPEED_OPTIMIZATIONS if ("$(TOOLCHAIN_VARIANT_COMPILER)" = "gnu") && CPP_EXCEPTIONS + default SPEED_OPTIMIZATIONS if ("$(TOOLCHAIN_VARIANT_COMPILER)" != "llvm") && CPP_EXCEPTIONS endchoice diff --git a/scripts/template_setup_posix b/scripts/template_setup_posix index d680bf85..036e27d0 100644 --- a/scripts/template_setup_posix +++ b/scripts/template_setup_posix @@ -69,6 +69,7 @@ usage() echo " all Install all GNU toolchains" echo " -l Install LLVM toolchain" echo " -h Install host tools" + echo " -o Create symbolic links matching the old SDK layout for old Zephyr (< 4.3) bisectability" echo " -c Register Zephyr SDK CMake package" echo echo "Supported GNU Toolchains:" @@ -117,6 +118,8 @@ user_prompt() # Environment Configurations ask_yn "Register Zephyr SDK CMake package" && do_cmake_pkg="y" + ask_yn "Create symbolic links for old Zephyr bisectability" && do_old_zephyr="y" + echo } @@ -159,6 +162,9 @@ else -c) do_cmake_pkg="y" ;; + -o) + do_old_zephyr="y" + ;; '-?') usage exit 0 @@ -301,6 +307,15 @@ if [ "${do_cmake_pkg}" = "y" ]; then echo fi +# Create links for old Zephyr versions +if [ "${do_old_zephyr}" = "y" ]; then + echo "Creating links for old Zephyr bisectability ..." + ln -sr gnu/* . || assert_rc "ERROR: Creating toolchain links" 50 + ln -sr cmake/zephyr/gnu/* cmake/zephyr || assert_rc "ERROR: Creating cmake links" 50 + ln -sr hosttools/* . || assert_rc "ERROR: Creating hosttools links" 50 + echo +fi + echo "All done." if [ "${interactive}" = "y" ]; then read -n 1 -s -r -p "Press any key to exit ..."