Commit Graph
1110 Commits
Author SHA1 Message Date
Martin Storsjö bb3a9907ba build-mingw-w64: Bump to the latest version as of Aug 20th 2024-08-20 11:30:07 +03:00
Martin Storsjö bab9e279e3 build-llvm: Bump to LLVM 19.1.0 RC 2 2024-08-05 14:37:21 +03:00
Martin Storsjö ef4e07be6e build-mingw-w64: Bump to the latest version as of Aug 5th 2024-08-05 14:37:05 +03:00
Martin Storsjö 462aee2412 build-make: Remove setting the ARCHS variable
It's not used in this build script.
2024-07-31 23:44:33 +03:00
Martin Storsjö 98ac9c91ca prepare-cross-toolchain-unix: Remove previous target sysroot directories
This should allow replacing the libraries in an existing, full
toolchain with the libraries from another one.
2024-07-31 23:44:13 +03:00
Martin Storsjö 1eda3dcc2e wrappers: Fix a comment wording issue
This comment was added worded slightly differently in the native
version of the wrapper, compared to the shell script, in
26e56ed5f6.
2024-07-30 14:09:39 +03:00
Martin Storsjö 29367bd1b0 build-compiler-rt: Avoid failing for --build-sanitizer if only building for e.g. aarch64
If nothing was built and installed, the installation merging command
fails with an error like this:

    cp: cannot stat '/tmp/tmp.OAj9E7UBhI/install/.': No such file or directory

Therefore, skip this step if nothing really was built and installed.
2024-07-29 17:13:09 +03:00
Martin Storsjö 1270970b3d readme: Remove outdated notes about Address Sanitizer limitations
Backtraces do work just fine on i686 these days, and backtraces
don't require using PDB either - DWARF works as well.
2024-07-28 22:55:36 +03:00
Martin Storsjö 27c551ddb1 build-llvm: Bump to LLVM 19.1.0 RC 1
The main changes for mingw targets since 18.x is primarily
minor bug fixes. llvm-dlltool has also been improved to handle
cases of renamed imports, where the target of the rename doesn't
exist as a normal import.
2024-07-26 16:56:24 +03:00
Martin Storsjö fab7e6d109 build-mingw-w64: Bump to the current version as of Jul 26th 2024-07-26 16:06:45 +03:00
Martin Storsjö e921e3cdc6 build-lldb-mi: Update to the latest version from git 2024-07-24 09:52:44 +03:00
Martin Storsjö 82c00fcf4b github: Stop explicitly installing gnu-tar on macOS
These days, it seems to be installed out of the box already on the
runner images, and installing it triggers very visible warnings
about it already being installed.
2024-06-26 11:43:13 +03:00
Martin Storsjö fb9fd06216 build-python: Bump to Python 3.11.9 and libffi 3.4.6 2024-06-20 10:57:25 +03:00
Martin Storsjö a78eb49f57 build-python: Configure python with --disable-test-modules
These modules were already manually stripped out from the install,
but we can also skip building them entirely - this gets rid of
30% of the number of lines of log output when building python
(reducing the number of lines from 21539 to 14653 lines, for the
whole of building python for both native and a cross target).
2024-06-20 00:03:39 +03:00
Martin Storsjö e3e9f97fab build-llvm: Bump to LLVM 18.1.8 2024-06-19 12:56:40 +03:00
Martin Storsjö d15f592926 build-mingw-w64: Bump to the latest version as of Jun 19th 2024-06-19 12:51:32 +03:00
Martin Storsjö d173245e53 github: Set a default for the "branch" input for manual workflows 2024-06-07 13:19:28 +03:00
Martin Storsjö ab7e195ef3 build-llvm: Bump to LLVM 18.1.7 2024-06-06 10:57:03 +03:00
Martin Storsjö d81507bfda build-mingw-w64: Bump to the latest version as of Jun 6th 2024-06-06 10:57:03 +03:00
Martin Storsjö 9b1884206c github: Include clang-tools-extra in the linux/linux-aarch64/macos jobs
As the runners are faster these days, the cost of including these
tools should be more tolerable these days.
2024-06-03 12:36:44 +03:00
Martin Storsjö 3cf884f8b7 install-wrappers: Prefer the CRT's implementation of printf functions
This avoids bloating the wrapper executables, when built for
msvcrt (where the default is to enable __USE_MINGW_ANSI_STDIO
when targeting C99 or newer).
2024-06-03 12:36:28 +03:00
Martin Storsjö ebde97faaf wrappers: Use a response file on Windows, if the new command line seems too long
This should properly fix the issue that was reported at
https://github.com/mstorsjo/llvm-mingw/issues/296.
2024-06-03 12:36:17 +03:00
Martin Storsjö 089c625e66 wrappers: Print an understandable error if the total command line ends up too long
This can happen if the input command line is barely under the limit,
but ends up exceeding it due to the extra arguments that the wrapper
adds.

