Commit Graph
1232 Commits
Author SHA1 Message Date
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
Martin Storsjö 2280c59bc7 Revert "build-lldb-mi: Fix building with CMake 4.0"
This reverts commit debafe1a80.

This workaround is no longer needed as this is fixed in upstream
lldb-mi.
2025-04-02 19:58:38 +03:00
Martin Storsjö f92375b57b build-lldb-mi: Bump to the latest upstream version
This version fixes building with CMake 4.0 out of the box.
2025-04-02 19:58:10 +03:00
Martin Storsjö c2b534c206 build-llvm: Bump to LLVM 20.1.2
This version adds support for the --identify flag in llvm-dlltool.
2025-04-02 11:47:31 +03:00
Martin Storsjö 222186c6fc build-mingw-w64: Bump to the latest version as of Apr 2nd 2025-04-02 11:46:32 +03:00
Martin Storsjö debafe1a80 build-lldb-mi: Fix building with CMake 4.0
CMake 4.0 removed compatibility with CMake versions below 3.5.
Therefore, it errors out on projects with a
cmake_minimum_required() less than 3.5.

(Since CMake 3.31, it already warns that compatibility with versions
below 3.10 is deprecated.)

By passing CMAKE_POLICY_VERSION_MINIMUM=3.5, we indicate that
we are ok with configuring this project with the policies of
CMake 3.5, even if the project files themselves don't state it.

This flag is only recognized by CMake 4.0; older versions will
only warn that the manually specified variable is unused.
2025-04-02 11:45:35 +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ö 61044083ab build-python: Bump to Python 3.12.9 2025-04-01 19:42:19 +03:00
Martin Storsjö 867ffad816 build-python: Bump to libffi 3.4.7 2025-04-01 19:42:18 +03:00
Martin Storsjö 7e7e506bbc test: Add testing of swprintf/_swprintf/_snwprintf and related functions 2025-03-20 18:22:29 +02:00
Martin Storsjö 4f0ec7f8f8 test: Add testing of various variants of strtok/wcstok 2025-03-20 17:28:57 +02:00
Martin Storsjö 4ba1178755 build-llvm: Bump to LLVM 20.1.1 2025-03-19 11:18:31 +02:00
Martin Storsjö 948720456b build-mingw-w64: Bump to the latest version as of Mar 19th 2025-03-19 11:18:06 +02:00
Martin Storsjö dc3e0ecbe6 build-llvm: Bump to LLVM 20.1.0 final 2025-03-05 09:48:25 +02:00
Martin Storsjö 9f6fae5c47 build-mingw-w64: Bump to the latest version as of Mar 5th 2025-03-05 09:47:35 +02:00
Martin Storsjö b30dc55095 build-lldb-mi: Bump to the latest upstream version 2025-02-28 15:07:33 +02: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ö d3ba074621 build-llvm: Bump to LLVM 20.1.0 RC 3 2025-02-27 14:02:22 +02:00
Martin Storsjö ccbde8a13e build-mingw-w64: Bump to the latest version as of Feb 27th 2025-02-27 14:02:06 +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
Steve Lhomme 990ad67759 build-llvm: Install and keep llvm-lib
It's an equivalent to MSVC lib.exe [^1].

It is used by meson to find the DLL name from a .lib/.dll.a [^2].
The other option is dlltool, which is not the same as llvm-dlltool.

[^1] https://llvm.org/docs/CommandGuide/llvm-lib.html
[^2] https://github.com/mesonbuild/meson/blob/1e986554ef2071f59fb796cda5e66c448bde6ac9/mesonbuild/scripts/symbolextractor.py#L209
2025-02-13 12:03:26 +02:00