Commit Graph
1180 Commits
Author SHA1 Message Date
Martin Storsjö 1764fe8c9e build-libcxx: Stop setting the LLVM_PATH variable
Since 6127724786d581d2653df7420d1f28709288a107 in llvm-project
(Nov 4 2024), this variable no longer is referenced, and it
probably hasn't been needed for much longer than that.
2025-02-11 10:12:18 +02:00
Martin Storsjö 0b296aefc0 run-tests: Skip asan tests on msvcrt
Asan doesn't really run properly on msvcrt.dll; skip testing it
in that configuration.

See discussion on https://github.com/llvm/llvm-project/pull/120397
and https://github.com/mstorsjo/llvm-mingw/issues/224 for context
around this.
2025-02-11 10:04:41 +02:00
Martin Storsjö 8dabd61494 test: Rename HAVE_SANITIZERS to HAVE_ASAN
Always run the ubsan tests; those should work on any architecture
now.
2025-02-11 10:02:57 +02:00
Martin Storsjö 9cb5206253 run-tests: Remove an ancient chceck for UCRT
It's enough to check for the _UCRT define these days, as long
as we are including a header that pulls in the base mingw headers.

Since 8b2ece59fccf0a65257b1ba2fe8d67d7e8a2e8c1 in mingw-w64 (May 6th
2019), the mingw-w64 headers define _UCRT. Since
94a28397eec79e54ce5a8354512f43da88f815d2 (committed on the same date),
the mingw-w64 headers use 0xE00 instead of 0x1400 for UCRT.
2025-02-11 10:00:36 +02:00
Martin Storsjö c412f4ac74 test: Add missing cases of CPPFLAGS/CFLAGS/CXXFLAGS
Normally neither of these variables are set, but by applying them
consistently, it allows testing building with extra flags set.
2025-02-10 13:57:53 +02:00
Martin Storsjö f730b67e8e test: Correctly use CXXFLAGS for one case of .cpp file compilation 2025-02-10 13:57:50 +02:00
Martin Storsjö 77dddbcb9a github: Remove a stale leftover comment
This comment no longer was true after
3becea478f.
2025-02-04 12:03:49 +02:00
Martin Storsjö e3a808fec6 build-llvm: Bump to LLVM 20.1.0 RC 1 2025-02-03 15:02:29 +02:00
Martin Storsjö 7ec4f40860 build-mingw-w64: Bump to the almost latest version as of Feb 3rd
Skipping the topmost two commits, as they are known to cause
problems building Firefox.
2025-02-03 15:00:44 +02:00
Martin Storsjö 6de7ef249e github: Install libltdl-dev in the msvcrt job, too
This was missed in 9e22cdbc9f.
2025-01-15 12:17:35 +02:00
Martin Storsjö 0087c59c17 build-llvm: Bump to LLVM 19.1.7 2025-01-14 17:55:21 +02:00
Martin Storsjö f826e789a8 build-mingw-w64: Bump to the latest version in the github mirror
The github mirror we clone from is currently slightly behind
the main sourceforge repository though.
2025-01-14 17:53:23 +02:00
Martin Storsjö e8409d9954 Revert "Docker.system-clang: Fix building with older LLVM versions after recent changes"
This reverts commit 490dfffb32.

This is no longer necessary, as we now can build runtimes using
the latest LLVM 19 versions, that support building sanitizers
for all architectures.
2025-01-07 23:15:51 +02:00
Martin Storsjö 4306cadf97 Docker.system-clang: Update the system-clang testcase to Ubuntu 24.04
Update to using clang-18 from the host system; version 16 or
newer is required for the implicitly selected config files
(which are used since 866d47cced);
that version changed whether the target triples are normalized
before locating config files.

This allows building runtimes with the current versions of LLVM
19.x, rather than needing to select an older version.
2025-01-07 23:15:13 +02:00
Martin Storsjö 1f99e3e26e install-wrappers: Pass --config-system-dir in the --host-clang mode
This is required since e2e9216853
for this configuration to be able to find the config files.

Also add the *.cfg files to the Dockerfile COPY line.
2025-01-07 23:08:29 +02:00
Martin Storsjö 83b64f3049 docker: Install nasm instead of yasm
This is one of the packages which aren't needed by the toolchain
build itself, but is provided as a convenience to useres of the image.

Many projects that build standalone x86 assembly can use either
nasm or yasm, but lately most projects prefer nasm (which has
support for newer x86 simd extensions).
2025-01-07 15:52:42 +02:00
Martin Storsjö da453b9920 docker: Stop installing python3-distutils
In Ubuntu 24.04, this package is no longer available.

