Commit Graph
163 Commits
Author SHA1 Message Date
Martin Storsjö 3976b3af59 github: Set -DCMAKE_INSTALL_MESSAGE=NEVER when testing libcxx
This matches what 28851edf164a337c334755ae33fd58f03cffd5a2 in
llvm-project did.

When setting up the built libcxx files for testing, the built
files are installed into a temporary test root, and the install of
them litters the build log with mostly uninteresting output.
2025-04-20 23:27:18 +03:00
Martin Storsjö bd9d08209b github: Build the pinned Ubuntu jobs on 22.04
This makes the prebuilt toolchains require 22.04.

The GitHub Actions Ubuntu 20.04 images are deprecated and are
being removed soon, see
https://github.com/actions/runner-images/issues/11101.
2025-04-09 14:30:07 +03:00
Martin Storsjö a57b84d1ae github: Switch DOCKER_USERNAME to a variable instead of a secret
This will allow avoiding masking out this string from the log output.
2025-04-09 13:35:20 +03:00
Martin Storsjö 6144b2e3dd github: Update to checking the mingw-v3.12.9 branch of cpython-mingw
This was missed in 61044083ab.
2025-04-04 11:29:49 +03:00
Martin Storsjö 56b7ba6871 github: Stop setting LLVM_ENABLE_TERMINFO
This option was removed in 852aaf54071ad072335dcac57f544d4da34c875a
in llvm-project, in May 2024.
2025-04-01 23:22:50 +03:00
Martin Storsjö f1f6c009d6 Revert "github: Pin a specific image for QEMU for Docker"
This reverts commit 3dbfd17270.

This shouldn't be necessary any longer; QEMU in
tonistiigi/binfmt:latest has been updated to 9.2.2, which has
this bug fixed - see
https://github.com/docker/setup-qemu-action/issues/198#issuecomment-2690225370
https://github.com/tonistiigi/binfmt/issues/215#issuecomment-2689340770
and https://gitlab.com/qemu-project/qemu/-/issues/1913.
2025-02-28 12:10:26 +02:00
Martin Storsjö 3dbfd17270 github: Pin a specific image for QEMU for Docker
This fixes temporary breakage in building arm64 docker images on
x86_64; see https://github.com/docker/setup-qemu-action/issues/198
and https://github.com/tonistiigi/binfmt/issues/240 for details
about this issue.
2025-02-16 23:07:06 +02:00
Martin Storsjö 77dddbcb9a github: Remove a stale leftover comment
This comment no longer was true after
3becea478f.
2025-02-04 12:03:49 +02:00
Martin Storsjö 6de7ef249e github: Install libltdl-dev in the msvcrt job, too
This was missed in 9e22cdbc9f.
2025-01-15 12:17:35 +02:00
Martin Storsjö 9e22cdbc9f github: Install libltdl-dev in the linux-cross-windows build job
This is required for building libffi. With ubuntu-22.04 images,
the libltdl-dev package was available out of the box.

Also explicitly install swig, which we rely on - this also seems
to have been available implicitly.
2025-01-07 15:07:08 +02:00
Martin Storsjö 09d5ba264e github: Bump to building ffmpeg 6.1.2 rather than 6.0
This fixes building on Ubuntu 24.04 (the one currently used by
the github actions ubuntu-latest tag), by including a fix for texinfo
7.0.

