Commit Graph
1452 Commits
Author SHA1 Message Date
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ö c299805bc7 build-all: Don't mention a nonexistent --with-python option
This was added in 050b4ef701, but
such an option never existed in build-all.sh, only in
build-cross-tools.sh.
2025-05-29 17:33:48 +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ö 093d8edefb strip-llvm: Keep clang-scan-deps-wrapper too
If strip-llvm.sh is (re)run after install-wrappers.sh, we don't
want it to remove any of the files installed by install-wrappers.sh.
2025-05-29 17:27:53 +03:00
Martin Storsjö 40ccfd163e build-llvm: Bump to LLVM 20.1.6 2025-05-28 23:03:14 +03:00
Martin Storsjö 1d097013b0 build-mingw-w64: Bump to the latest version as of May 28th 2025-05-28 23:02:55 +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ö 2eebbd670e build-make: Prefer downloading with curl over wget
Curl produces less log output while downloading.
2025-05-23 21:55:08 +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ö a453b3c9b3 test: Skip inline x86_64 assembly on arm64ec 2025-05-18 22:30:20 +03:00
Martin Storsjö 9f59c26011 test: Fix the test-scan-deps test for arm64ec
Add a separate arm64ec arch case, skip the x86_64 one.
2025-05-18 22:29:52 +03:00
Martin Storsjö 1b781e898e build-mingw-w64: Use --enable-libarm64 for arm64ec 2025-05-18 22:28:25 +03:00
Jacek Caban 486d72ff9e Merge aarch64 and arm64ec compiler-rt libs
Clang expects the aarch64 compiler-rt name on ARM64EC. While this could be adjusted
in Clang, the current approach mirrors MSVC, where the core CRT is provided as
archives containing both EC and native support. Ideally, the LLVM build system would
handle this automatically, but for now we can merge it here.
2025-05-18 22:28:25 +03:00
Jacek Caban 192334d04b Skip openmp for ARM64EC target 2025-05-18 22:28:25 +03:00
Martin Storsjö 5609c66213 build-llvm: Bump to LLVM 20.1.5 2025-05-14 22:25:18 +03:00
Martin Storsjö d48a0f2e40 build-mingw-w64: Bump to the latest version as of May 14th 2025-05-14 22:24:58 +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ö e633b48b63 test: Add a comment about a test that fails when run emulated on arm
The test is specific to building for x86, for a msvcrt.dll target,
and running that binary on arm.
2025-05-02 13:56:51 +03:00
Martin Storsjö 4c82a47afb build-llvm: Bump to LLVM 20.1.4 2025-04-30 12:07:34 +03:00
Martin Storsjö 13ceefe568 build-mingw-w64: Bump to the latest version as of Apr 30th 2025-04-30 12:07:02 +03:00
Billy Laws 7b66916f51 wrappers: Add arm64ec support to ld-wrapper.sh 2025-04-30 12:06:31 +03:00
Jacek Caban fb25da229a wrappers: Add arm64ec-w64-windows-gnu.cfg 2025-04-30 12:06:31 +03:00
Martin Storsjö c4d1bda332 build-compiler-rt: Don't assume that the build produced asan files for armv7/aarch64
When removing them, also accept that they are missing to begin
with.

Since 655933070219f2b6f3a457c7e5af7edd4b5291b4 in llvm-project
(Apr 25th), asan only gets built for x86.
2025-04-26 07:21:14 +03:00
Martin Storsjö e21ad3bba2 run-tests, test-libcxx-module: Extend checks for MSYS to also check for CYGWIN 2025-04-21 14:31:57 +03:00
Martin StorsjöandJeremy Drake b8ef2ab96e run-tests: Inspect the Windows build number on WSL
Co-authored-by: Jeremy Drake <github@jdrake.com>
2025-04-21 14:31:57 +03:00
Martin Storsjö 81434376ae run-tests: Detect if running on WSL
Set the right variables needed for running tests in this configuration,
and try to guess which architectures can be executed.
2025-04-21 14:31:48 +03:00
Jeremy Drake 7ba0232841 run-tests: Inspect the msys2 "uname" output
While msys2 itself may be x86_64 running emulated, it still does
indicate whether the host machine runs ARM64 (since recent
changes in https://github.com/msys2/msys2-runtime/pull/244 and
https://github.com/msys2/msys2-runtime/pull/245).

The msys2 uname command also exposes the Windows build number,
which allows determining whether armv7 and/or x86_64 binaries
can be executed.
2025-04-21 14:30: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ö 424a1ede1b run-lldb-tests: Use -dumpmachine rather than parsing the output of --version
This matches what is done in a couple of other scripts too.
2025-04-21 13:59:39 +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
Jeremy Drake 0aaef5d950 enable --disable-dependency-tracking on CYGWIN also
it also takes an inordinate amount of time there.
2025-04-20 23:24:40 +03:00
Martin Storsjö 20099b94e6 build-mingw-w64: Use silent rules for compiling things
This reduces the amount of log output significantly.

For the linux build on github actions, this reduces the log output
from 8.5 MB down to 4.7 MB.
2025-04-17 23:34:40 +03:00
Martin Storsjö eeb12404b5 build-mingw-w64-libraries: Consistently use $MAKE
This was not converted in 5fe2e05419,
probably because those (automake based) makefiles work fine with
BSD make.

Use $MAKE here anyway, for consistency.
2025-04-17 23:34:28 +03:00
Martin Storsjö c608b57a2e build-llvm: Bump to LLVM 20.1.3 2025-04-17 14:56:18 +03:00
Martin Storsjö 906f782c66 build-mingw-w64: Bump to the latest version as of Apr 17th 2025-04-17 14:56:02 +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ö ed0234b254 docker: Bump the base images to Ubuntu 24.04
As the releases are built (without a surrounding extra container)
on GitHub Actions these days, we don't need to hold the docker
images back to an old version for the sake of compatibility;
instead, updating to a newer version provides more modern tools
for users of the docker image.

The script release.sh, which earlier was used for building releases,
uses docker for doing clean isolated builds, and thus needs to be
updated with the distro version used in the dockerfiles.
2025-04-09 14:28:54 +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ö 19b4d2a434 test: Add tests for tchar.h routines 2025-04-02 20:38:48 +03:00