GitHub has dropped support for macos-12.
https://github.com/actions/runner-images/issues/10721
We had problems with macos-14 when it was first rolled out. Lets give
macos-13 a try. We'll probably have to migrate to macos-14 or macos-15
eventually but hopefully we can leave that until after the ct-ng 1.27.0
release.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Meson and Ninja are used by picolibc. Explicitly install these tools
which we appear to have been getting by some transitive dependency up to
now.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Musl was marked experimental in commit 08d91d41 ("musl: config is broken
for !EXPERIMENTAL"). Most of the reasoning for that change no longer
applies and as it's been about 8 years it's time to let musl loose on
the world. Drop the `depends on EXPERIMENTAL` and update the sample
configs for aarch64 and x86_64.
For powerpc64 the ABI needs to be elfv2. Enforce this via the powerpc
config. Add a sample configuration for powerpc-unknown-linux-musl.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
+ gcc 14 package version
+ tar.gz and tar.xz checksums
+ patches from gcc13 that can still be applied to gcc14
Signed-off-by: Nik Konyuchenko <spaun2002mobile@gmail.com>
macos-latest has recently (as of April 2024) started transitioning to
macos-14 (previously it was macos-12). This seems to be missing things
we rely on (e.g. makeinfo) and even when those are added throws other
errors. For now lets pin things to macos-12 until someone can spend
some time looking at why we can't use macos-14.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
* Run `apt-get update` before installing packages, as the local VM may
not have these packages already installed like the github.com runners
do.
* Add bison, flex, and texinfo, as they may not already be on the local
VM as they may be on the github.com runners.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
The canadian cross builds are hitting the disk space limit on the free
tier github runners. For now disable them.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Homebrew changed it's default install path from `/usr/local` to
`/opt/homebrew` a while back. Hardcoding the path is a bad idea, so
instead use `$(brew --prefix)` to get the prefix of the path for tools.
Also fix some [shellcheck](https://github.com/koalaman/shellcheck) issues.
Signed-off-by: Bryan Hundven <bryanhundven@gmail.com>
Adapted from the aarch64-unknown-linux-gnu sample enabling
CT_EXPERIMENTAL and selecting CT_LIBC_MUSL.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
more specificaly to the tarballs download. The function CT_Fetch now
touches the already existing files to be comparable to the not used ones
that can araise when a package is updated.
This comparsion is needed because if it would not exist the tarball
would grow in size due to not used but still cached packages.
This would take time but is definitly something to worry about.
Signed-off-by: Quentin Boswank <qubos@outlook.de>
Disable CT_GLIBC_ENABLE_DEBUG to hopefully make the toolchains use less
disk-space on the free-tier github action runners.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
arm-picolibc-eabi builds many multilib combinations which causes the
free tier github action runners to run out of disk space. Use
arm-picolibc-default instead so there is still some coverage of picolibc
in CI.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
The arm-picolibc-eabi build runs out of space on the macos makers
because of all the multilib permutations. For now disable the
macos,arm-picolibc-eabi combination until we can think of something
better.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Update some hard coded names to use ${{ matrix.sample }} instead. This
will allow us to upload other artifacts in the future.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
There appears to be a problem with GDB+Python+MacOS
Error: [ERROR] configure: error: no usable python found at /usr/local/bin/python3
Error: make[2]: *** [Makefile:11454: configure-gdb] Error 1
Error: make[1]: *** [Makefile:1030: all] Error 2
For now disable CT_GDB_CROSS_PYTHON on macos.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Add sample config for target loongarch64-unknown-linux-gnu.
Currently, it fails to build on macOS due to flex/bison incompatibility.
Signed-off-by: Jiajie Chen <c@jia.je>
Add x86_64-w64-mingw32 to the list of samples we use to fetch sources.
This should pick up the mingw related tarballs so the build steps that
follow don't have to.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
The CI builds currently seem unhappy on macOS when we build make
ourselves. Install GNU make via brew so that we don't have to build it
ourselves.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Various configurations end up using these companion tools (particularly
those with GNU libc). Ensure we download these tools at the start of the
build.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Add a single job to download (most of) the tarballs required. This
should allow the CI job to fail early when various sources are off-line
and prevent us from unintentionally DDoSing sites that we rely on.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
sh-multilib-linux-gnu ends up building 8 different libcs. This seems to
be problematic for the github hosted runners as it appears to run them
out of disk space (anecdotally this seems to have gotten worse with the
switch from ubuntu-18.04 to ubuntu-20.04).
Build sh-unknown-elf instead to make sure we cover of the sh
architecture to some degree.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
As of today baremetal (AKA "Elf32") & Linux glibc toolchains are even
more important than Linux uClibc one for ARC, so adding them.
We exclude ARC Linux toolchains from Mac buils as it seem to not make
much sense and anyway glibc build for ARC700 fails,
see https://github.com/crosstool-ng/crosstool-ng/pull/1456#issuecomment-779150246
Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
Add building on MacOS X as part of the CI testing.
A few notes:
* We exclude mips64-unknown-linux-gnu as the linux kernel headers need
<byteswap.h> that is a GNU extension to build elf-entry.c and does
not exist on Mac OS X.
* We create a SPARSE image filesystem to ensure we have are doing the
builds in a case sensitive fs.
Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
Add arc, mips64, riscv32, riscv64, s390, sh, sparc and xtensa builds to
CI job. Also add an arm-picolibc-eabi target.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
We get the build log via the artifact upload so having it in the action
output is redundant (it also tends to get suppressed anyway).
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Upload the config.log from building ct-ng as well as build.log and
.config from the toolchain builds.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
The GitHub runners have most of the required packages installed already.
Only install the 3 extra that we need for ct-ng.
Signed-off-by: Chris Packham <judge.packham@gmail.com>
Create a continuous integration workflow that builds a few sample
configurations.
Future improvements would be to have a single job that builds ct-ng and
shares the artifacts with the matrix jobs for building the individual
toolchains. It would also be a good idea to fetch and cache the various
source tarballs.
Signed-off-by: Chris Packham <judge.packham@gmail.com>