Commit Graph

684 Commits

Author SHA1 Message Date
Stephanos Ioannidis c7e746af69 cmake: Clean up trailing whitespaces
This commit cleans up trailing whitespaces in CMake file.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-12 03:40:32 +09:00
Stephanos Ioannidis bc29e2da46 gdb: Pull in default terminal type fix for Windows
This commit pulls in the bugfix for the Windows GDB incorrect terminal
type resolution bug, which caused the certain key inputs (e.g.
backspace) to not work properly on Windows.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-11 18:54:53 +09:00
Stephanos Ioannidis 23f5c4d719 scripts: Fix incorrect Linux host tools setup invocation
When invoking the host tools setup SFX, the POSIX setup script
incorrectly assumed that the host architecture for Linux is always
x86-64.

This commit updates the setup script to invoke the host tools setup SFX
of the host architecture that is running the script.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-11 18:13:19 +09:00
Stephanos Ioannidis 7ee32e0b3a ci: Fix GDB Python scripting support for Canadian cross builds
The GDB for Canadian cross compilation builds (linux-aarch64 and
macos-aarch64) were previously compiled without the Python scripting
support because `CT_GDB_CROSS_PYTHON` is not enabled by default for
Canadian cross compilation.

Now that we explicitly set `CT_GDB_CROSS_PYTHON=y` for these hosts,
the GDB build is failing due to the host Python libraries missing on
the build system.

This commit updates the CI workflow to specify the libpython cross
compilation kits for the linux-aarch64 and macos-aarch64 hosts so that
the GDB build system can resolve the host Python dependencies on the
cross build machine.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-11 18:12:57 +09:00
Stephanos Ioannidis 5abd8f7db6 config: Move GDB Python scripting configs to CI build script
This commit moves the GDB Python scripting configurations from the
target toolchain configuration files to the CI build script.

The rationale for this change is as follows:

  1. GDB Python scripting support is not a configuration inherent to
     a specific target.

  2. The Python version configuration has nothing to do with the target
     toolchain and is specific to the build and host environments.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-11 18:12:57 +09:00
Stephanos Ioannidis bf44de867d ci: Link Windows GDB against Python 3.8
This commit updates the CI workflow to link the Windows GDB build
against the Python version 3.8.

This aligns the Windows GDB Python version requirement with that of the
Linux and macOS GDB builds.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-11 18:12:57 +09:00
Stephanos Ioannidis f250c9c964 ci: Enable GDB Python scripting support for Windows build
The cross-gdb Python scripting support (`CT_GDB_CROSS_PYTHON`) is
enabled by default, except when performing a Canadian cross build which
our Windows build process does.

This commit explicitly sets `CT_GDB_CROSS_PYTHON=y` when building for
Windows so that the Windows GDB is built with the Python scripting
support.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-11 18:12:57 +09:00
Stephanos Ioannidis 5bd66bf3d5 ci: Fix libpython integration for Windows GDB build
The `LIBPYTHON_KIT_ROOT` variable, which specifies the path to the
Windows libpython cross compilation kit, is used by the python
executable emulation script in the kit, and therefore must be available
as an environment variable.

This commit updates the CI workflow to export the `LIBPYTHON_KIT_ROOT`
variable so that it is accessible from the cross compilation kit.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-11 18:12:57 +09:00
Stephanos Ioannidis 7b9f6ee2ee crosstool-ng: Pull in cross-gdb GCC library static linking support
This commit pulls in the GCC library (`libstdc++` and `libgcc`) static
linking support for the cross-gdb (`CT_GDB_CROSS_STATIC_LIBSTDCXX`).

Note that `CT_GDB_CROSS_STATIC_LIBSTDCXX` is enabled by default and no
changes are required on the Zephyr SDK side for this to take effect.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-11 18:12:57 +09:00
Stephanos Ioannidis 043886a684 VERSION: Bump to 0.14.0-beta1
This commit bumps the Zephyr SDK version to 0.14.0-beta1.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-04 21:46:12 +09:00
Stephanos Ioannidis e4721d16eb release-notes: Add release notes for 0.14.0-beta1
This commit adds the release notes for the Zephyr SDK 0.14.0-beta1
release.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-04 21:46:12 +09:00
Stephanos Ioannidis 0fb1bda7fc ci: Add matrix-less checkpoint for test result
This commit adds a new job to the CI workflow that is not a part of a
matrix and depends on the distribution bundle test matrix jobs, such
that it only runs when the distribution bundle test jobs do not fail
(i.e. all distribution bundle tests pass).

