From 0c63eeae679bbd143ee3fd776b525634169d246d Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 1 Jun 2025 10:35:31 -0700 Subject: [PATCH] Remove gnu subdirectory Get rid of the extra subdirectory for the gnu toolchains and let them sit at the same level as the llvm toolchain. This avoids making the SDK incompatible with previous versions. Signed-off-by: Keith Packard --- .github/workflows/ci.yml | 11 ++++++----- cmake/zephyr/gnu/generic.cmake | 2 +- cmake/zephyr/gnu/target.cmake | 4 ++-- scripts/template_setup_posix | 8 ++------ scripts/template_setup_win | 8 ++------ 5 files changed, 13 insertions(+), 20 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 40374e25..e9d46351 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1292,7 +1292,7 @@ jobs: fi # Create bundle directory - mkdir ${ARCHIVE_DIR} + mkdir -p ${ARCHIVE_DIR} pushd ${ARCHIVE_DIR} # Stage version file @@ -1351,8 +1351,7 @@ jobs: fi # Stage GNU toolchains - mkdir ${ARCHIVE_DIR}/gnu - pushd ${ARCHIVE_DIR}/gnu + pushd ${ARCHIVE_DIR} ## Generate target list from the workflow matrix TARGETS=$(echo '${{ needs.setup.outputs.targets }}' | jq -cr '.[]') @@ -1381,8 +1380,10 @@ jobs: 7z a -t7z -l ${ARCHIVE_NAME}_gnu.${EXT} ${ARCHIVE_DIR} fi - # Unstage GNU toolchain directory - rm -rf ${ARCHIVE_DIR}/gnu + # Unstage GNU toolchain directories + for TARGET in ${TARGETS}; do + rm -rf ${ARCHIVE_DIR}/${TARGET} + done # Stage LLVM toolchains pushd ${ARCHIVE_DIR} diff --git a/cmake/zephyr/gnu/generic.cmake b/cmake/zephyr/gnu/generic.cmake index 21f423fb..4b889cce 100644 --- a/cmake/zephyr/gnu/generic.cmake +++ b/cmake/zephyr/gnu/generic.cmake @@ -1,6 +1,6 @@ # SPDX-License-Identifier: Apache-2.0 -set(TOOLCHAIN_HOME ${ZEPHYR_SDK_INSTALL_DIR}/gnu) +set(TOOLCHAIN_HOME ${ZEPHYR_SDK_INSTALL_DIR}) set(COMPILER gcc) set(LINKER ld) diff --git a/cmake/zephyr/gnu/target.cmake b/cmake/zephyr/gnu/target.cmake index b080515f..7246f7a4 100644 --- a/cmake/zephyr/gnu/target.cmake +++ b/cmake/zephyr/gnu/target.cmake @@ -26,8 +26,8 @@ set(CROSS_COMPILE_TARGET_sparc sparc-zephyr-elf) set(CROSS_COMPILE_TARGET ${CROSS_COMPILE_TARGET_${ARCH}}) set(SYSROOT_TARGET ${CROSS_COMPILE_TARGET}) -set(SYSROOT_DIR ${ZEPHYR_SDK_INSTALL_DIR}/gnu/${SYSROOT_TARGET}/${SYSROOT_TARGET}) -set(CROSS_COMPILE ${ZEPHYR_SDK_INSTALL_DIR}/gnu/${CROSS_COMPILE_TARGET}/bin/${CROSS_COMPILE_TARGET}-) +set(SYSROOT_DIR ${ZEPHYR_SDK_INSTALL_DIR}/${SYSROOT_TARGET}/${SYSROOT_TARGET}) +set(CROSS_COMPILE ${ZEPHYR_SDK_INSTALL_DIR}/${CROSS_COMPILE_TARGET}/bin/${CROSS_COMPILE_TARGET}-) if("${ARCH}" STREQUAL "x86") if(CONFIG_X86_64) diff --git a/scripts/template_setup_posix b/scripts/template_setup_posix index d680bf85..c0cd009b 100644 --- a/scripts/template_setup_posix +++ b/scripts/template_setup_posix @@ -52,7 +52,7 @@ check_command() check_full_gnu_sdk() { for toolchain in ${gnu_toolchains[@]}; do - if [ ! -d "gnu/${toolchain}" ]; then + if [ ! -d "${toolchain}" ]; then return 1 fi done @@ -100,7 +100,7 @@ user_prompt() inst_gnu_toolchains=(${gnu_toolchains[*]}) else for toolchain in ${gnu_toolchains[@]}; do - if [ ! -d "gnu/${toolchain}" ]; then + if [ ! -d "${toolchain}" ]; then ask_yn "Install '${toolchain}' GNU toolchain" && inst_gnu_toolchains+=("${toolchain}") fi done @@ -217,9 +217,6 @@ fi # Install GNU toolchains if [ "${do_gnu_toolchain}" = "y" ]; then - mkdir -p gnu - pushd gnu - for toolchain in ${inst_gnu_toolchains[@]}; do eval toolchain_filename="${dl_gnu_toolchain_filename}" toolchain_uri="${dl_rel_base}/${toolchain_filename}" @@ -248,7 +245,6 @@ if [ "${do_gnu_toolchain}" = "y" ]; then echo done - popd fi # Install LLVM toolchain diff --git a/scripts/template_setup_win b/scripts/template_setup_win index 02af1d4c..29169687 100644 --- a/scripts/template_setup_win +++ b/scripts/template_setup_win @@ -107,7 +107,7 @@ echo. REM # Check installation type for %%t in (%GNU_TOOLCHAINS%) do ( - if not exist gnu\%%t\ ( + if not exist %%t\ ( set IS_PARTIAL_GNU_SDK=y ) ) @@ -122,7 +122,7 @@ if [!ERRORLEVEL!] equ [1] ( set INST_GNU_TOOLCHAINS=%GNU_TOOLCHAINS% ) else ( for %%t in (%GNU_TOOLCHAINS%) do ( - if not exist gnu\%%t\ ( + if not exist %%t\ ( choice /c:yn /m:"Install '%%t' GNU toolchain" if [!ERRORLEVEL!] equ [1] ( set INST_GNU_TOOLCHAINS=!INST_GNU_TOOLCHAINS! %%t @@ -147,9 +147,6 @@ echo. :process REM # Install GNU toolchains if [%DO_GNU_TOOLCHAIN%] neq [] ( - if not exist gnu\ mkdir gnu - pushd gnu - for %%t in (%INST_GNU_TOOLCHAINS%) do ( set TOOLCHAIN_FILENAME=%DL_GNU_TOOLCHAIN_FILENAME% set TOOLCHAIN_URI=%DL_REL_BASE%/!TOOLCHAIN_FILENAME! @@ -178,7 +175,6 @@ if [%DO_GNU_TOOLCHAIN%] neq [] ( del /q !TOOLCHAIN_FILENAME! ) ) - popd ) REM # Install LLVM toolchain