Commit Graph
1191 Commits
Author SHA1 Message Date
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
Martin Storsjö 4306cadf97 Docker.system-clang: Update the system-clang testcase to Ubuntu 24.04
Update to using clang-18 from the host system; version 16 or
newer is required for the implicitly selected config files
(which are used since 866d47cced);
that version changed whether the target triples are normalized
before locating config files.

This allows building runtimes with the current versions of LLVM
19.x, rather than needing to select an older version.
2025-01-07 23:15:13 +02:00
Martin Storsjö 1f99e3e26e install-wrappers: Pass --config-system-dir in the --host-clang mode
This is required since e2e9216853
for this configuration to be able to find the config files.

Also add the *.cfg files to the Dockerfile COPY line.
2025-01-07 23:08:29 +02:00
Martin Storsjö 83b64f3049 docker: Install nasm instead of yasm
This is one of the packages which aren't needed by the toolchain
build itself, but is provided as a convenience to useres of the image.

Many projects that build standalone x86 assembly can use either
nasm or yasm, but lately most projects prefer nasm (which has
support for newer x86 simd extensions).
2025-01-07 15:52:42 +02:00
Martin Storsjö da453b9920 docker: Stop installing python3-distutils
In Ubuntu 24.04, this package is no longer available.

However, this package probably never actually was needed anyway,
and was probably only provided as a convenience for users of the
docker image.
2025-01-07 15:47:57 +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ö 8400557f2b build-llvm: Bump to LLVM 19.1.6 2024-12-17 17:35:57 +02:00
Martin Storsjö 9894240cb1 build-mingw-w64: Bump to the latest version as of Dec 17th 2024-12-17 17:34:50 +02:00
Martin Storsjö f84079bb71 macos: Bump the minimum deployment target to macOS 10.12
Since https://github.com/llvm/llvm-project/pull/117252 and
https://github.com/llvm/llvm-project/commit/186fac33d08b34be494caa58fe63972f69c6d6ab,
part of the latest git main branch, LLDB uses std::shared_mutex.

On macOS, std::shared_mutex is only available since macOS 10.12.

This change raises the deployment target from 10.9 to 10.12.
2024-12-13 09:51:58 +02:00
Martin Storsjö 5fe69a92ac build-python: Bump to Python 3.12.7 2024-12-10 11:24:43 +02:00
Martin Storsjö 8e6bbb7b83 test: Waive issues in frexp* functions in msvcrt.dll on ARM
These issues appear when testing with the real msvcrt.dll on ARM;
if testing in Wine, these functions behave as expected.
2024-12-04 12:34:40 +02:00
Martin Storsjö 14dad0c971 build-llvm: Bump to LLVM 19.1.5 2024-12-03 15:09:48 +02:00
Martin Storsjö 2f03c4a961 build-mingw-w64: Bump to the latest version as of Dec 3rd 2024-12-03 15:09:26 +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ö 9128fa8dba build-llvm: Bump to LLVM 19.1.4 2024-11-19 15:21:30 +02:00
Martin Storsjö 2a15821e30 build-mingw-w64: Bump to the latest version as of Nov 19th 2024-11-19 15:21:10 +02:00
Martin Storsjö 53d1f7b628 readme: Add links for downloading and installing UCRT on older Windows versions 2024-11-19 14:01:06 +02:00
Martin Storsjö f343f6447b readme: Remove a paragraph about the toolchain being immature
At this point, it is reasonably mature.

There still obviously are projects that won't build with llvm-mingw,
both due to unimplemented features that GCC/binutils have, or for
other reasons, but the toolchain has seen quite a lot of usage
since this paragraph originally was written.
2024-11-19 13:36:05 +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ö ccfa1317a5 test: Test building crt-test.c as C++ 2024-11-12 11:31:44 +02:00
Martin Storsjö 2b80cf0efd test: Fix crt-test.c to be buildable in C++ mode
Make it work with both GCC on Linux, llvm-mingw, and MSVC.
2024-11-12 11:31:44 +02:00
Martin Storsjö e457f40bd9 test: Explicitly test with -D__USE_MINGW_ANSI_STDIO=0 as well 2024-11-12 11:31:44 +02:00
Martin Storsjö da1e61f7e5 test: Waive issues in crt-test.c if running with msvcrt.dll and -D__USE_MINGW_ANSI_STDIO=0 2024-11-12 11:31:43 +02:00
Martin Storsjö 8eec3b91b3 test: Fix code style in crt-test.c 2024-11-12 11:31:43 +02:00
Martin Storsjö 531adeb304 build-llvm: Don't hardcode default choices of linker/stdlib on Windows
This should help with using clangd for other mingw toolchain
installs.
2024-11-06 11:40:31 +02:00
Martin Storsjö 63691c69bc wrappers: Skip the clang-scan-deps wrapper script on Unix
The wrapper script no longer has any purpose on Unix.

Just do a plain symlink to the clang-scan-deps tool.

On Windows, the wrapper executable still is used to inject a
default -target option, if the executable name doesn't contain
a triple.
2024-11-06 11:40:31 +02:00