Commit Graph
1217 Commits
Author SHA1 Message Date
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
Martin Storsjö 73e313146e build-llvm: Bump to LLVM 20.1.0 RC 2
Relevant changes in LLVM 20.1.x compared with LLVM 19.x are:

- Don't warn when doing LTO with mixed Rust/C object files, where
  the target triples differ in the vendor field
  (<arch>-w64-windows-gnu vs <arch>-pc-windows-gnu)
- Fix including LLVM/MSVC style import libraries in libraries linked
  with --whole-archive
- Support for files over 2 GB in the libcxx fstream methods
  tellg()/seekg()
- Lots of work on improved ARM64EC and ARM64X support in LLVM and LLD
- New linker flags --dependent-load-flag and --functionpadmin, similar
  to the corresponding lld-link/MS link.exe flags
- Improvements in address sanitizer, supporting many more x86
  instructions
- Changes to address sanitizer, that (unintentionally) makes it fail
  harder than before when used together with msvcrt.dll. Using
  address sanitizer with msvcrt.dll is unsupported though.
2025-02-12 11:09:34 +02:00
Martin Storsjö 259ed4ac94 build-mingw-w64: Bump to the latest version as of Feb 12th 2025-02-12 10:46:32 +02:00
Martin Storsjö 1764fe8c9e build-libcxx: Stop setting the LLVM_PATH variable
Since 6127724786d581d2653df7420d1f28709288a107 in llvm-project
(Nov 4 2024), this variable no longer is referenced, and it
probably hasn't been needed for much longer than that.
2025-02-11 10:12:18 +02:00
Martin Storsjö 0b296aefc0 run-tests: Skip asan tests on msvcrt
Asan doesn't really run properly on msvcrt.dll; skip testing it
in that configuration.

See discussion on https://github.com/llvm/llvm-project/pull/120397
and https://github.com/mstorsjo/llvm-mingw/issues/224 for context
around this.
2025-02-11 10:04:41 +02:00
Martin Storsjö 8dabd61494 test: Rename HAVE_SANITIZERS to HAVE_ASAN
Always run the ubsan tests; those should work on any architecture
now.
2025-02-11 10:02:57 +02:00
Martin Storsjö 9cb5206253 run-tests: Remove an ancient chceck for UCRT
It's enough to check for the _UCRT define these days, as long
as we are including a header that pulls in the base mingw headers.

Since 8b2ece59fccf0a65257b1ba2fe8d67d7e8a2e8c1 in mingw-w64 (May 6th
2019), the mingw-w64 headers define _UCRT. Since
94a28397eec79e54ce5a8354512f43da88f815d2 (committed on the same date),
the mingw-w64 headers use 0xE00 instead of 0x1400 for UCRT.
2025-02-11 10:00:36 +02:00
Martin Storsjö c412f4ac74 test: Add missing cases of CPPFLAGS/CFLAGS/CXXFLAGS
Normally neither of these variables are set, but by applying them
consistently, it allows testing building with extra flags set.
2025-02-10 13:57:53 +02:00
Martin Storsjö f730b67e8e test: Correctly use CXXFLAGS for one case of .cpp file compilation 2025-02-10 13:57:50 +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ö e3a808fec6 build-llvm: Bump to LLVM 20.1.0 RC 1 2025-02-03 15:02:29 +02:00
Martin Storsjö 7ec4f40860 build-mingw-w64: Bump to the almost latest version as of Feb 3rd
Skipping the topmost two commits, as they are known to cause
problems building Firefox.
2025-02-03 15:00:44 +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ö 0087c59c17 build-llvm: Bump to LLVM 19.1.7 2025-01-14 17:55:21 +02:00
Martin Storsjö f826e789a8 build-mingw-w64: Bump to the latest version in the github mirror
The github mirror we clone from is currently slightly behind
the main sourceforge repository though.
2025-01-14 17:53:23 +02:00
Martin Storsjö e8409d9954 Revert "Docker.system-clang: Fix building with older LLVM versions after recent changes"
This reverts commit 490dfffb32.

This is no longer necessary, as we now can build runtimes using
the latest LLVM 19 versions, that support building sanitizers
for all architectures.
2025-01-07 23:15:51 +02:00