One could hope that _tspawnvp would set errno to a helpful error code,
to identify the issue when printing the error with _tperror(), but in
practice, it doesn't.
2024-06-03 12:36:17 +03:00
Martin Storsjö 3847488786 wrappers: Only escape arguments that need escaping
This avoids inflating the total size of the command line too much.

If the input command line is near the max size of a command line
(32767 characters), it may grow past that limit when adding the
arguments injected by the wrapper. If we excessively quote all
arguments that don't need to be quoted, we can more easily run
into this situation.

Thus, by avoiding excessive quoting, we reduce the risk for this
issue to happen.

This avoids the issue reported at
https://github.com/mstorsjo/llvm-mingw/issues/296.
2024-06-03 12:36:07 +03:00
Martin Storsjö 51cb479cb4 build-all: Fix a comment typo 2024-05-30 12:37:27 +03:00
Martin Storsjö f2ca758fcd build-llvm: Bump to LLVM 18.1.6 2024-05-19 00:24:40 +03:00
Martin Storsjö 5ca3fc332f build-mingw-w64: Bump to the version as of May 18th
This version fixes some cases of duplicate time.h related symbols,
in some build configurations (an issue only present in the
previous snapshot). This version also uses the right format attributes
for printf/scanf functions for Clang, enabling format string warnings
when using e.g. the mingw ansi stdio routines.
2024-05-19 00:23:15 +03:00
Martin Storsjö 6c748d21dd test: Test the clang-scan-deps wrapper 2024-05-02 20:03:56 +03:00
Martin Storsjö 334794b40d test: Do a minimal test to try to build the libcxx std c++ module 2024-05-02 20:03:56 +03:00
Martin Storsjö 74e45715e3 wrappers: Provide the unprefixed clang-scan-deps as a wrapper, on Windows
When setting up wrappers for Windows, rename clang-scan-deps.exe to
clang-scan-deps-real.exe, make clang-scan-deps.exe a wrapper, and
configure the wrapper to target executing clang-scan-deps-real.exe.

This makes sure that we always pass in crucial options like
-stdlib=libc++.

By default, our Clang executables are built with that option
hardcoded, configured with CLANG_DEFAULT_CXX_STDLIB=libc++
when built for Windows. However, we generally don't rely on this;
we assume the tools could be plain default executables, so we
try to provide wrappers on all common access paths.
2024-05-02 20:03:56 +03:00
Martin Storsjö 06bd759e50 wrappers: Add a wrapper for clang-scan-deps
This picks the architecture by looking for a triple prefix in the
nested command, and passes it as an explicit flag, to let
clang-scan-deps find it.

We also pass -stdlib=libc++, to let it find the libc++ headers
as expected.
2024-05-02 20:03:56 +03:00
Martin Storsjö 5ba9e1e402 prepare-cross-toolchain: Copy the libc++ module sources 2024-05-02 20:03:56 +03:00
Martin Storsjö 97862552f5 build-libcxx: Install the libc++ module in a shared directory
By default these files would be installed into
${CMAKE_INSTALL_PREFIX}/share/libc++/v1, where
${CMAKE_INSTALL_PREFIX} is equal to ${PREFIX}/${arch}-w64-mingw32.

However, to avoid duplicating these files for each architecture,
install them into ${PREFIX}/share/libc++/v1 instead.

