Commit Graph
1436 Commits
Author SHA1 Message Date
Martin Storsjö ed1e71ba54 github: Upgrade upload-artifact@v4 to upload-artifact@v6 2026-03-13 12:19:18 +02:00
Martin Storsjö 89faddb7a3 github: Upgrade checkout@v4 to checkout@v6
checkout@v5 should be the same as checkout@v4, just running on
Node 24. checkout@v6 has got a few other minor changes that
shouldn't make any difference; opt in to newer behaviours now.
2026-03-13 12:19:18 +02:00
Martin Storsjö fabc4571b2 build-python: Build the native libffi as a static library only
This fixes importing the _ctypes module, if a shared libffi doesn't
happen to exist on the host system with the right so version.
Since Python 3.12, such a build error ends up failing the build,
while it previously passed silently even if some parts of the build
had failed.
2026-03-13 12:18:30 +02:00
Martin Storsjö 84c8483eba github: Fix testing openmp in the runtimes build
This makes sure the openmp tests actually are executed; since
switching to the runtimes build of openmp for the tests (in
98684ab807), the tests weren't
executed, as it no longer found the tools necessary for executing
the tests - as they are expected to be specified differently
in the runtimes build mode.

This requires the commit 48a5119d8e7d7236a28c14d06ec215ef3366ef90
(backported to 22.x in 9794a7932465bdc244b327388905d66df38485e2,
part of the 22.1.1 release) in llvm-project, to be able to run
tests without actually building clang in the same build as the
test tools.
2026-03-11 22:00:27 +02:00
Martin Storsjö cb0e9ef0be build-llvm: Bump to LLVM 22.1.1 2026-03-11 09:39:31 +02:00
Martin Storsjö 644174c7cc build-mingw-w64: Bump to the latest version as of March 11th 2026-03-11 09:38:58 +02:00
Martin Storsjö a89f6c58f4 build-libcxx: Enable -D__USE_MINGW_ANSI_STDIO=1 for libcxx on x86
This ensures correctly formatted long doubles.

This fixes issue #545.
2026-03-03 10:52:42 +02:00
Martin Storsjö dc9837d908 test: Add the original test case for atomic loads of varying sizes
This covers the original testcase from
https://github.com/mstorsjo/llvm-mingw/issues/538.
2026-02-25 12:13:08 +02:00
Martin Storsjö 49afca5984 test: Add a test for atomic load/store of large integers
Test atomically loading/storing 128 bit integers on 64 bit, and
64 bit integers on 32 bit.

This test case covers the root cause of
https://github.com/mstorsjo/llvm-mingw/issues/538.
2026-02-25 12:13:08 +02:00
Martin Storsjö 9610c61240 build-llvm: Bump to LLVM 22.1.0 final 2026-02-24 10:26:41 +02:00
Martin Storsjö 1d8aa59fbf build-mingw-w64: Bump to the latest version as of Feb 24th 2026-02-24 10:26:00 +02:00
Martin Storsjö 98684ab807 github: Try to test openmp through the runtimes directory
Since 6295b8e763503644961f9087382f80965b98d466 in llvm-project,
one no longer can configure the openmp project entirely standalone,
one has to do it through the runtimes directory.

However, in practice, this currently leads to no tests being
executed at all, as the runtimes build setup doesn't support
pointing to an external FileCheck executable - it currently has
to be part of a full bootstrapping build.
2026-02-19 23:37:10 +02:00
Martin Storsjö f415e25b3e build-openmp: Switch to building through the runtimes directory
Since 6295b8e763503644961f9087382f80965b98d466 in llvm-project,
it's no longer possible to build openmp entirely standalone;
now one has to build it through the runtimes directory.
2026-02-19 23:32:42 +02:00
Martin Storsjö 5da3d4b11b build-llvm: Bump to LLVM 22.1.0 RC 3 2026-02-10 10:07:25 +02:00
Martin Storsjö a68d8c0421 build-mingw-w64: Bump to the latest version as of Feb 10th 2026-02-10 10:07:07 +02:00
Martin Storsjö 498cc00a1d build-llvm: Bump to LLVM 22.1.0 RC 2 2026-01-27 13:33:36 +02:00
Martin Storsjö d1b94a9da6 build-mingw-w64: Bump to the latest version as of Jan 27th 2026-01-27 13:33:14 +02:00
Martin Storsjö bfb0715614 build-mingw-w64, build-busybox: Bump to a newer version
This version of mingw-w64 includes the function "mkdtemp", which
breaks building the previously pinned version of busybox-w32 on i686.

