Commit Graph
1338 Commits
Author SHA1 Message Date
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
Mateusz Mikuła 9e39b82907 install-wrappers: Add config file symlinks for triples with vendor "pc" 2025-11-18 14:39:16 +02:00
Martin Storsjö 466fbcb68f build-llvm: Bump to LLVM 21.1.5 2025-11-04 11:47:32 +02:00
Martin Storsjö 18964a2b0b build-mingw-w64: Bump to the latest version as of Nov 4th 2025-11-04 11:47:09 +02:00
Martin Storsjö 09aac5c121 strip-llvm: Extend patterns to remove "offload-arch" and "yaml2macho-core" 2025-10-25 21:56:24 +03:00
Martin Storsjö e6cbbe9a35 test: Add a test for catching pointers by reference
This test should make sure that
https://github.com/mstorsjo/llvm-mingw/issues/522 doesn't
regress again.
2025-10-21 22:20:19 +03:00
Martin Storsjö 035a464964 build-llvm: Bump to LLVM 21.1.4
This version fixes catching pointer data types by reference in C++.

This version also fixes throwing C++ exceptions on aarch64 with
a debugger attached to the process.

Finally, this version fixes delayimport calling of C++ methods that
return structs on aarch64.
2025-10-21 11:30:59 +03:00
Martin Storsjö 84abc5e88a build-mingw-w64: Bump to the latest version as of Oct 21st 2025-10-21 11:30:11 +03:00
Norbert Lange b482faa3c1 fix: repair check if existing clang supports CFG
An existing clang might support Control flow guard, but does
so only for Windows targets.
2025-10-18 23:25:30 +03:00
Martin Storsjö 6f078940a3 build-llvm: Bump to LLVM 21.1.3 2025-10-07 22:33:31 +03:00
Martin Storsjö ec3b6109a3 build-mingw-w64: Bump to the latest version as of Oct 7th 2025-10-07 22:33:13 +03:00
Martin Storsjö 796122a107 build-llvm: Bump to LLVM 21.1.2 2025-09-24 09:42:54 +03:00
Martin Storsjö 2de90b4f70 build-mingw-w64: Bump to the latest version as of Sep 24th 2025-09-24 09:42:38 +03:00
Martin Storsjö 3766326dbb github: Stop specifying CMAKE_CXX_COMPILER_TARGET
The preinstalled CMake on the ARM64 runners now should be a native
ARM64 CMake, which allows autodetecting CMAKE_CXX_COMPILER_TARGET
correctly.
2025-09-23 14:00:00 +03:00
Martin Storsjö adcf12dae0 github: Stop building in the mingw64 environment in msys2
These builds fail regularly, under mysterious circumstances.
("The hosted runner lost communication with the server. Anything
in your workflow that terminates the runner process, starves it
for CPU/Memory, or blocks its network access can cause this error.")

This usually seems to happen around the build-libcxx.sh step.
2025-09-22 12:25:27 +03:00
Martin Storsjö 81e6861ff6 run-tests: Skip running emulated x86 binaries on aarch64, when targeting msvcrt
In this configuration, one test in crt-test.c fails, both for
i686 and x86_64, when running emulated on aarch64.
2025-09-14 00:04:55 +03:00
Martin Storsjö 2ec690d08e Revert "run-tests: Skip testing arm64ec in msvcrt builds"
This reverts commit 056dd7329b.

In the current versions of mingw-w64, it is possible to build
the tests for arm64ec with msvcrt.dll as well.
2025-09-11 15:49:27 +03:00
Martin Storsjö 1afe639326 build-llvm: Bump to LLVM 21.1.1 2025-09-10 11:45:56 +03:00
Martin Storsjö fec1656c93 build-mingw-w64: Bump to the latest version as of Sep 10th 2025-09-10 11:45:36 +03:00
Martin Storsjö e455d4c3cb build-llvm: Add an option --use-linker=
This allows overriding which linker to use.

Currently, building LLVM on Ubuntu 25.10 with these scripts fails,
if LLD is available. This, because the GCC on that distribution
produces object files that LLD (and gold) rejects during linking - see
https://github.com/llvm/llvm-project/issues/156667 for details.

By building with --use-linker=bfd, linking does succeed in that
configuration.

Also pass the same option through from build-all.sh.
2025-09-04 23:24:42 +03:00
Martin Storsjö 9347c21f74 build-llvm: Print a warning if we get more than one catch-all option
In this case it's usually an option that wasn't recognized
(although the misrecognized option may have been an earlier
option and the current one may be the intended prefix).
2025-09-04 15:38:08 +03:00
Martin Storsjö ebde75f350 build-llvm: Simplify handling of the --pgo=<file> option
These variable expansions/modifications work the same if the
option "--pgo" is specified - so either we can simplify the
stripping of the "--pgo=" prefix, or we can just skip the check,
similar to the case above with --instrumented.
2025-09-04 15:08:17 +03:00
Martin Storsjö a57c32023b test: Waive frexp failures on msvcrt.dll on arm64ec, similar to on aarch64
Building crt-test for arm64ec msvcrt.dll doesn't work currently,
but if mingw-w64 is tweaked so that it works, this test does
need to be waived.
2025-09-02 16:01:52 +03:00
Martin Storsjö 1a25a0ff74 github: Switch macos jobs to macos-14 runners explicitly
For some unknown reason, macos-15 runners (which macos-latest
resolves to currently) seem to be consistently 25-40% slower than
macos-14 runners; the "macos" job (doing an universal binary build
for 2 architectures, with LTO) often take over 5 hours, and have
reached the 6 hour timeout once.

Switch this back to macos-14 to speed it up and reduce the risk of
hitting the timeout.

In the future, if/when the macos-14 runners are phased out, and if
the performance reduction in macos-15 runners remains, we'd need to
switch to building each architecture in a separate job, and merge
them together separately if we still want to provide universal
binaries.
2025-08-30 23:03:55 +03:00
Martin Storsjö 096033f443 build-llvm: Bump to LLVM 21.1.0 final 2025-08-26 22:37:10 +03:00
Martin Storsjö 747a6cd27a build-mingw-w64: Bump to the latest version as of Aug 26th 2025-08-26 22:36:18 +03:00
Martin Storsjö a96bbc0c7f build-make: Download from ftpmirror.gnu.org rather than directly from ftp.gnu.org
Direct access from ftp.gnu.org has been slow lately, and using
a mirror is more considerate in general.
2025-08-26 16:00:23 +03:00
Martin Storsjö 5c5a462dd1 github: Stop manually installing ninja on Windows
Since https://github.com/actions/runner-images/pull/11706,
https://github.com/actions/runner-images/pull/11707 and
https://github.com/actions/runner-images/pull/11737, ninja is
preinstalled in the Ubuntu, macOS and x86 Windows runner images.
Thanks to that, redundant installs of ninja on Unix were removed
in e20f0e3acd.

As noted in https://github.com/actions/partner-runner-images/issues/96,
ninja now also seems to be available on the Windows on ARM
images - thus remove redundant installs of ninja on Windows.
2025-08-21 00:13:51 +03:00
Martin Storsjö 9abe6a8f31 build-llvm, build-cross-tools: Include --no-llvm-tool-reuse in the help listings 2025-08-13 13:36:56 +03:00
Martin Storsjö ccbccc774f build-cross-tools: Fix a help string typo 2025-08-13 13:27:45 +03:00
Martin Storsjö 5bade09998 build-llvm: Bump to LLVM 21.1.0 RC 3 2025-08-12 13:37:27 +03:00
Martin Storsjö 9ae76cfbe0 build-mingw-w64: Bump to the latest version as of Aug 12th 2025-08-12 13:37:12 +03:00
Martin Storsjö 58ee158be2 pgo-training: Pass ARCHS to the makefile
If ARCHS itself was set by the caller, it would already have been
implicitly passed to the makefile - but if the caller set
TOOLCHAIN_ARCHS instead, that wasn't acted upon by the makefile.

As the shell script already has the logic for initializing this
(in the same fashion as all other shell scripts), just use that
and pass the value on to the makefile.
2025-08-07 13:11:24 +03:00
Martin Storsjö 4ae8f04ed6 pgo-training: Remove the accidental executable bit on the makefile 2025-08-07 13:05:42 +03:00
Martin Storsjö 2e938d2b66 prepare-cross-toolchain-unix: Remove the linux/macOS runtimes
This matches what is done in build-all.sh for the PGO step; this
removes rather large (~50 MB) libraries that mostly are needed
for compiling for the host unix platforms. (On Linux it's needed
if building with profiling, on macOS it's needed for the builtin
functions for platform version availability too.)
2025-08-03 00:21:03 +03:00
Martin Storsjö fd7848ea84 build-llvm: Bump to LLVM 21.1.0 RC 2 2025-07-30 10:38:30 +03:00
Martin Storsjö 45c0dc4112 build-mingw-w64: Bump to the latest version as of Jul 30th 2025-07-30 10:38:07 +03:00
Martin Storsjö 2324d8354f github: Simplify running the msvcrt workflow on push, for testing
Only pick parameters from "inputs" if we were invoked through a
"workflow_dispatch" event.
2025-07-29 22:40:34 +03:00
Martin Storsjö 0681c739aa github: Run tests directly after cross compiling the msvcrt runtimes
This matches what is done for the regular builds; we run (build-only)
tests already with the first cross compiler toolchains, not needing
to wait for the cross compiled toolchains to run on Windows.
2025-07-29 22:39:28 +03:00
Martin Storsjö 67827c9569 github: Switch the condition for inputs vs defaults for test-llvm and test-libcxx
This makes it easier to run these workflows through a push (by
adding an "on:push:" at the start of the files.
2025-07-29 22:38:54 +03:00
Martin Storsjö 848bf53fe0 github: Pass -D__USE_MINGW_ANSI_STDIO=1 for test-llvm on x86
This is required for properly formatting long doubles on x86
with UCRT (which doesn't use the mingw builtin printfs by default).

This fixes running the LLVM testsuite on x86 after commit
9bf7d04c4386daf1ef0acf95782a59855c98474a in llvm-project.
2025-07-29 22:38:25 +03:00
Martin Storsjö 39f4179af6 build-llvm: Fix using a relative PREFIX path
This fixes a regression from
6d31f358d8, which shows up as
"./strip-llvm.sh: 129: cd: can't cd to share" when running
build-all.sh, fixing
https://github.com/mstorsjo/llvm-mingw/issues/509, and the root
issue behind https://github.com/mstorsjo/llvm-mingw/pull/507.
2025-07-29 22:25:29 +03:00
Martin Storsjö 0d59f0f827 github: Skip the stage1 artifacts when making a release
The linux stage1 artifacts were uploaded, while the macos ones
weren't (as they didn't match the *-toolchain glob pattern).
2025-07-19 11:21:19 +03:00
Martin Storsjö 056dd7329b run-tests: Skip testing arm64ec in msvcrt builds
It is currently known to fail to link some tests.
2025-07-18 19:47:28 +03:00
Martin Storsjö 087c11746a dockerfile: Skip the openmp tests for arm64ec
This was missed in 4700b4f7bb.
2025-07-18 19:47:28 +03:00
Martin Storsjö 09c5a4e822 github: Fix the use of dawidd6/action-download-artifact in msvcrt.yml
The older version doesn't support the ref parameter.
2025-07-18 19:47:04 +03:00
Martin Storsjö 4a6030a850 run-tests: Execute arm64ec tests on Windows 11 on aarch64 2025-07-17 22:49:10 +03:00
Martin Storsjö 4700b4f7bb test: Skip building the ubsan and openmp tests for arm64ec
Also unset RUN for arm64ec, instead of accidentally inheriting the
earlier value.
2025-07-17 22:49:10 +03:00
Martin Storsjö cb92de78e7 Include arm64ec in the lists of all architectures
Since LLVM 21.x, the upstream support for ARM64EC in LLD and
compiler-rt is complete enough for us to be able to build it.
2025-07-17 22:48:39 +03:00