Commit Graph
22 Commits
Author SHA1 Message Date
Jacek Caban 986847858c Add ARM64X support
Extend the aarch64-w64-mingw32 prefix to provide ARM64EC libraries
alongside standard AArch64 libraries, replacing the separate
arm64ec-w64-mingw32 prefix. This aligns with how MSVC distributes
ARM64EC libraries and enables the linker to process both targets
simultaneously into a single hybrid binary.

This extensively utilizes LLVM's -marm64x option, compiling both
targets in a single compiler invocation to produce hybrid object
files (unlike MSVC tools, which require separate compilation passes).
2026-08-12 12:18:44 +03:00
Martin Storsjö 975930b5b7 Revert "Add ARM64X support"
This reverts commit 64effa9a71.

It turns out that the LLD handling of the TLS data structures
("_tls_used" and "_tls_index") needs more work, causing the
arm64ec side of arm64x binaries to not get them hooked up properly.
2026-07-28 18:44:59 +03:00
Jacek Caban 64effa9a71 Add ARM64X support
Extend the aarch64-w64-mingw32 prefix to provide ARM64EC libraries
alongside standard AArch64 libraries, replacing the separate
arm64ec-w64-mingw32 prefix. This aligns with how MSVC distributes
ARM64EC libraries and enables the linker to process both targets
simultaneously into a single hybrid binary.

This extensively utilizes LLVM's -marm64x option, compiling both
targets in a single compiler invocation to produce hybrid object
files (unlike MSVC tools, which require separate compilation passes).
2026-07-27 19:08:32 +02: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
Martin Storsjö 20099b94e6 build-mingw-w64: Use silent rules for compiling things
This reduces the amount of log output significantly.

For the linux build on github actions, this reduces the log output
from 8.5 MB down to 4.7 MB.
2025-04-17 23:34:40 +03:00
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ö 36f8c1359e Switch the default to enabling CFGuard in all individual build-* scripts 2023-01-29 01:09:17 +02:00
Alvin Wong e9401c8bfe Add CFGuard options to build scripts (disabled by default) 2022-10-01 13:25:52 +03:00
Martin Storsjö 83d84ab79b build-mingw-w64: Fix installing COPYING files on macOS
The install(1) tool on macOS doesn't support the -D option for
creating directories at the same time while installing files.
Therefore, run a separate step for creating directories. Doing that
with "mkdir -p", even if install(1) also could do that with the -d
option (likewise with a separate command).

Also stop specifying the destination file name, when it's equal to
the source files, now that we know that the destination directory
already exists.
2022-04-08 13:13:56 +03:00
Matthew "strager" Glazar 306f5d7209 build-mingw-w64: Install COPYING files
Install copyright notices into the final package. This makes LLVM MinGW
comply with many of the licenses (which require attribution), and also
makes it easier for users of LLVM MinGW to audit licenses of software
they use.
2022-04-08 09:44:38 +03:00
Long Nguyen c0596d3170 Unset CC before building to prevent env pollution 2021-02-10 14:42:34 +02:00
Martin Storsjö 57b7ffd84d build-mingw-w64: Add a CHECKOUT_ONLY codepath 2020-09-16 00:03:57 +03:00
Martin Storsjö 8e461131cf Clean the build dirs before building, if the env var CLEAN is set 2020-03-25 23:24:31 +02:00
Martin Storsjö c1882530c3 Add copyright and license headers to all shell script files, for clarity 2020-03-05 11:31:31 +02:00
Martin Storsjö 64d39428b6 Quote uses of $PREFIX in the build script, to improve support for installing into a path that contains spaces
For build-mingw-w64.sh to succeed when installing to such a path,
the mingw-w64 version has to be updated to the latest git master.

build-mingw-w64-libraries.sh still fails in this case, as libtool
fails to properly quote $LD in a test for whether the linker is GNU ld.
2019-12-03 21:49:53 +02:00
Martin Storsjö ee555b9013 Fix building when $PATH contains spaces 2019-11-30 10:37:19 +02:00
Martin Storsjö 2d1aeef4ac build-mingw-w64-libraries: Add an explicit --libdir parameter
On some distributions, e.g. openSUSE, the libraries for 64 bit
architectures end up stored in <target>/<triplet>/lib64 instead of
plain "lib".

(This is caused by their use of a site script for configure, which
overrides libdir when the host triplet matches 64 bit architecture
names - even if it's a triple for cross compilation for a totally
different OS. This only affects the libraries and not mingw-w64-crt,
as the crt's makefiles manually set the output directory name.)

This fixes https://github.com/mstorsjo/llvm-mingw/issues/51.
2019-09-26 16:25:08 +03:00
Martin Storsjö d4a27dfd80 Stop manually setting CC/AR/RANLIB when building autotools projects
Since we have triplet prefixed wrappers for all tools, and wrappers
named <triplet>-gcc/g++ as well, we don't need to manually provide
them.
2019-08-13 12:51:42 +03:00
Martin Storsjö 53db1c3a4c Resolve $PREFIX to an absolute path at the start of shell scripts
This fixes building/installing into a relative path.
2018-11-23 13:51:05 +02:00
Martin Storsjö 99e2fefc9d Use nproc and sysctl -n hw.cpu for default initializing CORES
This avoids having to pass --build-arg CORES=n when building the
docker images.
2018-11-09 22:20:34 +02:00
Martin Storsjö 5386ff8e3d Reindent build-mingw-w64-libraries.sh
This was left inconsistent after 3c1c81f321.
2018-09-05 13:11:26 +03:00
Martin Storsjö 3c1c81f321 Build the winstorecompat library from mingw-w64-libraries 2018-07-16 23:30:54 +03:00