Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
c243198
ci: Restructure toolchain build process
stephanosio Oct 20, 2024
63850a1
scripts: Rework POSIX setup script for restructured bundle
stephanosio Oct 20, 2024
1fafc24
scripts: Rework Windows setup script for restructured bundle
stephanosio Oct 20, 2024
9724a5e
cmake: Rework CMake scripts for restructured bundle
stephanosio Oct 21, 2024
538698f
ci: Download host-specific artifacts when building distribution bundle
stephanosio Oct 21, 2024
de4934f
ci: Use 'zephyr-gnu' toolchain variant for testing
stephanosio Oct 21, 2024
d94f833
ci: Run tests with Zephyr collab-sdk-0.18-dev branch
stephanosio Oct 21, 2024
3ab288b
Add LLVM submodule
stephanosio Oct 16, 2024
21aec3a
llvm: Pull Arm LLVM ET 19.1.1 patches
stephanosio Oct 20, 2024
6661d12
scripts: Add initial Zephyr SDK LLVM build script
stephanosio Oct 16, 2024
663f368
ci: Use sdk-build v1.3.4
stephanosio Oct 22, 2024
df0d76f
ci: Add LLVM toolchain build job
stephanosio Oct 22, 2024
9b884b5
ci: Remove obsolete clean-up tasks
stephanosio Oct 23, 2024
ff18667
ci: Remove legacy GitHub-hosted macOS runner setup tasks
stephanosio Oct 23, 2024
343f136
ci: Remove unneeded sudo operations
stephanosio Oct 24, 2024
d268d7a
ci: Use CI image 'main' for running Linux tests
stephanosio Oct 24, 2024
dfdede9
ci: Force Python 3.10 for testing
stephanosio Oct 24, 2024
af0e339
ci: Use sdk-build v1.3.8
stephanosio Oct 23, 2024
42d65d1
ci: Use SDK build image MinGW-w64 installation
stephanosio Oct 23, 2024
261eab0
cmake: Add LLVM toolchain support
stephanosio Oct 24, 2024
a53ede0
cmake: gnu: Set TOOLCHAIN_HAS_GLIBCXX
stephanosio Oct 26, 2024
0897c3f
cmake: llvm: Set TOOLCHAIN_HAS_LIBCXX
stephanosio Oct 26, 2024
f55a6f6
template_setup_posix: Add LLVM toolchain setup option
stephanosio Oct 25, 2024
eb073b8
template_setup_win: Add LLVM toolchain setup option
stephanosio Oct 25, 2024
1fa02ec
ci: Disable LLVM tests on qemu_cortex_a53
stephanosio Oct 25, 2024
e9a0ac3
ci: Disable LLVM tests on mps3/an547
stephanosio Oct 25, 2024
79c618e
ci: Disable LLVM tests on qemu_cortex_m0
stephanosio Oct 25, 2024
0ad33e5
ci: Add test job debug steps
stephanosio Oct 27, 2024
4372d2c
ci: Fix Windows test name
stephanosio Oct 28, 2024
b056183
ci: Skip testing LLVM on Windows
stephanosio Oct 28, 2024
afb2ef2
ci: Disable intel_ace30_ptl testing
stephanosio Oct 29, 2024
e3360f9
Revert "ci: Install [email protected] for macOS"
stephanosio Oct 30, 2024
8f076a9
release-noes: Add release notes for 0.18.0-alpha1
stephanosio Oct 30, 2024
c60cbba
VERSION: Bump to 0.18.0-alpha1
stephanosio Oct 30, 2024
f8038bb
ci: release: Update toolchain archive names
stephanosio Nov 6, 2024
308db82
scripts: llvm: Add initial RISC-V support
stephanosio Nov 23, 2024
99a6b00
scripts: llvm: Add RV32I multi-libs
stephanosio Nov 24, 2024
7e3bea4
scripts: llvm: Add RV32E multi-libs
stephanosio Nov 24, 2024
6fbb78a
scripts: llvm: Add RV64I multi-libs
stephanosio Nov 24, 2024
15ce41e
scripts: llvm: Disable Picolibc FP exception and rounding tests
stephanosio Nov 24, 2024
7fe09bb
cmake: Add LLVM RISC-V target
stephanosio Nov 25, 2024
156ec0e
scripts: llvm: Add RV32I multi-lib alternate mappings
stephanosio Nov 25, 2024
f9aa868
scripts: llvm: Add RV32E multi-lib alternate mappings
stephanosio Nov 25, 2024
8b74452
scripts: llvm: Add RV64I multi-lib alternate mappings
stephanosio Nov 25, 2024
d18bb5b
ci: Add RISC-V platforms for LLVM testing
stephanosio Nov 26, 2024
5da28db
ci: Disable LLVM qemu_riscv32 testing
stephanosio Nov 26, 2024
a9a5b4b
ci: Disable LLVM qemu_riscv32e testing
stephanosio Nov 26, 2024
886432b
ci: Disable LLVM qemu_riscv64 testing
stephanosio Nov 26, 2024
65d1d96
release-notes: Add release notes for 0.18.0-alpha2
stephanosio Nov 28, 2024
156219d
release notes: update 0.17.1 release notes
nashif May 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
756 changes: 463 additions & 293 deletions .github/workflows/ci.yml