Update both projects in sync, so that builds with newer nightly
versions of mingw-w64 also succeed.
2026-01-19 23:24:28 +02:00
Martin Storsjö 1ea8bbae4e build-busybox: Don't error out if reinstalling into an existing directory 2026-01-19 13:24:59 +02:00
Martin Storsjö f25f2fb3aa build-python: Update to Python 3.13.11 2026-01-19 00:00:37 +02:00
Martin Storsjö 1032736a4c build-llvm: Bump to LLVM 22.1.0 RC 1
Some notable changes since LLVM 21.x related to mingw:

- Handle an uncommon error code in libcxx's std::filesystem,
  avoiding spurious test failures if running the libcxx test suite
  (noted at least occasionally on Github Actions)
- Reinstate x86 stack probe functions in compiler-rt, that we earlier
  beleived weren't used - but turned out to be used by GCC in i386
  mode
- Fix interpretation of a few corner case aarch64 SEH unwind opcodes
- Support for FAT LTO (compile with -ffat-lto-objects, link with
  -Wl,--fat-lto-objects)
- llvm-objcopy: Support the -p option for COFF targets
- llvm-readobj: A new option --coff-pseudoreloc for dumping information
  and symbols for mingw runtime pseudo relocations
- Lots of various fixes for the cygwin target
- Improve linking a custom CRT with binutils ld (by passing the custom
  CRT -l option at the same place as the original default -lmsvcrt)
- Make lld use the right mingw specific DLL entry point implicitly,
  improving some Rust use cases
- Fix running the libcxx tests with optimization for mingw targets,
  allowing more test coverage of the code generation paths
2026-01-16 13:09:06 +02:00
Martin Storsjö f06d2218d6 build-mingw-w64: Bump to the current version as of Jan 16th 2026-01-16 12:48:50 +02:00
Martin Storsjö f5335a4479 github: Run test-toolchain using busybox rather than msys2 2026-01-08 11:34:24 +02:00
Martin Storsjö 8220db557f run-tests: Use mingw32-make in busybox
This is the make tool we'd expect to use in such a setup.
2026-01-08 11:34:24 +02:00
Martin Storsjö 98a14ed36f test: Support mingw32-make running with a proper sh.exe 2026-01-08 11:34:24 +02:00
Martin Storsjö 90633bc87b run-tests: Add busybox specific logic for figuring out what architectures we can execute 2026-01-08 11:34:24 +02:00
Martin Storsjö e2a64961c6 release.sh: Enable WITH_BUSYBOX 2026-01-08 11:34:24 +02:00
Martin Storsjö 17864b5274 github: Build busybox in the windows toolchains 2026-01-08 11:34:24 +02:00
Martin Storsjö 64363c14db build-busybox: Disable make, copy mingw32-make.exe as make.exe
The built-in make is a POSIX make tool, which doesn't support
GNU make features.

