Go to file
Stephanos Ioannidis 5aa5274365 ci: Use 7z format for Windows build artifacts
This commit updates the CI workflow to output .7z archives for the
Windows build artifacts.

The 7z format uses the LZMA compression algorithm, which offers
significantly improved data compression ratio.

The `-l` option is used such that symbolic links are stored as copies
of the linked files because Windows requires administrator privileges
to create symbolic links.

Note that 7z performs multi-threaded compression by default.

For more details, refer to the issue zephyrproject-rtos/sdk-ng#567.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-11-25 20:34:38 +09:00
.github/workflows ci: Use 7z format for Windows build artifacts 2022-11-25 20:34:38 +09:00
binutils@6a1be1a6a5 binutils: Pull in ARC fixes 2022-08-12 00:57:58 +09:00
cmake cmake: Update Kconfig symbol name for 0.15 2022-09-27 21:28:32 +09:00
configs arc: Add -mtp-regno=26 to CFLAGS 2022-11-17 17:13:06 +09:00
crosstool-ng@c6d4008b05 crosstool-ng: Pull in zlib 1.2.13 2022-11-24 02:05:03 +09:00
gcc@66f40d566b gcc: Pull in libstdc++ long double math function support fix 2022-11-17 17:02:49 +09:00
gdb@db8bd068ed gdb: Pull in ARC patches 2022-07-08 16:25:54 +09:00
meta-zephyr-sdk meta-zephyr-sdk: Pull in AArch64 host build fix 2022-11-07 23:59:03 +09:00
newlib@4e150303bc newlib: Pull in ARC patches 2022-07-08 16:25:54 +09:00
overlays overlays: xtensa_espressif_esp32s2: gdb: Relocate gdbserver files 2022-06-26 19:20:20 +09:00
scripts ci: Use 7z format for Windows build artifacts 2022-11-25 20:34:38 +09:00
.gitignore gitignore: Add Emacs style backup file pattern 2019-11-14 09:34:13 -06:00
.gitmodules gdb: Add Git submodule 2022-03-18 23:28:38 +09:00
LICENSE license: add LICENSE file 2018-12-06 22:57:30 -05:00
README.md doc: readme: Add note on patch testing workflow 2022-08-30 10:54:38 +09:00
VERSION VERSION: Bump to 0.15.2 2022-11-21 18:17:50 +09:00
release-notes.md release-notes: Add release notes for 0.15.2 2022-11-21 18:17:50 +09:00

README.md

Zephyr SDK

The Zephyr Software Development Kit (SDK) includes the toolchains for all supported target architectures as well as the host tools, such as QEMU and OpenOCD, for testing and debugging the Zephyr RTOS.

The toolchains for the following target architectures are supported:

  • ARC (32-bit and 64-bit; ARCv1, ARCv2, ARCv3)
  • ARM (32-bit and 64-bit; ARMv6, ARMv7, ARMv8; A/R/M Profiles)
  • MIPS (32-bit and 64-bit)
  • Nios II
  • RISC-V (32-bit and 64-bit; RV32I, RV32E, RV64I)
  • x86 (32-bit and 64-bit)
  • Xtensa (sample_controller, intel_apl_adsp, intel_bdw_adsp, intel_byt_adsp, intel_s1000, nxp_imx_adsp, nxp_imx8m_adsp, espressif_esp32, espressif_esp32s2)

The following host tools are available as part of the Zephyr SDK:

  • BOSSA
  • OpenOCD
  • QEMU
  • Xilinx QEMU

Releases

The Zephyr SDK bundle releases are available for the following host platforms:

  • Linux (AArch64, x86-64)
  • macOS (AArch64, x86-64)
  • Windows (x86-64)

These binaries can be downloaded from here:

https://github.com/zephyrproject-rtos/sdk-ng/releases

Build Process

The Zephyr Project maintains the infrastructure necessary to build and test the Zephyr SDK, and it is highly recommended to utilise this infrastructure for generating the Zephyr SDK binaries.

When you submit a pull request to the Zephyr SDK repository, CI will automatically build and test the Zephyr SDK with the changes in the pull request and upload the binaries to the pull request check run, which you can download for further local testing as necessary.

Locally building the Zephyr SDK is currently not supported because setting up the environment to do so is highly complex and the resource requirements far exceed what is found on common developer machines.

Workflow to Test Patches with Zephyr SDK

The following workflow can be used to test a patch for GCC, for example, building the SDK remotely:

  • Submit your DRAFT gcc PR to Zephyr's GCC fork (etc.)
  • Update .gitmodules in sdk-ng to point to the fork with your gcc commit(s)
  • Resync submodules (git submodule sync --recursive && cd gcc && git pull)
  • Checkout the gcc commit hash in sdk-ng's gcc submodule and commit the .gitmodule changes (git add .gitmodules gcc && git commit -s)
  • Submit a DRAFT PR to sdk-ng with the submodule change(s)

Zephyr's CI will then build a new toolchain, which will be available in the PR check step. Verify that the GCC fix behaves as expected with the generated SDK.

Release Process

To create a new Zephyr SDK release:

  • Update the VERSION file with the new version (e.g. 0.11.0 or 0.11.0-beta1)
  • On https://github.com/zephyrproject-rtos/sdk-ng/releases, create a new tag named with the version number prefixed with v (e.g. for the version 0.11.0, the tag name should be v0.11.0) and add the release information.
  • Once the release is published, CI will build the Zephyr SDK bundles for all supported host platforms and will upload the binaries to the release page.