Large diffs are not rendered by default.

9 changes: 6 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,19 +72,22 @@ jobs:
uses: softprops/action-gh-release@v2
with:
files: |
assets/toolchain_linux*
assets/toolchain_gnu_linux*
assets/toolchain_llvm_linux*

- name: Upload release assets (macOS toolchains)
uses: softprops/action-gh-release@v2
with:
files: |
assets/toolchain_macos*
assets/toolchain_gnu_macos*
assets/toolchain_llvm_macos*

- name: Upload release assets (Windows toolchains)
uses: softprops/action-gh-release@v2
with:
files: |
assets/toolchain_windows*
assets/toolchain_gnu_windows*
assets/toolchain_llvm_windows*

- name: Upload release assets (Distribution bundles)
uses: softprops/action-gh-release@v2
Expand Down
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,9 @@
[submodule "picolibc"]
path = picolibc
url = https://github.com/zephyrproject-rtos/picolibc.git
[submodule "llvm"]
path = llvm
url = https://github.com/zephyrproject-rtos/llvm-project.git
[submodule "crosskit-x86_64-apple-darwin"]
path = crosskit/crosskit-x86_64-apple-darwin
url = https://github.com/zephyrproject-rtos/crosskit-x86_64-apple-darwin.git
Expand Down
5 changes: 4 additions & 1 deletion cmake/Zephyr-sdkConfig.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,10 @@ set(SDK_MAJOR_MINOR_MICRO ${SDK_VERSION})

get_filename_component(ZEPHYR_SDK_INSTALL_DIR ${CMAKE_CURRENT_LIST_DIR}/.. ABSOLUTE)
set(ZEPHYR_SDK_INSTALL_DIR ${ZEPHYR_SDK_INSTALL_DIR})
set(ZEPHYR_TOOLCHAIN_VARIANT zephyr)

if(NOT DEFINED ZEPHYR_TOOLCHAIN_VARIANT)
set(ZEPHYR_TOOLCHAIN_VARIANT zephyr-gnu)
endif()

# Those are CMake package parameters.
set(Zephyr-sdk_FOUND True)
Expand Down
3 changes: 2 additions & 1 deletion cmake/zephyr/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,8 @@ config TOOLCHAIN_ZEPHYR_SUPPORTS_GNU_EXTENSIONS

config PICOLIBC_SUPPORTED
def_bool y
depends on "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "zephyr"
depends on "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "zephyr-gnu" \
|| "$(ZEPHYR_TOOLCHAIN_VARIANT)" = "zephyr-llvm"
help
Zephyr SDK >=0.16 always supports Picolibc for C and C++ development.

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: Apache-2.0

set(TOOLCHAIN_HOME ${ZEPHYR_SDK_INSTALL_DIR})
set(TOOLCHAIN_HOME ${ZEPHYR_SDK_INSTALL_DIR}/gnu)

set(COMPILER gcc)
set(LINKER ld)
Expand Down Expand Up @@ -31,3 +31,4 @@ set(CROSS_COMPILE ${one_toolchain_root}/${CROSS_COMPILE_TARGET}/bin/${CROSS_COMP
set(SYSROOT_DIR ${one_toolchain_root}/${SYSROOT_TARGET}/${SYSROOT_TARGET})
set(TOOLCHAIN_HAS_NEWLIB OFF CACHE BOOL "True if toolchain supports newlib")
set(TOOLCHAIN_HAS_PICOLIBC ON CACHE BOOL "True if toolchain supports picolibc")
set(TOOLCHAIN_HAS_GLIBCXX ON CACHE BOOL "True if toolchain supports libstdc++")
4 changes: 2 additions & 2 deletions cmake/zephyr/target.cmake → cmake/zephyr/gnu/target.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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}/${SYSROOT_TARGET}/${SYSROOT_TARGET})
set(CROSS_COMPILE ${ZEPHYR_SDK_INSTALL_DIR}/${CROSS_COMPILE_TARGET}/bin/${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}-)

if("${ARCH}" STREQUAL "x86")
if(CONFIG_X86_64)
Expand Down
2 changes: 1 addition & 1 deletion cmake/zephyr/host-tools.cmake
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: Apache-2.0

cmake_host_system_information(RESULT TOOLCHAIN_ARCH QUERY OS_PLATFORM)
set(HOST_TOOLS_HOME ${ZEPHYR_SDK_INSTALL_DIR}/sysroots/${TOOLCHAIN_ARCH}-pokysdk-linux)
set(HOST_TOOLS_HOME ${ZEPHYR_SDK_INSTALL_DIR}/hosttools/sysroots/${TOOLCHAIN_ARCH}-pokysdk-linux)