The purpose of this is to provide a checkpoint which the GitHub branch
protection rule can use to enforce the required checks for merging pull
requests, because GitHub does not support specifying a job that is part
of a matrix for this purpose.

Remove this when GitHub is updated to support specifying the steps that
are part of matrix jobs for the required checks.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-03 06:57:51 -05:00
Stephanos Ioannidis 3a52588683 ci: Set explicit content write permission for release workflow
This commit updates the release workflow such that an explicit content
write permission is granted to the GITHUB_TOKEN used throughout the
workflow.

The content write permission is required to upload the release assets
to the repository and must be manually set when the repository default
workflow permissions are set to "Read repository contents permission."

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-03 06:57:51 -05:00
Stephanos Ioannidis 9553b1b220 README: Update for new multi-platform Zephyr SDK
This commit removes obsolete information from the README file and adds
information related to the new multi-platform Zephyr SDK as well as the
new CI infrastructure.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-03 06:57:27 -05:00
Stephanos Ioannidis 0511b0c289 ci: Remove obsolete macOS SDK build workflow
This commit removes the obsolete GitHub Actions-baed macOS SDK build
workflow that has been superseded by the unified workflow (ci.yml).

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis bb17471131 ci: Remove obsolete Buildkite workflows
This commit removes the obsolete Buildkite-based CI workflows that have
been superseded by the GitHub Actions-based CI workflows.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis 060ad8ea4d scripts: Remove obsolete build scripts
This commit removes the Zephyr SDK build scripts that are obsolete and
no longer used with the new GitHub Actions-based CI.

In general, one should refrain from building the Zephyr SDK locally
because the build environment configurations are very complex to set up
and there is really no point in building the SDK locally when there is
a CI infrastructure to do exactly that.

If it is ever necessary to build the Zephyr SDK locally for some
reason, one should use a local GitHub Actions runner, such as
nektos/act.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis 8a0fcb3a9b ci: Add GitHub Actions CI workflow
This commit adds a GitHub Actions CI (continuous integration) workflow
for building the Zephyr SDK components, which include the toolchains
for all supported targets and the host tools for Linux.

Note that the host tools for non-Linux operating systems (i.e. macOS
and Windows) are not currently supported because the Yocto-based host
tools build process and environment abstraction can be used only on
the Linux.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis b0bda725ef meta-zephyr-sdk: Enable cross compilation
This commit enables cross compilation of the meta-zephyr-sdk by
allowing the host machine variable (MACHINE) to be overridden when
calling the build script.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis b76a436ac8 crosstool-ng: Import as Git submodule
This commit adds the crosstool-ng repository as a Git submodule.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis cf17e63cd0 scripts: Add Windows setup script template
This commit adds a setup script template for the Windows host operating
system to be distributed as a part of the Zephyr SDK distribution
bundle archive.

This setup script can be executed by the user to configure the Zephyr
SDK on their local system.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis ea0e096da5 scripts: Add POSIX setup script template
This commit adds a setup script template for the POSIX-compliant host
operating systems (i.e. Linux and macOS) to be distributed as a part of
the Zephyr SDK distribution bundle archive.

This setup script can be executed by the user to configure the Zephyr
SDK on their local system.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis f29d2718d8 gcc: Pull in Clang 9 bug workaround
Pull in the workaround to fix building with Clang 9.

This is required to support building GCC on the macOS 11 and above.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis bf00a2a8ae cmake: Add CMake package registration script
This commit adds a universal CMake script that automates the
registration of the `Zephyr-sdk` CMake package in the user package
registry.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis 92dfbc0b94 cmake: Use SoC-specific vendor name for Xtensa targets
This commit updates the Zephyr SDK CMake package to reference the
changed Xtensa toolchain naming scheme, which includes the SoC name in
the vendor part of the target triplet.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis 141dd4fe30 config: Set SoC-specific vendor name for Xtensa targets
This commit updates the Xtensa target toolchains to include the SoC
name in the vendor part of the target triplet.

