Commit Graph
100 Commits
Author SHA1 Message Date
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
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
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
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
Martin Storsjö 9c48a7d92c test: Print the reason for failing in test output inspections 2024-03-18 09:38:04 +00:00
Martin Storsjö 8a7c59dc94 test: Avoid the compiler optimizing out the cfguard check call
When calling make_indirect_call with a parameter which is known,
Clang, since the 18.x release, can end up producing a specialized
version of the function which omits the cfguard check call (as the
target is known) and calls the known target directly.

The function is marked with a noinline attribute, to avoid
the compiler optimizing out the cfguard check call when the
target is known, but even with a noinline function, the compiler
apparently can make a separate specialized version of it.

To avoid the compiler doing such optimizations, reference the
target function via a global variable - the compiler can't assume
anything about the contents of them (they could be altered between
initialization and reading them later).

This fixes the cfguard invalid_icall test with Clang 18.x, when
compiled with optimizations enabled.
2024-03-14 23:11:45 +02:00
Martin Storsjö 8a6b022f88 test: Test building another executable in UWP mode
Test building a file that includes windows.h, to catch issues with
e.g. the definition of WINAPI_FAMILY.
2024-03-13 18:19:42 +02:00
Martin Storsjö e39faace92 github: Run toolchain tests in the linux/linux-asserts/macos jobs
Run the plain compilation part, without executing things (in order
not to require wine at this point).
2024-03-13 11:30:14 +02:00
Martin Storsjö 79e51a92c3 build-llvm: Bump to LLVM 18.1.1
The 18.1.0 release accidentally had kept the "rc" suffix on the
version. The 18.1.1 release fixes this, no other changes from 18.1.0.
2024-03-08 23:57:17 +02:00
Martin Storsjö 46884dc037 github: Don't upload the msys2 artifacts along with the release
They weren't intended to be part of the artifacts as part of the
release; the artifacts were added just for testing purposes.
2024-03-08 23:56:13 +02:00
Martin Storsjö 5bf2c94e6f build-llvm: Bump to LLVM 18.1.0 final 2024-03-06 09:45:51 +02:00
Martin Storsjö b330dd8fbb build-mingw-w64: Bump to the latest version as of Mar 6th 2024-03-06 09:45:20 +02:00
Martin Storsjö eda1a47ce0 build-llvm: Bump to LLVM 18.1.0 RC 4 2024-02-27 23:34:35 +02:00
Martin Storsjö 188015866f build-mingw-w64: Bump to the latest version as of Feb 27th 2024-02-27 23:34:10 +02:00
Martin Storsjö 8f42112719 github: Build the multiplatform docker image in two steps
6b6b1240e2 tried to build a
multiplatform image, by building two images separately and pushing
them one at a time, with the same name (but with a different platform).

This doesn't work as expected; the last push for the image name
replaces earlier pushes. So depending on which push finishes
last, we'd end up with either an amd64 or arm64 image, but not
one that supports both.

Instead, push two separate images just with push-by-digest, and
then create the actual tag with "docker buildx imagetools create".

Alternatively, we could build all platform variants of the main
image with Dockerfile.toolchain, simplifying the setup significantly.
The contents of such a build is marginally different though, so
keep the amd64 image as it was, for now, compiled in that environment.
2024-02-27 23:31:00 +02:00
Martin Storsjö ed5fd4c6a0 github: Add a manual job for testing installing with a system clang 2024-02-26 00:22:14 +02:00
Martin Storsjö 9f819214f9 Add a dockerfile for testing installation with a system clang distribution 2024-02-26 00:22:14 +02:00
Martin Storsjö da480f0100 github: Don't build with dylibs enabled in the msys2 mingw64 environment
The total number of exported symbols in this build configuration has
now reached the limit for the number of exported symbols in a DLL,
with the latest version of llvm-project from git.

This isn't an issue when building with Clang, as it marks many
symbols as excluded from auto-export.
2024-02-24 22:08:16 +02:00
Martin Storsjö 908f88f7e5 github: Don't set the load flag to docker/build-push-action if push is set
With buildx, both push and load flags can't be set at the same time.
2024-02-21 17:20:31 +02:00
Martin Storsjö 489a96cc70 build-llvm: Bump to LLVM 18.1.0 RC 3
This adds the following:
- LLD now uses the SOURCE_DATE_EPOCH env variable for setting the
  COFF header timestamp
