Commit Graph

1415 Commits

Author SHA1 Message Date
Martin Storsjö 0979cfdd38 build-python: Update to Python 3.14.5 2026-06-04 12:38:09 +03:00
Martin Storsjö 658144313c WIP: github: Test the Dockerfile.cross
Run this with the non-dev version of the image, which is the
previous release, so we end up fetching a new version of llvm,
instead of reusing whatever was checked out in the dev image.
2026-06-04 12:35:22 +03:00
Martin Storsjö c8cb7b2852 WIP: github: Enable/disable jobs for testing Python
Run the testsuites on Windows, which use the just-built Python,
but skip other jobs.
2026-06-04 12:35:22 +03:00
Martin Storsjö a94160ee67 WIP: github: Switch the roles of x86_64 and aarch64 in the linux jobs 2026-06-04 12:35:22 +03:00
Martin Storsjö 3bce563ec8 Revert "github: Build with PGO/LTO" 2026-06-04 12:35:22 +03:00
Martin Storsjö 0272df2cc1 build-llvm: Bump to LLVM 22.1.7 20260602 2026-06-02 12:20:07 +03:00
Martin Storsjö de5e31d1dd build-mingw-w64: Bump to the latest version as of Jun 2nd 2026-06-02 12:19:51 +03:00
Martin Storsjö 8adc11d4cf build-llvm: Bump to LLVM 22.1.6 20260519 2026-05-19 12:27:40 +03:00
Martin Storsjö 4ccd364457 build-mingw-w64: Bump to the latest version as of May 19th 2026-05-19 12:27:22 +03:00
Martin Storsjö ba72461e23 build-llvm: Bump to LLVM 22.1.5 20260505 2026-05-05 22:53:07 +03:00
Martin Storsjö 88885f361e build-mingw-w64: Update to the latest version as of May 5th 2026-05-05 22:52:21 +03:00
Martin Storsjö d69f101b09 docker: Update the system-clang testcase to use Clang 20
This is the newest version currently available in the Ubuntu 24.04
repos.

This fixes building; previously it failed to build libc++, which only
supports being built with one of the two preceding versions of Clang.
2026-04-28 14:23:41 +03:00
Martin Storsjö b59056fe41 docker: Remove arm64ec from the system-clang testcase
Building for arm64ec requires Clang/LLD 21.

This was added in cb92de78e7 without
considering the context in this testcase properly.
2026-04-28 14:18:16 +03:00
Martin Storsjö 61ddd976fe Revert "test: crt-test: Skip a test for cos(-NAN) == -NAN when optimizing"
This reverts commit 1d8c107d49.

After 49e14021be, when using F(-NAN)
instead of -F(NAN) to hide the negation, this test passes correctly.
I hadn't realized that GCC and Clang optimized cos(-x) = cos(x), when
I made 1d8c107d49 (and at the time, the
F() macro didn't work properly with -NAN on all toolchains).
2026-04-24 15:39:58 +03:00
Martin Storsjö 49e14021be test: crt-test: Prefer F(-NAN) instead of -F(NAN)
In the former form, the negation of NAN is hidden inside the
optimization blocking macro/wrapper. After
9be66e9d22, F(-NAN) works just as
well as -F(NAN).

This avoids test issues with recent optimizations in LLVM.
https://github.com/llvm/llvm-project/pull/193586 seems to make
the compiler consider known symmetry for hyperbolic math functions,
exploiting the fact that cosh(-x) is equal to cosh(x) (for values
other than NANs). By hiding the negation inside the F() wrapper,
the compiler can't reason about is existence.
2026-04-24 14:39:15 +03:00
Martin Storsjö e604eb6f1f test: crt-test: Remove a comment which no longer is accurate
Since 9be66e9d22, the F() macro
no longer uses strtod(), so the details about what strtod("NAN")
and strtod("-NAN") returns are no longer relevant.
2026-04-24 14:38:26 +03:00
Martin Storsjö b68aefdbb5 test: crt-test: Remove unused variables 2026-04-24 14:34:20 +03:00
Martin Storsjö 81fba99f8a build-llvm: Bump to LLVM 22.1.4 20260421 2026-04-21 11:59:07 +03:00
Martin Storsjö 11786a6d76 build-mingw-w64: Bump to the latest version as of April 21st 2026-04-21 11:57:48 +03:00
Martin Storsjö 49df766757 build-llvm: Bump to LLVM 22.1.3 20260407 2026-04-07 14:08:35 +03:00
Martin Storsjö 0456111453 build-mingw-w64: Bump to the latest version as of Apr 7th 2026-04-07 14:07:53 +03:00
Martin Storsjö 16f4a0af0c build-llvm: Bump to LLVM 22.1.2 20260324 2026-03-24 23:42:53 +02:00
Martin Storsjö dfb90d5ea7 build-mingw-w64: Bump to the latest version as of Mar 24th 2026-03-24 23:42:33 +02:00
Martin Storsjö abc77c22a8 build-compiler-rt: Stop providing asan in msvcrt builds
See 0b296aefc0 for context, where
we stopped testing asan in msvcrt builds - see discussion at
https://github.com/llvm/llvm-project/pull/120397,
https://github.com/mstorsjo/llvm-mingw/issues/224 and
https://github.com/mstorsjo/llvm-mingw/issues/552.

This should make it clearer that asan isn't supported in msvcrt
builds, instead of silently just providing files that are known
not to work.

See 4718b81419 for earlier context
for where we remove the asan runtimes in armv7/aarch64 builds,
where the files do get built, but they don't work properly yet
(even on UCRT).
2026-03-22 12:45:58 +02:00
Martin Storsjö 13e18154e6 github: Upgrade dawidd6/action-download-artifact to v19 2026-03-21 15:31:53 +02:00
Martin Storsjö c737c4a0b6 build-python: Add --with-pic to fix the native static libffi on x86_64
This fixes building python on x86_64 linux after
fabc4571b2.
2026-03-13 14:10:49 +02:00
Martin Storsjö 98dddfb9a4 github: Upgrade cache@v4 to cache@v5 2026-03-13 12:19:18 +02:00
Martin Storsjö c7e087fbd4 github: Upgrade download-artifact@v7 to download-artifact@v8
This has some behaviour changes, but I believe it shouldn't hit
our usage.
2026-03-13 12:19:18 +02:00
Martin Storsjö b8c5a4ffa1 github: Upgrade download-artifact@v4 to download-artifact@v7 2026-03-13 12:19:18 +02:00
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 20260311 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 20260224 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 20260210 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 20260127 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
20260116
2026-01-16 13:09:06 +02:00