Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 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
a1053e5
ci: Download host-specific artifacts when building distribution bundle
stephanosio Oct 21, 2024
308ad93
ci: Use 'zephyr-gnu' toolchain variant for testing
stephanosio Oct 21, 2024
03daf84
ci: Run tests with Zephyr collab-sdk-0.18-dev branch
stephanosio Oct 21, 2024
362b0e2
Add LLVM submodule
stephanosio Oct 16, 2024
f9109a8
llvm: Pull Arm LLVM ET 19.1.1 patches
stephanosio Oct 20, 2024
f516a78
scripts: Add initial Zephyr SDK LLVM build script
stephanosio Oct 16, 2024
f2c52d3
ci: Use sdk-build v1.3.4
stephanosio Oct 22, 2024
45c5c93
ci: Add LLVM toolchain build job
stephanosio Oct 22, 2024
cf139b7
ci: Remove obsolete clean-up tasks
stephanosio Oct 23, 2024
eb2857e
ci: Remove legacy GitHub-hosted macOS runner setup tasks
stephanosio Oct 23, 2024
3d464f3
ci: Remove unneeded sudo operations
stephanosio Oct 24, 2024
46a1a38
ci: Use CI image 'main' for running Linux tests
stephanosio Oct 24, 2024
0c2c0da
ci: Force Python 3.10 for testing
stephanosio Oct 24, 2024
be3174e
ci: Use sdk-build v1.3.8
stephanosio Oct 23, 2024
a1335f2
ci: Use SDK build image MinGW-w64 installation
stephanosio Oct 23, 2024
1525ac6
cmake: Add LLVM toolchain support
stephanosio Oct 24, 2024
8a41e59
cmake: gnu: Set TOOLCHAIN_HAS_GLIBCXX
stephanosio Oct 26, 2024
54fce93
cmake: llvm: Set TOOLCHAIN_HAS_LIBCXX
stephanosio Oct 26, 2024
21748a2
template_setup_posix: Add LLVM toolchain setup option
stephanosio Oct 25, 2024
31b8d34
template_setup_win: Add LLVM toolchain setup option
stephanosio Oct 25, 2024
5ba3e4a
ci: Disable LLVM tests on qemu_cortex_a53
stephanosio Oct 25, 2024
8503967
ci: Disable LLVM tests on mps3/an547
stephanosio Oct 25, 2024
ce5facb
ci: Disable LLVM tests on qemu_cortex_m0
stephanosio Oct 25, 2024
64cce02
ci: Add test job debug steps
stephanosio Oct 27, 2024
d0df0c4
ci: Fix Windows test name
stephanosio Oct 28, 2024
129be29
ci: Skip testing LLVM on Windows
stephanosio Oct 28, 2024
c678945
ci: Disable intel_ace30_ptl testing
stephanosio Oct 29, 2024
52fb9ee
Revert "ci: Install [email protected] for macOS"
stephanosio Oct 30, 2024
55fb36a
release-noes: Add release notes for 0.18.0-alpha1
stephanosio Oct 30, 2024
c26024d
VERSION: Bump to 0.18.0-alpha1
stephanosio Oct 30, 2024
13af24e
ci: release: Update toolchain archive names
stephanosio Nov 6, 2024
59c6329
scripts: llvm: Add initial RISC-V support
stephanosio Nov 23, 2024
25bb3c9
scripts: llvm: Add RV32I multi-libs
stephanosio Nov 24, 2024
714babc
scripts: llvm: Add RV32E multi-libs
stephanosio Nov 24, 2024
1d0c022
scripts: llvm: Add RV64I multi-libs
stephanosio Nov 24, 2024
deeb723
scripts: llvm: Disable Picolibc FP exception and rounding tests
stephanosio Nov 24, 2024
39728b6
cmake: Add LLVM RISC-V target
stephanosio Nov 25, 2024
5dbb61e
scripts: llvm: Add RV32I multi-lib alternate mappings
stephanosio Nov 25, 2024
83714b4
scripts: llvm: Add RV32E multi-lib alternate mappings
stephanosio Nov 25, 2024
fabe929
scripts: llvm: Add RV64I multi-lib alternate mappings
stephanosio Nov 25, 2024
10efee0
ci: Add RISC-V platforms for LLVM testing
stephanosio Nov 26, 2024
38f1291
ci: Disable LLVM qemu_riscv32 testing
stephanosio Nov 26, 2024
bc25beb
ci: Disable LLVM qemu_riscv32e testing
stephanosio Nov 26, 2024
3bde1f0
ci: Disable LLVM qemu_riscv64 testing
stephanosio Nov 26, 2024
aca14b5
release-notes: Add release notes for 0.18.0-alpha2
stephanosio Nov 28, 2024
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)
2 changes: 1 addition & 1 deletion gcc
1 change: 1 addition & 0 deletions llvm
Submodule llvm added at 3dc6eb
18 changes: 18 additions & 0 deletions release-notes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
# Notes / Changes in various releases

## 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-rc1

- general:
Expand Down
Loading
Loading