# Path used for searching by the find_*() functions, with appropriate
# suffixes added. Ensures that the SDK's host tools will be found when
Expand Down
4 changes: 4 additions & 0 deletions cmake/zephyr/llvm/clang_compiler_rt.cfg
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Copyright (c) 2023 The ChromiumOS Authors
# SPDX-License-Identifier: Apache-2.0

--rtlib=compiler-rt
12 changes: 12 additions & 0 deletions cmake/zephyr/llvm/generic.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# SPDX-License-Identifier: Apache-2.0

set(LLVM_TOOLCHAIN_PATH ${ZEPHYR_SDK_INSTALL_DIR}/llvm)

set(TOOLCHAIN_HOME ${ZEPHYR_SDK_INSTALL_DIR}/llvm/bin)

set(COMPILER clang)
set(LINKER lld)
set(BINTOOLS llvm)

set(TOOLCHAIN_HAS_PICOLIBC ON CACHE BOOL "True if toolchain supports picolibc")
set(TOOLCHAIN_HAS_LIBCXX ON CACHE BOOL "True if toolchain supports libc++")
43 changes: 43 additions & 0 deletions cmake/zephyr/llvm/target.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# SPDX-License-Identifier: Apache-2.0

if("${ARCH}" STREQUAL "arm")
if(DEFINED CONFIG_ARMV8_M_MAINLINE)
# ARMv8-M mainline is ARMv7-M with additional features from ARMv8-M.
set(triple armv8m.main-none-eabi)
elseif(DEFINED CONFIG_ARMV8_M_BASELINE)
# ARMv8-M baseline is ARMv6-M with additional features from ARMv8-M.
set(triple armv8m.base-none-eabi)
elseif(DEFINED CONFIG_ARMV7_M_ARMV8_M_MAINLINE)
# ARMV7_M_ARMV8_M_MAINLINE means that ARMv7-M or backward compatible ARMv8-M
# processor is used.
set(triple armv7m-none-eabi)
elseif(DEFINED CONFIG_ARMV6_M_ARMV8_M_BASELINE)
# ARMV6_M_ARMV8_M_BASELINE means that ARMv6-M or ARMv8-M supporting the
# Baseline implementation processor is used.
set(triple armv6m-none-eabi)
else()
# Default ARM target supported by all processors.
set(triple arm-none-eabi)
endif()
elseif("${ARCH}" STREQUAL "arm64")
set(triple aarch64-none-elf)
elseif("${ARCH}" STREQUAL "riscv")
if(CONFIG_64BIT)
set(triple riscv64-none-elf)
else()
set(triple riscv32-none-elf)
endif()
endif()

if(DEFINED triple)
set(CMAKE_C_COMPILER_TARGET ${triple})
set(CMAKE_ASM_COMPILER_TARGET ${triple})
set(CMAKE_CXX_COMPILER_TARGET ${triple})

unset(triple)
endif()

list(APPEND TOOLCHAIN_C_FLAGS --config
${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr/llvm/clang_compiler_rt.cfg)
list(APPEND TOOLCHAIN_LD_FLAGS --config
${ZEPHYR_SDK_INSTALL_DIR}/cmake/zephyr/llvm/clang_compiler_rt.cfg)
1 change: 1 addition & 0 deletions llvm
Submodule llvm added at 3dc6eb
28 changes: 25 additions & 3 deletions release-notes.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@
# Notes / Changes in various releases

## Zephyr SDK 0.17.1-rc1
## Zephyr SDK 0.18.0-alpha2

- general:

* Added Clang/LLVM 19.1.1 toolchain with Arm and RISC-V architecture support.
* Introduced Clang/LLVM toolchain distribution bundle
(`zephyr-sdk-VER_HOST_llvm`).
* Renamed existing "full" GNU toolchain distribution bundle to
`zephyr-sdk-VER_HOST_gnu`.
* Windows executables now link against UCRT, which supports Unicode.

- cmake:

* Restructured toolchain CMake script to support GNU and LLVM toolchains.
This requires Zephyr 4.1.0 or above (or the latest `collab-sdk-0.18-dev`).
* Zephyr SDK GNU toolchain now declares `TOOLCHAIN_HAS_GLIBCXX`.
* Zephyr SDK LLVM toolchain now declares `TOOLCHAIN_HAS_LIBCXX`.

## Zephyr SDK 0.17.1

- general:

Expand All @@ -10,13 +28,17 @@
* Added MediaTek MT8196 toolchain (`xtensa-mtk_mt8196_adsp_zephyr-elf`).
* Added MediaTek MT8365 toolchain (`xtensa-mtk_mt8365_adsp_zephyr-elf`).

- architectures:

* Added support for the RX architecture

- picolibc:

* Updated to Picolibc 1.8.9 release.
* Updated to Picolibc 1.8.10 release.

- qemu:

* Updated QEMU to 9.2.1 release.
* Updated QEMU to 9.2.3 release.
* Updated Xilinx QEMU to 8.1.0 release (part of Xilinx tools v2024.2 release).
* Added "legacy QEMU" that is equivalent to the "QEMU 7.0.0 with Zephyr
patches" in the SDK 0.17.0 release. This is to allow testing of the legacy
Expand Down
Loading
Loading