As we do have GNU make, insert that as "make.exe" in the busybox
directory. Don't do that in the main llvm-mingw bin directory,
which can be used with other environments (e.g. msys2), where the
native make is to be preferred.
2026-01-08 11:34:00 +02:00
Martin Storsjö 1c87f45543 dockerfile: Add an option for building busybox 2026-01-08 11:32:12 +02:00
Martin Storsjö e4bee5bfa4 build-cross-tools: Add an option for building busybox 2026-01-08 11:32:12 +02:00
Martin Storsjö 15659f926b build-busybox: Disable CONFIG_FEATURE_FAIL_IF_UTF8_MANIFEST_UNSUPPORTED
This allows running the built busybox on older versions of
Windows that don't support the utf8 manifest. (The utf8 manifest
is supported since Windows 10 update 1903.)
2026-01-08 11:32:12 +02:00
Martin Storsjö 49aa05c5bc build-busybox: Disable building the AR applet
When building with mingw32-make, it prefers executing commands
through "sh.exe" if it is available.

When busybox sh.exe executes "ar", it prefers executing its own
internal tool over a potential external tool found in $PATH.

(This can be avoided by setting 'export BB_OVERRIDE_APPLETS="ar"',
but as this build of busybox is expected to be used with llvm-mingw,
disable the built-in "ar" tool outright.)
2026-01-08 11:32:12 +02:00
Martin Storsjö 8fb8fb4b05 build-busybox: Add a script for building busybox for Windows 2026-01-08 11:32:12 +02:00
Martin Storsjö 4a02966e4b build-make: Install the license file 2026-01-08 11:31:52 +02:00
Martin Storsjö 0b6cd54c4f build-mingw-w64-tools: Add a .txt suffix on the COPYING files 2026-01-08 11:31:38 +02:00
Martin Storsjö 9e00ce96c7 build-python: Install the license files for libffi and python 2026-01-08 11:26:44 +02:00
Martin Storsjö 83a3ca8e09 build-llvm: Disable LLVM_ENABLE_BINDINGS
According to https://github.com/mstorsjo/llvm-mingw/issues/533,
if OCaml support is detected and the LLVM OCaml bindings are built,
they are attempted to be installed in a path that require root access.
2025-12-26 00:35:35 +02:00
Martin Storsjö 6465b7f2ca github: Cache the gnu make tarball in the msvcrt build too
This applies the changes from b0bbde0073
to the msvcrt toolchain build as well.
2025-12-17 13:48:30 +02:00
Martin Storsjö 88f330fefc build-llvm: Bump to LLVM 21.1.8 2025-12-16 15:15:59 +02:00
Martin Storsjö ecabce6cc3 build-mingw-w64: Bump to the latest version as of Dec 16th 2025-12-16 15:15:28 +02:00
Martin Storsjö 322c941069 run-tests: Use "uname" instead of "uname -s"
"-s" is the default option if none is specified.

This improves consistency with other uses of "uname" in the
scripts.
2025-12-16 11:50:36 +02:00
Martin Storsjö 309cdd5690 run-tests: Improve a comment 2025-12-16 11:50:23 +02:00
Martin Storsjö 1ce1cf7c3d build-llvm: Allow overriding the llvm repo url through LLVM_REPOSITORY
This matches the existing LLVM_VERSION env variable.
2025-12-08 14:50:42 +02:00
Martin Storsjö b0bbde0073 github: Cache the gnu make tarball
This avoids breaking the build if the gnu download server is
unavailable.
2025-12-02 13:56:12 +02:00
Martin Storsjö 06e91d01b0 github: Fix passing arguments to lit for the openmp tests
The previous parameter wasn't used.
2025-12-02 13:38:47 +02:00
Martin Storsjö 1c915916c7 build-llvm: Bump to LLVM 21.1.7 2025-12-02 11:29:17 +02:00
Martin Storsjö 3b2ce1d0d0 build-mingw-w64: Bump to the latest version as of Dec 2nd 2025-12-02 11:28:35 +02:00
Martin Storsjö 259cd18db3 build-llvm: Bump to LLVM 21.1.6 2025-11-18 14:40:09 +02:00
Martin Storsjö ac41e524f3 build-mingw-w64: Bump to the latest version as of Nov 18th 2025-11-18 14:39:53 +02:00