For example, The target triplet for the Xtensa toolchain targeting the
"Xtensa Sample Controller SoC" has been changed from
`xtensa-zephyr-elf` to `xtensa-sample_controller_zephyr-elf`.

Once the Zephyr-specific targets are implemented (see issue #350),
these target triples should be renamed to use the proper `arch-soc-os`
format (e.g. `xtensa-sample_controller-zephyr`).

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis c701e23bcc config: Canonicalise toolchain config names
This commit canonicalises the toolchain configuration file names to
match that of the actual target that it builds.

For instance, `arm64.config` is renamed to `aarch64-zephyr-elf.config`,
which corresponds to the actual target name built using that toolchain
configuration file.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis 399111f050 config: Remove unused toolchain configurations
This commit removes the `i586` and `iamcu` toolchain configurations,
which are no longer used (superseded by `x86_64`).

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis de9b29b446 meta-zephyr-sdk: Fix expat source URI
This commit updates the source URI for the expat component by
overriding the SRC_URI variable specified in the meta layer.

Note that the old mirror specified in the meta layer is no longer
available and has officially been relocated to GitHub [1].

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>

[1] https://github.com/libexpat/libexpat
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis eaca8bd65e meta-zephyr-sdk: Fix libpcre source URI
This commit updates the source URI for the libpcre and libpcre2
components by overriding the SRC_URI variable specified in the meta
layer.

Note that the old mirror specified in the meta layer is no longer
available and has officially been relocated to GitHub [1].

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>

[1] https://pcre.org/
2022-03-01 07:38:55 -05:00
Stephanos Ioannidis cd9367c649 crosstool-ng: Update to pull in ISL mirror fix
The old ISL mirror server has permanently gone down, so switch to a new
mirror.

This fixes the CI failures due to the ISL library mirror being
unavailable.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-11-30 19:34:08 +09:00
Stephanos Ioannidis bc1a4ca418 VERSION: Bump version to 0.13.2
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-11-18 02:53:07 +09:00
Remy Luisant 2f605fd5e9 config: Disable the GP register optimizations on MIPS
This change turns off the use of the GP register for small global data items
on MIPS.

Compilers on MIPS customarily use a dedicated global register for access to a
pool of small data items. This is not currently supported by the MIPS port.

Disabling the use of the optimizations is harmless, the values will be treated
like large data. This is slower and produces slightly larger code. However,
disabling the optimization simplifies the code and allows the port to make
progress. The impact is limited only to code dealing with global values.

The change was tested and all testcases are now passing. Without it there are
16 failing testcases.

Signed-off-by: Remy Luisant <remy@luisant.ca>
Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-11-17 23:56:27 +09:00
Stephanos Ioannidis 67d9f59450 openocd: Pull in OpenOCD fixes
Pull in the following OpenOCD fixes:

* tfc/target: stm32: Fix missing DBG clock on stm32g0/l0
* target/arc: implement dummy checksum_memory()

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-11-16 10:51:44 +09:00
Stephanos Ioannidis 01fb90531b newlib: Enable C99 format specifier support
This commit enables the C99 format specifier support for the newlib
full variant since it is required for C99 standard compatibility.

Without this, Zephyr applications cannot make use of the format
specifiers newly added in the C99 standard such as `%hhu` and `%hhd`.

Note that the C99 format specifier support is kept disabled for the
newlib nano variant (i.e. `CT_LIBC_NEWLIB_NANO_IO_C99FMT=n`) because
enabling it can lead to increased code size.

This also aligns the Zephyr SDK's behaviour to that of the GNU Arm
Embedded toolchain, which only enables the C99 format specifier support
in the newlib full variant.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-11-16 10:51:10 +09:00
Stephanos Ioannidis 1d129e0f39 gcc: Update to add RV32E multilibs
Pull in the Zephyr gcc commit that adds the multilibs for the RISC-V
RV32E (embedded) targets.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-10-28 19:30:52 +09:00
Paul Sokolovsky c045f51616 meta-zephyr-sdk: xilinx_qemu: Enable "microblazeel" emulation target
MicroBlaze emulation is needed to boot a Linux on a Xilinx zcu102
target, which is in turn useful for end-to-end demonstration of
OpenAMP capabilities (Linux host boots a (Zephyr) image on a
remote processor and interacts with it).

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2021-10-19 09:30:59 -05:00
Kumar Gala 2d84316b46 release-notes: Update for xilinx qemu update
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-10-14 09:33:36 -05:00
Paul Sokolovsky 106830b506 meta-zephyr-sdk: xilinx_qemu: Update to QEMU 5.1.0
Uses the same git revision as Xilinx PetaLinux 2021.1. Allows to be better
aligned with vendor tooling/samples/etc. when working on integration
projects like OpenAMP.

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2021-10-13 10:37:54 -05:00
Stephanos Ioannidis bb1ac90413 qemu: Add MIPS little endian emulation
This commit adds the `mipsel-softmmu` build for the QEMU, so that we
can emulate the little endian MIPS targets.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-10-09 07:42:14 -05:00
Kumar Gala 2a4850d3c5 ci: Update docker image to v1.1.0 for ca-cert update
Update to docker image 1.1.0 to get updated certs to allow package
downloads from yocto build to work again.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-10-09 01:01:52 +09:00
Kumar Gala cfd2c136c3 ci: implement simple package cache
sync tarball of sources on S3 to use as a simple cache of these
packages so we don't have to download them from the internet
everytime.

We have to special case xtensa because of how the build dirs for
it work.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-10-09 01:01:52 +09:00
Kumar Gala c003a39f7d configs: Update xtensa_* configs to have CT_LOCAL_TARBALLS_DIR match
Make the CT_LOCAL_TARBALLS_DIR setting the same for all configs.  The
xtensa configs pointed to a different location.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-10-09 01:01:52 +09:00
Paul Sokolovsky 8ae64c13f3 README: Update to current state of affairs.
Replaces outdated information with more up-to-date/generic, fixing
typos and formatting issues on the way.

Signed-off-by: Paul Sokolovsky <paul.sokolovsky@linaro.org>
2021-10-06 10:12:59 -05:00
Kumar Gala 08bc1e88ba VERSION: Bump version to 0.13.1
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-09-20 08:10:15 -05:00
Kumar Gala 5559610ab8 release-notes: Update for GCC & QEMU changes
Update v0.13.1 release notes sections for GCC & QEMU changes

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-09-20 08:10:15 -05:00
Stephanos Ioannidis 4320c8e309 newlib: Pull in Xtensa malloc failure workaround
Pull in the newlib workaround for the Xtensa malloc failure issue
reported in zephyrproject-rtos/zephyr#38258.

Signed-off-by: Stephanos Ioannidis <root@stephanos.io>
2021-09-10 07:52:12 -05:00
Kumar Gala 5f89e801c6 gcc: Update to pull in ARM CMSE CVE fixes
Update gcc to pull in cherry pick of GCC fixes for
Arm-GCC-CVE-2021-35465

Fixes #392

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-09-10 07:50:02 -05:00
Alexey Brodkin f5539519e1 qemu: Allow setup of ARC's "virt" board memory size
We used to be very generous with memory allocation for ARC's "virt"
board assuming people would run Linux on it and all 2 GiB of RAM
will be consumed anyway.

But in case of Zephyr we don't need that much, yet QEMU tries to allocate
2 GiB right away meaninglessly claiming hosts's memory.

And while it's typically not a big deal if 1 QEMU instance is run on
an up-to-date host (we have 10s of GiBs to our disposal), in case of
massive parallel QEMU execution like in Zephyr's "twister", it really starts
to get in a way. So we now allow user to specify amount of memory we'd like
to have on emulated target and thus significantly lower memory pressure and
requirements on "twister"-running hosts.

See https://github.com/zephyrproject-rtos/sdk-ng/issues/291.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
2021-09-01 07:52:19 -05:00
Kumar Gala c47457e265 gdb: backport MacOS fix for ELF file support
Backport fix from upstream GDB that fixes issue with GDB on MacOS
supporting ELF files correctly.

Fixes #387

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2021-08-13 12:17:59 -05:00