However, this package probably never actually was needed anyway,
and was probably only provided as a convenience for users of the
docker image.
2025-01-07 15:47:57 +02:00
Martin Storsjö 9e22cdbc9f github: Install libltdl-dev in the linux-cross-windows build job
This is required for building libffi. With ubuntu-22.04 images,
the libltdl-dev package was available out of the box.

Also explicitly install swig, which we rely on - this also seems
to have been available implicitly.
2025-01-07 15:07:08 +02:00
Martin Storsjö 09d5ba264e github: Bump to building ffmpeg 6.1.2 rather than 6.0
This fixes building on Ubuntu 24.04 (the one currently used by
the github actions ubuntu-latest tag), by including a fix for texinfo
7.0.

Not bumping to ffmpeg 7.x, as some tests there can be flaky at times.
2025-01-07 14:34:02 +02:00
Martin Storsjö 8400557f2b build-llvm: Bump to LLVM 19.1.6 2024-12-17 17:35:57 +02:00
Martin Storsjö 9894240cb1 build-mingw-w64: Bump to the latest version as of Dec 17th 2024-12-17 17:34:50 +02:00
Martin Storsjö f84079bb71 macos: Bump the minimum deployment target to macOS 10.12
Since https://github.com/llvm/llvm-project/pull/117252 and
https://github.com/llvm/llvm-project/commit/186fac33d08b34be494caa58fe63972f69c6d6ab,
part of the latest git main branch, LLDB uses std::shared_mutex.

On macOS, std::shared_mutex is only available since macOS 10.12.

