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