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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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
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/
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>