This change raises the deployment target from 10.9 to 10.12.
2024-12-13 09:51:58 +02:00
Martin Storsjö 5fe69a92ac build-python: Bump to Python 3.12.7 2024-12-10 11:24:43 +02:00
Martin Storsjö 8e6bbb7b83 test: Waive issues in frexp* functions in msvcrt.dll on ARM
These issues appear when testing with the real msvcrt.dll on ARM;
if testing in Wine, these functions behave as expected.
2024-12-04 12:34:40 +02:00
Martin Storsjö 14dad0c971 build-llvm: Bump to LLVM 19.1.5 2024-12-03 15:09:48 +02:00
Martin Storsjö 2f03c4a961 build-mingw-w64: Bump to the latest version as of Dec 3rd 2024-12-03 15:09:26 +02:00
dependabot[bot] fdf064a647 build(deps): bump dawidd6/action-download-artifact in /.github/workflows
Bumps [dawidd6/action-download-artifact](https://github.com/dawidd6/action-download-artifact) from 3 to 6.
- [Release notes](https://github.com/dawidd6/action-download-artifact/releases)
- [Commits](https://github.com/dawidd6/action-download-artifact/compare/v3...v6)

---
updated-dependencies:
- dependency-name: dawidd6/action-download-artifact
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-27 10:59:35 +02:00
Martin Storsjö 9128fa8dba build-llvm: Bump to LLVM 19.1.4 2024-11-19 15:21:30 +02:00
Martin Storsjö 2a15821e30 build-mingw-w64: Bump to the latest version as of Nov 19th 2024-11-19 15:21:10 +02:00
Martin Storsjö 53d1f7b628 readme: Add links for downloading and installing UCRT on older Windows versions 2024-11-19 14:01:06 +02:00
Martin Storsjö f343f6447b readme: Remove a paragraph about the toolchain being immature
At this point, it is reasonably mature.

There still obviously are projects that won't build with llvm-mingw,
both due to unimplemented features that GCC/binutils have, or for
other reasons, but the toolchain has seen quite a lot of usage
since this paragraph originally was written.
2024-11-19 13:36:05 +02:00
Martin Storsjö df52fcb4da github: Set LLVM_LIT_ARGS for the compiler-rt and openmp tests
This allows inspecting exactly which tests actually were executed
or skipped, and also gives some insight into what tests are slow.
2024-11-19 11:22:12 +02:00
Martin Storsjö ccfa1317a5 test: Test building crt-test.c as C++ 2024-11-12 11:31:44 +02:00
Martin Storsjö 2b80cf0efd test: Fix crt-test.c to be buildable in C++ mode
Make it work with both GCC on Linux, llvm-mingw, and MSVC.
2024-11-12 11:31:44 +02:00
Martin Storsjö e457f40bd9 test: Explicitly test with -D__USE_MINGW_ANSI_STDIO=0 as well 2024-11-12 11:31:44 +02:00
Martin Storsjö da1e61f7e5 test: Waive issues in crt-test.c if running with msvcrt.dll and -D__USE_MINGW_ANSI_STDIO=0 2024-11-12 11:31:43 +02:00
Martin Storsjö 8eec3b91b3 test: Fix code style in crt-test.c 2024-11-12 11:31:43 +02:00
Martin Storsjö 531adeb304 build-llvm: Don't hardcode default choices of linker/stdlib on Windows
This should help with using clangd for other mingw toolchain
installs.
2024-11-06 11:40:31 +02:00
Martin Storsjö 63691c69bc wrappers: Skip the clang-scan-deps wrapper script on Unix
The wrapper script no longer has any purpose on Unix.

Just do a plain symlink to the clang-scan-deps tool.

On Windows, the wrapper executable still is used to inject a
default -target option, if the executable name doesn't contain
a triple.
2024-11-06 11:40:31 +02:00
Martin Storsjö ff505bf06a wrappers: Remove an explicit -stdlib=libc++ in clang-scan-deps-wrapper
This gets set by the config file.
2024-11-06 11:40:31 +02:00
Martin Storsjö eb6d71a82f wrappers: Don't explicitly pass -target in clang-scan-deps-wrapper.sh
clang-scan-deps can pick it up automatically from the first argument
now.

For the windows wrapper, keep passing -target, to allow running with
a potentially foreign clang-scan-deps.exe.
2024-11-06 11:40:31 +02:00
Martin Storsjö 6bd54a4fc2 wrappers: Move common arguments into a shared config file 2024-11-06 11:40:31 +02:00
Martin Storsjö 866d47cced wrappers: Pick up the Clang config file implicitly
Clang only picks up config files implicitly using the normalized
triple form, so use file names with "-windows-gnu" instead of
"-mingw32".

In theory, we could also want to pick up the config file implicitly
by having "<triple>-<mode>" be a symlink directly to the clang
executable. That works for regular mingw32 targets, but for the
mingw32uwp target, there's no distinction in the normalized
triple, so both would end up using the same "-windows-gnu" config
files. So as long as we want to support the mingw32uwp prefixed
tools, we need to use a wrapper.
2024-11-06 11:40:30 +02:00
Martin Storsjö e2e9216853 wrappers: Use clang config files for defaults
This makes these defaults more easy to get picked up in various
use cases, when not directly executing a compiler.
2024-11-06 11:40:30 +02:00
Martin Storsjö 0ebb52ae0e build-llvm: Bump to LLVM 19.1.3 2024-10-30 15:41:58 +02:00
Martin Storsjö dcc8426c0c build-mingw-w64: Bump to the latest version as of Oct 28th 2024-10-30 15:40:25 +02:00
Martin Storsjö 7851e99345 build-llvm: Bump to LLVM 19.1.2 2024-10-15 15:02:57 +03:00
Martin Storsjö e026e42686 build-mingw-w64: Bump to the latest version as of Oct 15th 2024-10-15 15:02:28 +03:00
Martin Storsjö e0964ce24c Revert use of Clang config files
This reverts commit 49db4a3a15,
9f1f0104f1,
4f95c14adf,
c34dc64028,
570fdcd251,
4bff0298c5 and
6939aee0c0.

When relying on Clang config files, two issues appeared:

- Running the compiler-rt tests fails, because the compiler-rt tests
  disable any default config files, breaking the compiler
  in this case:
  https://github.com/llvm/llvm-project/blob/llvmorg-19.1.1/compiler-rt/test/lit.common.cfg.py#L983

- Wine fails to build using llvm-mingw as cross compiler, because
  Wine adds the --no-default-config flag to Clang while compiling,
  if supported:
  https://gitlab.winehq.org/wine/wine/-/blob/wine-9.19/configure.ac?ref_type=tags#L866-868
  This causes llvm-mingw to omit the -rtlib=compiler-rt option
  (specified in a config file), making the compiler look for libgcc
  instead. Doing a check to see that linking succeeds doesn't necessarily
  help here - such a check already exists, but it tests linking with
  -nostdlib -nodefaultlibs:
  https://gitlab.winehq.org/wine/wine/-/blob/wine-9.19/aclocal.m4?ref_type=tags#L193-L206
2024-10-14 16:35:17 +03:00
Martin Storsjö 49db4a3a15 build-llvm: Don't hardcode default choices of linker/stdlib on Windows
This should help with using clangd for other mingw toolchain
installs.
2024-10-02 16:06:06 +03:00