Commit Graph
1210 Commits
Author SHA1 Message Date
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
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