Commit Graph
150 Commits
Author SHA1 Message Date
Martin Storsjö 06e91d01b0 github: Fix passing arguments to lit for the openmp tests
The previous parameter wasn't used.
2025-12-02 13:38:47 +02:00
Martin Storsjö 3766326dbb github: Stop specifying CMAKE_CXX_COMPILER_TARGET
The preinstalled CMake on the ARM64 runners now should be a native
ARM64 CMake, which allows autodetecting CMAKE_CXX_COMPILER_TARGET
correctly.
2025-09-23 14:00:00 +03:00
Martin Storsjö adcf12dae0 github: Stop building in the mingw64 environment in msys2
These builds fail regularly, under mysterious circumstances.
("The hosted runner lost communication with the server. Anything
in your workflow that terminates the runner process, starves it
for CPU/Memory, or blocks its network access can cause this error.")

This usually seems to happen around the build-libcxx.sh step.
2025-09-22 12:25:27 +03:00
Martin Storsjö 1a25a0ff74 github: Switch macos jobs to macos-14 runners explicitly
For some unknown reason, macos-15 runners (which macos-latest
resolves to currently) seem to be consistently 25-40% slower than
macos-14 runners; the "macos" job (doing an universal binary build
for 2 architectures, with LTO) often take over 5 hours, and have
reached the 6 hour timeout once.

Switch this back to macos-14 to speed it up and reduce the risk of
hitting the timeout.

In the future, if/when the macos-14 runners are phased out, and if
the performance reduction in macos-15 runners remains, we'd need to
switch to building each architecture in a separate job, and merge
them together separately if we still want to provide universal
binaries.
2025-08-30 23:03:55 +03:00
Martin Storsjö 5c5a462dd1 github: Stop manually installing ninja on Windows
Since https://github.com/actions/runner-images/pull/11706,
https://github.com/actions/runner-images/pull/11707 and
https://github.com/actions/runner-images/pull/11737, ninja is
preinstalled in the Ubuntu, macOS and x86 Windows runner images.
Thanks to that, redundant installs of ninja on Unix were removed
in e20f0e3acd.

As noted in https://github.com/actions/partner-runner-images/issues/96,
ninja now also seems to be available on the Windows on ARM
images - thus remove redundant installs of ninja on Windows.
2025-08-21 00:13:51 +03:00
Martin Storsjö 2324d8354f github: Simplify running the msvcrt workflow on push, for testing
Only pick parameters from "inputs" if we were invoked through a
"workflow_dispatch" event.
2025-07-29 22:40:34 +03:00
Martin Storsjö 0681c739aa github: Run tests directly after cross compiling the msvcrt runtimes
This matches what is done for the regular builds; we run (build-only)
tests already with the first cross compiler toolchains, not needing
to wait for the cross compiled toolchains to run on Windows.
2025-07-29 22:39:28 +03:00
Martin Storsjö 67827c9569 github: Switch the condition for inputs vs defaults for test-llvm and test-libcxx
This makes it easier to run these workflows through a push (by
adding an "on:push:" at the start of the files.
2025-07-29 22:38:54 +03:00
Martin Storsjö 848bf53fe0 github: Pass -D__USE_MINGW_ANSI_STDIO=1 for test-llvm on x86
This is required for properly formatting long doubles on x86
with UCRT (which doesn't use the mingw builtin printfs by default).

This fixes running the LLVM testsuite on x86 after commit
9bf7d04c4386daf1ef0acf95782a59855c98474a in llvm-project.
2025-07-29 22:38:25 +03:00
Martin Storsjö 0d59f0f827 github: Skip the stage1 artifacts when making a release
The linux stage1 artifacts were uploaded, while the macos ones
weren't (as they didn't match the *-toolchain glob pattern).
2025-07-19 11:21:19 +03:00
Martin Storsjö 09c5a4e822 github: Fix the use of dawidd6/action-download-artifact in msvcrt.yml
The older version doesn't support the ref parameter.
2025-07-18 19:47:04 +03:00
Martin Storsjö f5a90414dd github: Stop running armv7 binaries
The ARM github actions runners now run on Windows 11 10.0.26100,
which no longer support executing armv7 binaries. (Previously they
were running Windows 11 10.0.22631.)
2025-07-16 09:58:18 +03:00
Martin Storsjö 081b68c2bb github: Include the architecture in the linux-asserts artifact name
This should make it clearer what it is.
2025-06-30 14:13:36 +03:00
Martin Storsjö 8e90268bf3 github: Simplify the if: conditions for all chained jobs
As all the other jobs depend on the "prepare" job, it's enough to
keep the condition within the "prepare" job and remove/simplify
the rest.
2025-06-30 14:13:23 +03:00
Martin Storsjö 6cc02cf854 github: Update a comment to refer to the right job 2025-06-30 14:12:02 +03:00
Martin Storsjö 04bc2bc1c5 github: Build the whole multiplatform docker image with Dockerfile.toolchain
This makes the docker image contain a PGO optimized compiler,
without needing to redo all of the PGO build stages in docker.

This reverts commit 8f42112719,
and fixes building the multiplatform image in a simpler way.

Instead of doing two separate builds, with separate Dockerfiles,
just do one multiplatform build of one Dockerfile, which
docker runs serially, for each one of the included architectures,
just packaging the prebuilt toolchains in the docker image.
2025-06-25 11:51:07 +03:00
Martin Storsjö ca34a15634 github: Build the msvcrt toolchains with LTO and PGO 2025-06-25 11:51:07 +03:00
Martin Storsjö 80fad73644 github: Build with PGO
Using Frontend instrumentation rather than IR. This gives less
total speedup, but makes the profile much more usable for cross
other build targets.

Build the full Linux toolchain in stage1; this avoids needing to
rebuild runtimes for doing the profiling in stage2, and avoids
needing to wait for stage3 to complete before cross building
for Windows.
2025-06-25 11:51:07 +03:00
Martin Storsjö 05625eaf62 github: Build the linux full toolchain already in stage1
This makes a cross compiler available before doing the full second
stage.
2025-06-25 11:51:07 +03:00
Martin Storsjö bc8eea6fc0 github: Build all second stage toolchains with thinlto 2025-06-25 11:51:07 +03:00
Martin Storsjö eb3cb9c31d github: Build macOS and Linux toolchains with a stage1 Clang 2025-06-25 11:51:07 +03:00
Martin Storsjö 9633e7501c github: Use dawidd6/action-download-artifact with the new ref: option
This allows specifying either a commit or a branch in the same
field, allowing simplifying both the workflow inputs, and
the expressions for passing commit/branch to both
dawidd6/action-download-artifact and actions/checkout.

This new option is available since
https://github.com/dawidd6/action-download-artifact/pull/329.
2025-06-03 16:36:12 +03:00
Martin Storsjö 5110f3da62 github: Update a comment about the homebrew libraries' architectures 2025-05-31 00:01:36 +03:00
Martin Storsjö 718a31ef1a github: Run the test-llvm and test-libcxx jobs scheduled on Sundays
In this case, run with the artifacts from the latest scheduled job.
2025-05-29 17:27:53 +03:00
Martin Storsjö 7b53b4af23 github: Fix specifying a commit rather than a branch for manual jobs
As the branch field has a default value "master", this default
not only applies when the dialog box for starting the manual
workflow is presented. But even if the prefilled branch field
is cleared, the default value also gets substituted when submitting.

In this case, when the commit and branch fields are mutually
exclusive, we can't easily have a default. Instead change the
uses of the fields, ignoring the branch field if the commit field
is filled.

If the dawidd6/action-download-artifact action would support
specifying either a commit or a branch in the same field, like
actions/checkout does, we wouldn't need this distinction at all;
this request is tracked upstream at
https://github.com/dawidd6/action-download-artifact/issues/242.
2025-05-29 17:27:53 +03:00
Martin Storsjö 20ea49c91e github: Build test-libcxx with __USE_MINGW_ANSI_STDIO=0 on arm
On arm, we don't need to use the mingw custom printfs for long
doubles.
2025-05-25 16:00:55 +03:00
Martin Storsjö 38847df515 github: Use msys instead of mingw64 for running test-toolchain 2025-05-25 12:08:21 +03:00
Martin Storsjö e20f0e3acd github: Stop manually installing ninja
Since https://github.com/actions/runner-images/pull/11706,
https://github.com/actions/runner-images/pull/11707 and
https://github.com/actions/runner-images/pull/11737, ninja is
preinstalled in the Ubuntu, macOS and x86 Windows runner images.
(See https://github.com/actions/runner-images/issues/11391 for the
overall issue where this was finally agreed to be installed.)

It is still missing in the windows-11-arm images though, so keep
installing it in any jobs running on Windows.
2025-05-24 23:46:55 +03:00
Martin Storsjö 16b3ddfbfc github: Use "check-runtimes" rather than individual "check-cxx" etc
This makes sure to run all three testsuites, even if there are
failures in one of them.
2025-05-23 14:54:42 +03:00
Martin StorsjöandJeremy Drake d1ca6b578a github: Run test-libcxx on ARM too
This requires setting CMAKE_CXX_COMPILER_TARGET manually; the LLVM
build system infers the wrong architecture when CMake is an
x86_64 binary.

(The wrong inferred architecture doesn't affect building libcxx,
but the wrong architecture gets passed as --target= parameter
when running the tests.)

Since 9c67ae861ccb0312fc680414a8441892d169d14a in llvm-project
(May 9th), these tests should pass on aarch64 too.

Co-authored-by: Jeremy Drake <github@jdrake.com>
2025-05-10 11:53:04 +03:00
Martin Storsjö 6db08d6e89 github: Switch back to macos-latest for the runners
Currently, "macos-latest" gets "macos-14", while there also are
"macos-15" runners available. Switch back to the latest variant
in preparation for that being updated at some point.

This reverts 7bd4b284f9.
2025-05-09 11:59:08 +03:00
Martin Storsjö 218ddb0bbd github: Run test-llvm on aarch64 too
As the preinstalled CMake on the windows-11-arm runners currently
is an x86_64 build, we need to explicitly specify
CMAKE_SYSTEM_PROCESSOR, and CMAKE_SYSTEM_NAME to make CMake
consider it a cross compilation (otherwise CMAKE_SYSTEM_PROCESSOR
gets overridden by CMAKE_HOST_SYSTEM_PROCESSOR, which gets influenced
by the x86_64 as CMake is running emulated).

We also need to set LLVM_HOST_TRIPLE, as the autodetection of
it relies on CMAKE_HOST_SYSTEM_PROCESSOR. The host triple needs
to be in normalized form with "-windows-gnu", otherwise a couple
dozens of tests fail.

We also include the AArch64 target, to make sure the built compiler
can generate code for the host.

Since 07bc54bf4554398b199f4dc849e5193b98422f23 in llvm-project
(May 5th), these tests should pass on aarch64 too.
2025-05-07 00:30:08 +03:00
Martin Storsjö 0a1f0030c1 github: Run test-compiler-rt on ARM too
Since 3e56f5f41843204b6e612362542b77110f8f8188 in llvm-project,
this should pass for all 4 architectures. (This doesn't pass
in the pinned release version right now.)
2025-05-06 16:38:13 +03:00
Martin Storsjö 9eb743ea3e github: Run test-openmp on ARM too 2025-05-06 16:36:53 +03:00
Jeremy Drake d7d9021b35 github: Run test-toolchain on ARM too 2025-05-06 16:36:50 +03:00
Martin Storsjö 7bc6345fa7 github: Copy in the dependency DLLs into the bin dir in test-llvm
This avoids relying on finding these dependencies in $PATH while
running the tests. Some tests may set PATH="" while executing them,
which previously caused those tests to fail in this build setup.

The same is not an issue with MSVC builds with
-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreadedDLL, because those
DLLs are also available in global system directories (including
DLLs such as msvcp140.dll and vcruntime140.dll).
2025-05-06 11:23:42 +03:00
Martin Storsjö 11c51c62d4 run-tests: Rewrite detection of what tests we can try to execute
Autodetect whether we can run tests in Wine on unix.
2025-04-21 14:30:12 +03:00
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