Commit Graph
1026 Commits
Author SHA1 Message Date
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
Andarwinux e2a03722ac build-llvm: enable nvptx
Used to enable CUDA filter support for FFmpeg without relying on another Clang.
2023-12-12 13:53:26 +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
Martin Storsjö 5e45947c20 test: Split the main function in crt-test to a couple smaller functions
This speeds up compilation with LLVM a little bit.
2023-10-26 12:01:17 +03:00
Martin Storsjö 0f79bd9460 test: Reset the iret variable inbetween tests of frexp 2023-10-26 12:01:17 +03:00
Martin Storsjö 58cbdf9453 build-llvm: Bump to LLVM 17.0.3
This version fixes the following issues for mingw/windows targets:
- Fix linking the lli tool if built with asan enabled
- Fix compiling for the aarch64 target if specifying -mtune=cortex-a53
- Fix initialization order among constructors within one translation unit
2023-10-17 09:51:55 +03:00
Martin Storsjö 52ebafb50b build-mingw-w64: Bump to the latest version as of Oct 17th 2023-10-17 09:51:28 +03:00
Martin Storsjö 0f8d5f068f build-python: Bump Python to 3.11.6 2023-10-06 16:34:12 +03:00
Martin Storsjö a711bb4ed0 build-python: Bump libffi to version 3.4.4
This is the latest release version.

This requires a newer version of Autoconf than what is available
out of the box in Ubuntu 20.04.
2023-10-06 16:33:59 +03:00
Martin Storsjö d21c2d4716 build-llvm: Bump to LLVM 17.0.2
This contains a few bugfixes for mingw use cases:
- LLD in 17.0.1 and the earlier 17.x release candidates looked up
  libraries (including libraries named as a relative path) preferring
  to search in toolchain relative paths over first testing from the
  current directory. In some cases, this could cause cryptic build
  failures; see https://github.com/llvm/llvm-project/issues/67779.
- Options that only are relevant for linking, like -mwindows, used
  to be accepted (but produce a warning) if used in a compilation-only
  job. In the earlier 17.x releases/RCs, such warnings caused an
  error instead; see https://github.com/llvm/llvm-project/issues/64464
  and https://github.com/mstorsjo/llvm-mingw/issues/371.
2023-10-03 10:34:07 +03:00
Martin Storsjö 61845977e7 build-mingw-w64: Bump to the latest version as of Oct 3rd
In addition to the usual sets of assorted updates, this brings
some more additions to the main d3d12 header, and adds the
d3d12video.h header.
2023-10-03 10:08:31 +03:00
Martin Storsjö a10755cbd5 build-llvm: Install and keep llvm-cxxfilt
This only provides the main binary llvm-cxxfilt; it doesn't
provide the binutils-style frontends named [<triple>-]c++filt.

If we were to provide such frontends, we'd need to make them
default to --strip-underscore for i686 triple prefixes, and
for the prefixless case when the default architecture is i686.
2023-10-02 14:44:48 +03:00
Norbert Lange d0a03c46c0 Use CMake's build and install functionality
This allows simplification, this functionality was added long
ago to CMake.

Further motivation is to be able to re-direct the installation,
make/ninja install allow this by setting DESTDIR but this
generally doesnt work well with window paths (see [1]).

[1] - https://cmake.org/cmake/help/latest/envvar/DESTDIR.html#envvar:DESTDIR
2023-09-27 22:53:01 +03:00
Norbert Lange 97cd12a63a Ignore set but empty CORES variable
Change the behavior when the CORES environment variable
is set and empty.
Now `-j` will not be added to make/ninja.
2023-09-27 22:53:01 +03:00
Martin Storsjö 2bfe3e7c48 Remove setting the unused variable NINJA in build shell scripts
This variable ended up unused in
b89cdef107.
2023-09-21 12:42:03 +03:00
Martin Storsjö 6c3f283dcd github: Explicitly install ninja where needed in Windows jobs
Ninja isn't documented as one of the tools provided by the CI runner
images, but it used to be available implicitly installed before
in the windows-2022 images. Since the 20230918.1.0 image update,
it no longer is available out of the box; see
https://github.com/actions/runner-images/issues/8343.
2023-09-21 00:15:02 +03:00
Martin Storsjö dc034e2860 build-llvm: Bump to LLVM 17.0.1 final
There was a minor issue with the version information in what
was tagged as 17.0.0, so 17.0.1 is the first proper stable
release on the 17.x release branch.
2023-09-19 14:07:04 +03:00
Martin Storsjö 047b5e0574 build-mingw-w64: Bump to the latest version as of Sep 19th
This brings in a rather large update of the D3D12 header
(d3d12.idl/d3d12.h), which should now be mostly complete and up
to date with the current versions from Microsoft.
2023-09-19 14:04:39 +03:00
Martin Storsjö 7483eae182 github: Add a manual job for running the libcxx/libcxxabi/libunwind tests
This is included already in the main build pipeline, but disabled
by default. This allows easily running this on top of a recent
separate pipeline.
2023-09-14 15:12:39 +03:00
Martin Storsjö 2674a65315 github: Add a manual job for running the llvm/lld/clang/clang-tools-extra tests 2023-09-14 13:08:00 +03:00
Martin Storsjö dd569ce86a github: Clarify the name of some of jobs relating to fetching artifacts 2023-09-13 14:16:14 +03:00
Martin Storsjö 5ee46738a1 build-llvm: Bump to LLVM 17.0.0 RC 4 2023-09-05 22:00:10 +03:00
Martin Storsjö 1749eb26c1 build-mingw-w64: Bump to the latest version as of Sep 5th 2023-09-05 21:59:10 +03:00
Martin Storsjö 58339108ba github: Build the split-file executable for the compiler-rt tests too
Since f52f8e817ea36e003e8f09672de48c3c460093f4 (Aug 28th) in
llvm-project, this is needed for one test in compiler-rt.
2023-08-29 14:33:09 +03:00