While the files aren't very large (currently weighing in at around
612 KB), they're architecture independent files (and they're
more than a few; they're currently 135 files), so we should
share them if possible.
2024-05-02 20:03:56 +03:00
Norbert Lange 34e14d3c50 Install libc++ module definitions 2024-05-02 20:03:56 +03:00
Martin Storsjö c08b8780a0 build-llvm: Bump to LLVM 18.1.5
This version has a fix for building the libcxx std module for
mingw targets.
2024-05-02 10:10:54 +03:00
Martin Storsjö a81143c23a build-mingw-w64: Bump to the latest version as of May 2nd
This version contains fixes for building the libcxx std C++ module
with the mingw-w64 headers.
2024-05-02 10:10:11 +03:00
Martin Storsjö 88bad0dddd build-llvm: Allow setting CMAKE_<LANG>_COMPILER_LAUNCHER via an env variable 2024-04-24 11:36:57 +03:00
Martin Storsjö 340e2e7f0b wrappers: Fix the comparison against max_args in clang-target-wrapper
Since we allocate max_args+1 elements, with one extra for the
null terminator, it's ok if we've used up to max_args elements
already.
2024-04-24 11:36:42 +03:00
Martin Storsjö 9de1bfe8a3 wrappers: Fix a typo 2024-04-24 11:36:31 +03:00
Martin Storsjö 7bd4b284f9 github: Switch the macos build job to macos-14
Currently, the "macos-latest" runners aren't really the latest
version - on the contrary, they're running the oldest HW/OS.

Currently, there are macos-12, macos-13 and macos-14, and macos-latest
are the macos-12 ones.

The macos-14 ones run on Apple Silicon.

Previously, the macos-12 runners have usually managed to run the build
job in less than 3 hours. However, lately, the jobs often end up
taking much longer, over 5 hours, and have ended up exceeding the
6 hour timeout occasionally, even if they still also some times run
in the expected time of less than 3 hours.

Switch to the faster macos-14 runners (which can complete the build
job in around 1 h 40 min), to avoid these timeouts.
2024-04-22 23:40:22 +03:00
Martin Storsjö 6c479581da build-all: Add the option --clean-runtimes
This sets the variable CLEAN=1 after building the tools, which makes
all the builds of the runtime libraries remove old build dirs
before building.

This is similar to, but has a slight different purpose than
the existing --wipe-runtimes, which removes the installed runtime
files. Both are useful when testing various build configurations
and investigating issues, for different testing scenarios.
2024-04-18 13:26:52 +03:00
Martin Storsjö 760b639c20 build-llvm: Bump to LLVM 18.1.4 2024-04-17 10:53:21 +03:00
Martin Storsjö b7577123aa build-mingw-w64: Update to the latest version as of Apr 17th 2024-04-17 10:52:58 +03:00
Norbert Lange 7f8071951c strip-llvm: Retain the clang-scan-dep tool for c++ modules
Compilers and buildsystems have early support for c++ modules,
see [1], [2].
`clang-scan-dep` is necessary for integration in CMake, potentially
other buildsystems in the future.

Using standard modules like from libc++ is still not solved thoroughly,
and module support from libc++ is marked experimental, documentation
how to use them is WIP [3].

[1]: https://www.kitware.com/import-cmake-the-experiment-is-over
[2]: https://cmake.org/cmake/help/latest/manual/cmake-cxxmodules.7.html
[3]: https://github.com/llvm/llvm-project/pull/80601
2024-04-12 22:22:22 +03:00
Martin Storsjö 03948b69d7 build-llvm: Bump to LLVM 18.1.3 2024-04-04 11:25:47 +03:00
Martin Storsjö 536966927b build-mingw-w64: Bump to the latest version as of April 4th 2024-04-04 11:25:47 +03:00
trilader 2312d6ef64 Merge arch headers into LLVM provided include directory
If not building with FULL_LLVM the directory is empty or doesn't exist.
Otherwise it contains the LLVM headers. In either case merge the architecture specific ones into it.
2024-03-29 00:24:45 +02:00
Martin Storsjö 4a60685f51 build-llvm: Bump to LLVM 18.1.2 2024-03-20 09:12:51 +02:00
Martin Storsjö a894be0f60 build-mingw-w64: Bump to the latest version as of Mar 20th 2024-03-20 09:12:11 +02:00
Martin Storsjö 85c0ef1a21 test: Don't build asan/ubsan tests with PDB debug info
The DWARF debug info should work just as well.

Since 8c03f400a837dc9333e54ab371e7904aa2bec43c in llvm-project,
llvm-symbolizer prefers DWARF over PDB if there is a DWARF section
in the inspected executable. Thus, in order to use PDB, one would
have to strip out any remnants of DWARF debug info from the executable,
like in run-lldb-tests.sh (e.g. by -Wl,-s).

For the purposes of this test, simplifying the setup to use DWARF
works just as well.
2024-03-18 09:41:13 +00:00