Not bumping to ffmpeg 7.x, as some tests there can be flaky at times.
2025-01-07 14:34:02 +02:00
Martin Storsjö 5fe69a92ac build-python: Bump to Python 3.12.7 2024-12-10 11:24:43 +02:00
dependabot[bot] fdf064a647 build(deps): bump dawidd6/action-download-artifact in /.github/workflows
Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 3 to 6.
- [Release notes](https://github.com/dawidd6/action-download-artifact/releases)
- [Commits](https://github.com/dawidd6/action-download-artifact/compare/v3...v6)

---
updated-dependencies:
- dependency-name: dawidd6/action-download-artifact
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-27 10:59:35 +02:00
Martin Storsjö df52fcb4da github: Set LLVM_LIT_ARGS for the compiler-rt and openmp tests
This allows inspecting exactly which tests actually were executed
or skipped, and also gives some insight into what tests are slow.
2024-11-19 11:22:12 +02:00
Martin Storsjö 179f412f25 github: Don't unnecessarily add the toolchain path to GITHUB_PATH
The win32 path environment isn't inherited by the msys2 shell
anyway.
2024-08-20 11:31:04 +03:00
Martin Storsjö e3790acf7d test: Set the NATIVE= variable automatically in test-libcxx-module.sh 2024-08-20 11:31:04 +03:00
Martin Storsjö 82c00fcf4b github: Stop explicitly installing gnu-tar on macOS
These days, it seems to be installed out of the box already on the
runner images, and installing it triggers very visible warnings
about it already being installed.
2024-06-26 11:43:13 +03:00
Martin Storsjö d173245e53 github: Set a default for the "branch" input for manual workflows 2024-06-07 13:19:28 +03:00
Martin Storsjö 9b1884206c github: Include clang-tools-extra in the linux/linux-aarch64/macos jobs
As the runners are faster these days, the cost of including these
tools should be more tolerable these days.
2024-06-03 12:36:44 +03:00
Martin Storsjö 6c748d21dd test: Test the clang-scan-deps wrapper 2024-05-02 20:03:56 +03:00
Martin Storsjö 334794b40d test: Do a minimal test to try to build the libcxx std c++ module 2024-05-02 20:03:56 +03:00
Martin Storsjö 7bd4b284f9 github: Switch the macos build job to macos-14
Currently, the "macos-latest" runners aren't really the latest
version - on the contrary, they're running the oldest HW/OS.

Currently, there are macos-12, macos-13 and macos-14, and macos-latest
are the macos-12 ones.

The macos-14 ones run on Apple Silicon.

Previously, the macos-12 runners have usually managed to run the build
job in less than 3 hours. However, lately, the jobs often end up
taking much longer, over 5 hours, and have ended up exceeding the
6 hour timeout occasionally, even if they still also some times run
in the expected time of less than 3 hours.

Switch to the faster macos-14 runners (which can complete the build
job in around 1 h 40 min), to avoid these timeouts.
2024-04-22 23:40:22 +03:00
Martin Storsjö e39faace92 github: Run toolchain tests in the linux/linux-asserts/macos jobs
Run the plain compilation part, without executing things (in order
not to require wine at this point).
2024-03-13 11:30:14 +02:00
Martin Storsjö 46884dc037 github: Don't upload the msys2 artifacts along with the release
They weren't intended to be part of the artifacts as part of the
release; the artifacts were added just for testing purposes.
2024-03-08 23:56:13 +02:00
Martin Storsjö 8f42112719 github: Build the multiplatform docker image in two steps
6b6b1240e2 tried to build a
multiplatform image, by building two images separately and pushing
them one at a time, with the same name (but with a different platform).

This doesn't work as expected; the last push for the image name
replaces earlier pushes. So depending on which push finishes
last, we'd end up with either an amd64 or arm64 image, but not
one that supports both.

Instead, push two separate images just with push-by-digest, and
then create the actual tag with "docker buildx imagetools create".

Alternatively, we could build all platform variants of the main
image with Dockerfile.toolchain, simplifying the setup significantly.
The contents of such a build is marginally different though, so
keep the amd64 image as it was, for now, compiled in that environment.
2024-02-27 23:31:00 +02:00
Martin Storsjö ed5fd4c6a0 github: Add a manual job for testing installing with a system clang 2024-02-26 00:22:14 +02:00
Martin Storsjö da480f0100 github: Don't build with dylibs enabled in the msys2 mingw64 environment
The total number of exported symbols in this build configuration has
now reached the limit for the number of exported symbols in a DLL,
with the latest version of llvm-project from git.

This isn't an issue when building with Clang, as it marks many
symbols as excluded from auto-export.
2024-02-24 22:08:16 +02:00
Martin Storsjö 908f88f7e5 github: Don't set the load flag to docker/build-push-action if push is set
With buildx, both push and load flags can't be set at the same time.
2024-02-21 17:20:31 +02:00
Martin Storsjö 4dbd39ecbf github: Properly propagate BUILD_DATE to BUILD_DATE_UNIX
Previously, when echoing the definition of BUILD_DATE to
$GITHUB_OUTPUT, that doesn't make it available as an environment
variable. (And if it would be echoed to $GITHUB_ENV, it still
wouldn't take effect until the next step within the same job either.)

Therefore, this previously set BUILD_DATE to $(date -d "" +%s),
which seems to produce a timestamp corresponding to the start of
the current day.
2024-02-13 15:48:27 +02:00
Norbert Lange 8caf3767a4 attempt to use reproducible timestamps
This sets SOURCE_DATE_EPOCH to the commit timestamp, toolchains
should pick up timestamps from this variable.
The same sources ideally would produce the same binary, see
https://reproducible-builds.org.

Set the timestamps within the tar archives to the start of the
CI pipeline.

Sort the archive contents.
2024-02-13 10:13:54 +02:00
Norbert Lange 45ad09642f improve tar packaging
The generated tar archives contain the uid/gid of the builder,
if unpacked as root on another system those will denote nothing
or an unexpected user/group.

The expectation would be uid/gid = 0.

Use a simple enough tar format as well.

The Mac version of tar (bsdtar?) does not support those flags,
for CI the separate gnu-tar is installed.
2024-02-13 10:13:54 +02:00
Dmitry Tretyakov 6b6b1240e2 docker: build linux/arm64 images (#398) 2024-02-09 23:28:09 +02:00
Martin Storsjö 1e08d1adc5 github: Bump the docker actions to the latest version
The previous ones used Node 16, which is deprecated.
2024-02-06 12:23:45 +02:00
Martin Storsjö f26412b8ef github: Upgrade missed deprecated actions to newer ones
These were missed in ad30b74173.

The mismatch between upload-artifact and download-artifact in
ad30b74173 makes the later steps
fail to download the artifacts from previous steps.
2024-01-30 17:14:00 +02:00
Martin Storsjö ad30b74173 github: Upgrade deprecated actions to newer ones
The previous ones use Node 16 which now is deprecated.
2024-01-29 23:17:42 +02:00
Martin Storsjö 1139164bf6 github: Stop setting TEST_IS_EXECUTED_IN_A_SLOW_ENVIRONMENT and large_tests=False
The default free github runners have been sized up now, so the
tests now run fine without these settings.
2024-01-29 23:17:14 +02:00
Martin Storsjö f5c5c72a88 github: Include the missing build tag for the msys2 artifacts 2024-01-09 11:29:38 +02:00
Martin Storsjö 3becea478f github: Upload artifacts from the MSYS2 build too
They aren't expected to be used much, but can be useful for
inspecting the output of a build.
2023-12-07 13:33:56 +02:00
Martin Storsjö 4555fcebc9 github: Bundle dependencies from MSYS2 into the output toolchain
This makes the built toolchain usable outside of MSYS2 too.

For running tests, this has another very subtle effect.

If the toolchain is built in the MSYS2 clang64 environment, the
compiler binary depends on libc++.dll. This DLL is found in $PATH,
in /clang64/bin.

When building/running tests, the current working directory will be
e.g. llvm-mingw/test/x86_64. At some point while building/running
tests, the test makefile will copy the llvm-mingw toolchain's
runtime DLLs into this directory in order to be able to execute those
newly built binaries. This also includes another, different libc++.dll.

When a libc++.dll exists in the current directory, this is preferred
over the one found further back in $PATH in /clang64/bin. As this
file is copied in parallel with other build jobs that might be
doing compilation, those compilation processes may end up loading
this other DLL. If fully copied it probably shouldn't be an issue,
but if not fully copied yet, who knows what might happen.

By making sure that there is a libc++.dll in the same directory as
the toolchain executables (rather than expecting it to be found
further back in $PATH), we ensure that this DLL is loaded and used
instead of the one in the current directory.

This should fix stray errors when running tests in the clang64
environment.
2023-12-07 13:33:53 +02:00
Martin Storsjö 5000bc4c97 github: Update the branch of python used for scheduled builds 2023-12-07 13:33:53 +02:00
Martin Storsjö c70261f922 github: Compile i686 libcxx tests with an x86_64 build of the compiler
Some tests in the libcxx testsuite require more than 2 GB of memory
to compile currently.
2023-11-03 11:23:48 +02:00
Martin Storsjö 845805bcfe github: Set the test parameter large_tests=False for the libcxx tests
This skips test that use a lot of memory. In particular, there's
one test that would use up to 6.8 GB of memory, while the GitHub
Actions runners only have 8 GB of memory available.

This parameter was added in 122064a6303eb9c06e0af231f5a4ce145d9a2e67
in the llvm-project main branch, and backported to 17.x in
aa03fba83b17bbfcd9ed869efed2818b503875d6.
2023-10-31 11:05:52 +02:00
Martin Storsjö fa8df6b193 github: Run the libcxx tests with "-v --time-tests"
This allows seeing the names of tests as they are executed, making
the intermediate log output on github actions more useful. It
also makes it easier to correlate test issues between tests as
they are executed (e.g. if one test causes another one to run out
of memory).

Also run with --time-tests, allowing identifying slow tests.

This was already applied in the separate libcxx test job added in
7483eae1821766a0f84dbd96f5619058f7065008; this backports the change
into the test job in the main build file.
2023-10-31 11:04:03 +02:00
Martin Storsjö 6c3f283dcd github: Explicitly install ninja where needed in Windows jobs
Ninja isn't documented as one of the tools provided by the CI runner
images, but it used to be available implicitly installed before
in the windows-2022 images. Since the 20230918.1.0 image update,
it no longer is available out of the box; see
https://github.com/actions/runner-images/issues/8343.
2023-09-21 00:15:02 +03:00
Martin Storsjö 7483eae182 github: Add a manual job for running the libcxx/libcxxabi/libunwind tests
This is included already in the main build pipeline, but disabled
by default. This allows easily running this on top of a recent
separate pipeline.
2023-09-14 15:12:39 +03:00
Martin Storsjö 2674a65315 github: Add a manual job for running the llvm/lld/clang/clang-tools-extra tests 2023-09-14 13:08:00 +03:00
Martin Storsjö dd569ce86a github: Clarify the name of some of jobs relating to fetching artifacts 2023-09-13 14:16:14 +03:00
Martin Storsjö 58339108ba github: Build the split-file executable for the compiler-rt tests too
Since f52f8e817ea36e003e8f09672de48c3c460093f4 (Aug 28th) in
llvm-project, this is needed for one test in compiler-rt.
2023-08-29 14:33:09 +03:00
Martin Storsjö a861db9f43 github: Build LLDB for Linux too
Disable Python, to make the LLDB executables more portable,
so they don't rely on whatever version might have been installed on
the GitHub Actions runner.
2023-08-01 10:05:54 +03:00
Martin Storsjö 8b01a132c5 github: Build lldb on macos, but only disable python 2023-08-01 10:01:45 +03:00