- LLD now also supports --lto-emit-asm and -plugin-opt=emit-llvm
  in the mingw linker interface
2024-02-21 09:04:04 +02:00
Martin Storsjö 336895a8a3 build-mingw-w64: Bump to the latest version as of Feb 21st
This removes uses of __DATE__ and -Werror from mingw-w64-tools,
and updates winpthreads (mostly for compatibility with MSVC).
2024-02-21 09:02:48 +02:00
Martin Storsjö 373c32f91a docker: Bump the base images to Ubuntu 22.04
This raises the versions of bundled software, providing e.g.
autoconf 2.71, which is needed for Python 3.12.

As the releases are built (without a surrounding extra container)
on GitHub Actions these days, we don't need to hold the docker
images back to an old version for the sake of compatibility;
instead, updating to a newer version provides more modern tools
for users of the docker image.
2024-02-20 14:33:13 +02:00
Martin Storsjö 4dbd39ecbf github: Properly propagate BUILD_DATE to BUILD_DATE_UNIX
Previously, when echoing the definition of BUILD_DATE to
$GITHUB_OUTPUT, that doesn't make it available as an environment
variable. (And if it would be echoed to $GITHUB_ENV, it still
wouldn't take effect until the next step within the same job either.)

Therefore, this previously set BUILD_DATE to $(date -d "" +%s),
which seems to produce a timestamp corresponding to the start of
the current day.
2024-02-13 15:48:27 +02:00
Martin Storsjö 3ed3b66ea3 release-macos: Don't assume that gtar is available on macOS 2024-02-13 10:13:54 +02:00
Martin Storsjö 6775203bde build-llvm: Bump to LLVM 18.1.0 RC 2
This gets rid of extra, unused __chkstk symbols in compiler-rt
builtins, that could cause conflicts when building Wine.
2024-02-07 09:34:56 +02:00
Martin Storsjö d1d7309583 build-mingw-w64: Bump to the latest version as of Feb 7th
This fixes the availability of __cpuidex for Clang 18.
2024-02-07 09:34:07 +02:00
Martin Storsjö 1e08d1adc5 github: Bump the docker actions to the latest version
The previous ones used Node 16, which is deprecated.
2024-02-06 12:23:45 +02:00
Martin Storsjö c2a38eb71b build-python: Bump to Python 3.11.7 2024-01-31 00:16:10 +02:00
Martin Storsjö cb52ece411 build-llvm: Fix the selection of python import library
Since cpython-mingw v3.11 (see cpython-mingw commit
8aeb46d09c068a1228e83b29101c17bf1ff0612a), the versionless, stable
ABI libpython3.dll gets installed, along with libpython3.dll.a.

Ideally we would use this, which gets us better flexibility, but
in practice, LLDB fails to link against this, as it doesn't expose
enough of the symbols we use and need.

Previously, we ended up with PYTHON_LIB containing two path names,
which caused CMake to print warnings about ignoring extra paths
on the command line.

This fixes issue #396.
2024-01-31 00:16:05 +02:00
Martin Storsjö f26412b8ef github: Upgrade missed deprecated actions to newer ones
These were missed in ad30b74173.

The mismatch between upload-artifact and download-artifact in
ad30b74173 makes the later steps
fail to download the artifacts from previous steps.
2024-01-30 17:14:00 +02:00
Martin Storsjö f4f78cd984 build-mingw-w64: Bump to the latest version as of Jan 30th 2024-01-30 10:39:33 +02:00
Martin Storsjö 021af31c8d run-lldb-tests: Skip the separate strip step when using PDB files
Since 7dcd8ef135147de1576c2863b963ec929a15e8cb in llvm-project
(Dec 15th), LLD can strip out the bundled DWARF debug info directly
when linking, while creating a PDB file, simplifying this test case.
2024-01-30 10:39:33 +02:00
Martin Storsjö 1d276f5300 build-llvm: Bump to LLVM 18.1.0 RC 1
Relevant changes/fixes since the last version:
- Added the new Clang option -fno-auto-import, affecting both code
  generation (avoiding generating .refptr stubs) and linking
  (passing --disable-auto-import, to avoid subtle runtime errors,
  which could happen if code built without .refptr stubs would
  autoimport symbols anyway)
- Fix issues with running the toolchain, or building sources on,
  network mounts. Previously, there were issues with VirtualBox
  shared folders or Remote Desktop shared folders.
- Pass LTO options from the compiler driver to the linker
- Support more LTO options in the linker
- LLD now implements the --icf=safe option properly
- Support using the -S/-s flags in LLD, to strip out DWARF debug
  info and symbol table, while producing a PDB file
- Fix LTO issues around __imp_ symbols, making it support building
  the base mingw-w64-crt files with LTO
- LLD now doesn't try to detect/add MSVC library directories when
  linking in MinGW mode
- Fix building compiler-rt sanitizers, when libcxx is available only
  in static form
- Fix building a standalone libclang_rt.atomic_dynamic for MinGW
  targets
- Support for the MENUEX resource type in llvm-windres
- llvm-windres now supports referencing filenames in .rc files,
  constructed from multiple concatenated string literals
- Various fixes for the llvm-windres option --preprocessor, including
  the breaking change to match the new GNU windres behaviour from
  binutils 2.36
- Don't look for a GCC in path when Clang is installed next to
  a suitable sysroot (mostly relevant for MSYS2)
- Avoid exposing unprefixed mmap symbols in the profiling runtime,
  which could lead to misdetections in user code
- Support for reading Windows thread names in LLDB
2024-01-30 10:39:16 +02:00
Martin Storsjö ad30b74173 github: Upgrade deprecated actions to newer ones
The previous ones use Node 16 which now is deprecated.
2024-01-29 23:17:42 +02:00
Martin Storsjö 1139164bf6 github: Stop setting TEST_IS_EXECUTED_IN_A_SLOW_ENVIRONMENT and large_tests=False
The default free github runners have been sized up now, so the
tests now run fine without these settings.
2024-01-29 23:17:14 +02:00
Martin Storsjö cfe2ac2783 build-llvm: Set CMAKE_SYSTEM_PROCESSOR when cross compiling
Normally there's nothing in the LLVM build that strictly requires
this, but some fringe parts of the build may use it. Set it
for consistency.
2024-01-24 09:11:40 +02:00
Martin Storsjö ac3c8bfe35 test: Add a testcase for atomic helpers 2024-01-24 09:11:40 +02:00
Martin Storsjö c6f48859d8 build-compiler-rt: Include atomics helpers in the builtins library
These helpers are statically linked into each DLL/EXE that uses
them.

They are primarily used for atomic access to variables that are
larger than what the platform natively can support - i.e. primarily
for accessing atomic variables larger than 8 bytes.

The fallback implementations rely on explicit locks (spinlocks
in practice).

As the locks are statically linked into each module that uses the
atomic variable, any concurrent access to such an atomic variable
from two different DLLs/EXEs wouldn't actually end up being
properly atomic.

However cross-module atomic variables (larger than 8 bytes) is
very rare so this isn't deemed to be much of a practical issue.

In GCC based toolchains, the corresponding helpers reside in
a separate shared library, libatomic-1.dll (although it can also
be linked statically).
2024-01-24 09:11:40 +02:00
Martin Storsjö 7bbbf7c65f strip-llvm: Inspect the --host= argument for the kind of triple
Don't assume that any host argument indicates cross compiling for
Windows.

Update build-all to pass --host arguments to strip-llvm as well,
for consistency.
2024-01-12 11:06:54 +02:00
Martin Storsjö f5c5c72a88 github: Include the missing build tag for the msys2 artifacts 2024-01-09 11:29:38 +02:00
Martin Storsjö a815d6557a test: Add a smoke test for resource files and windres 2023-12-12 16:10:37 +02:00
Martin Storsjö 3becea478f github: Upload artifacts from the MSYS2 build too
They aren't expected to be used much, but can be useful for
inspecting the output of a build.
2023-12-07 13:33:56 +02:00
Martin Storsjö 4555fcebc9 github: Bundle dependencies from MSYS2 into the output toolchain
This makes the built toolchain usable outside of MSYS2 too.

For running tests, this has another very subtle effect.

If the toolchain is built in the MSYS2 clang64 environment, the
compiler binary depends on libc++.dll. This DLL is found in $PATH,
in /clang64/bin.

When building/running tests, the current working directory will be
e.g. llvm-mingw/test/x86_64. At some point while building/running
tests, the test makefile will copy the llvm-mingw toolchain's
runtime DLLs into this directory in order to be able to execute those
newly built binaries. This also includes another, different libc++.dll.

When a libc++.dll exists in the current directory, this is preferred
over the one found further back in $PATH in /clang64/bin. As this
file is copied in parallel with other build jobs that might be
doing compilation, those compilation processes may end up loading
this other DLL. If fully copied it probably shouldn't be an issue,
but if not fully copied yet, who knows what might happen.

By making sure that there is a libc++.dll in the same directory as
the toolchain executables (rather than expecting it to be found
further back in $PATH), we ensure that this DLL is loaded and used
instead of the one in the current directory.

This should fix stray errors when running tests in the clang64
environment.
2023-12-07 13:33:53 +02:00
Martin Storsjö d2512dde21 build-python: Bump to the latest version of cpython-mingw
This version fixes a race condition in the build, which in most
cases was benign but in rare cases could successfully build a Python
that would crash at runtime.
2023-12-07 13:33:53 +02:00
Martin Storsjö 13827fe666 build-python: Install a versionless python.exe in addition to python3.exe
This can make it marginally easier to use it, even if the embedded
Python installation isn't that much meant to be used for various
external purposes.
2023-12-07 13:33:53 +02:00
Martin Storsjö 5000bc4c97 github: Update the branch of python used for scheduled builds 2023-12-07 13:33:53 +02:00
Martin Storsjö 387bfba3cb build-llvm: Bump to LLVM 17.0.6 2023-11-28 13:19:45 +02:00
Martin Storsjö 5c50839423 build-mingw-w64: Bump to the latest version as of Nov 28th 2023-11-28 13:19:26 +02:00
Martin Storsjö 81a72d5762 build-llvm: Use a faster linker for native building, if available
Use lld or gold, if available - they are significantly faster than
ld.bfd on Linux.
2023-11-28 00:02:50 +02:00
Martin Storsjö 0f24a65373 build-python: Bump to the latest version of Python 3.11.6 from msys2 2023-11-28 00:02:44 +02:00
Martin Storsjö 5700ed3e85 build-lldb-mi: Bump to the latest version from git 2023-11-27 11:29:48 +02:00
Martin Storsjö 57298c1a93 build-llvm: Bump to LLVM 17.0.5 2023-11-14 12:42:27 +02:00
Martin Storsjö eeffd71064 build-mingw-w64: Bump to the latest version as of Nov 14th 2023-11-14 12:42:08 +02:00
Martin Storsjö ceb97dadc3 strip-llvm: Include the lldb-dap tool
In LLVM 18, the lldb-vscode tool has been renamed to lldb-dap.
2023-11-10 13:44:33 +02:00
Martin Storsjö c70261f922 github: Compile i686 libcxx tests with an x86_64 build of the compiler
Some tests in the libcxx testsuite require more than 2 GB of memory
to compile currently.
2023-11-03 11:23:48 +02:00
Martin Storsjö 845805bcfe github: Set the test parameter large_tests=False for the libcxx tests
This skips test that use a lot of memory. In particular, there's
one test that would use up to 6.8 GB of memory, while the GitHub
Actions runners only have 8 GB of memory available.

This parameter was added in 122064a6303eb9c06e0af231f5a4ce145d9a2e67
in the llvm-project main branch, and backported to 17.x in
aa03fba83b17bbfcd9ed869efed2818b503875d6.
2023-10-31 11:05:52 +02:00
Martin Storsjö f168c089c4 build-llvm: Bump to LLVM 17.0.4 2023-10-31 11:05:20 +02:00
Martin Storsjö 4d9b8a9bda build-mingw-w64: Bump to the latest version as of Oct 31st
This version prefers the UCRT version over the builtin one from
libmingwex.a for a number of math functions.
2023-10-31 11:04:35 +02:00
Martin Storsjö fa8df6b193 github: Run the libcxx tests with "-v --time-tests"
This allows seeing the names of tests as they are executed, making
the intermediate log output on github actions more useful. It
also makes it easier to correlate test issues between tests as
they are executed (e.g. if one test causes another one to run out
of memory).

Also run with --time-tests, allowing identifying slow tests.

This was already applied in the separate libcxx test job added in
7483eae1821766a0f84dbd96f5619058f7065008; this backports the change
into the test job in the main build file.
2023-10-31 11:04:03 +02:00
Martin Storsjö c1dfe42094 test: Remove an exception for a glibc test failure in crt-test
I no longer can reproduce the issue that this works around; neither
on current environments or when testing building with older
distributions.
2023-10-27 10:32:10 +03:00
Martin Storsjö e4534c56fa test: Split the math tests in crt-test into many smaller functions
This speeds up compilation a bit further.
2023-10-27 10:31:55 +03:00