Commit Graph
1392 Commits
Author SHA1 Message Date
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
Martin Storsjö 9f1f0104f1 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-10-02 16:06:01 +03:00
Martin Storsjö 4f95c14adf wrappers: Remove an explicit -stdlib=libc++ in clang-scan-deps-wrapper
This gets set by the config file.
2024-10-02 16:06:01 +03:00
Martin Storsjö c34dc64028 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-10-02 16:06:01 +03:00
Martin Storsjö 570fdcd251 wrappers: Move common arguments into a shared config file 2024-10-02 15:58:01 +03:00
Martin Storsjö 4bff0298c5 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-10-02 15:58:00 +03:00
Martin Storsjö 6939aee0c0 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-10-02 15:58:00 +03:00
Martin Storsjö e9e2ef7d53 wrappers: Unify handling of CMD_EXE in clang-scan-deps-wrapper.sh
If we never set $TARGET, we'd previously miss including $CMD_EXE
in the nested command. (This doesn't happen in actual uses of
the wrapper though, but is included for completeness.)

This matches how the corresponding variable is handled in the C
version of the wrapper.
2024-10-02 15:58:00 +03:00
Martin Storsjö d9d46de5f3 build-llvm: Bump to LLVM 19.1.1 2024-10-01 16:34:57 +03:00
Martin Storsjö 44fd29707b build-mingw-w64: Bump to the latest version as of Oct 1st 2024-10-01 16:34:39 +03:00
Martin Storsjö b4c2760100 build-llvm: Bump to LLVM 19.1.0 final 2024-09-17 14:49:31 +03:00
Martin Storsjö f11f5bde0b build-mingw-w64: Bump to the latest version as of Sep 17th
This is the latest version, minus one commit.

The very latest commit, 20331109d1c90c19a510408ab119a76004bc41ea,
causes issues with compiling VLC; that is a VLC issue (redefining
GUIDs that now are provided by the system headers), but holding
off of that change until VLC is updated to cope with it.
2024-09-17 14:47:26 +03:00
Martin Storsjö 490dfffb32 Docker.system-clang: Fix building with older LLVM versions after recent changes 2024-09-10 11:19:21 +03:00
Martin Storsjö 4718b81419 build-compiler-rt: Build all runtimes for aarch64 and armv7 too
Since 0c391133c9201ef29273554a1505ef855ce17668 in llvm-project
(LLVM 17), the sanitizers can be built for aarch64, and since
5ea9dd8c7076270695a1d90b9c73718e7d95e0bf (backported to
LLVM 19.1.0 RC 4), they can be built for armv7 too.

While they can be built, address sanitizer doesn't work for the
non-x86 architecture, so omit those files from the install,
to make it clear that they aren't expected to work.

Thus, in practice, this builds the ubsan and profile runtimes for
aarch64 and armv7.
2024-09-10 11:17:05 +03:00
Martin Storsjö b6b58d96d9 build-llvm: Add an option --no-llvm-tool-reuse
This allows using the build-llvm.sh script for doing a cross build
of LLVM, while the same directory may contain a native build
which can be out of sync with the actual source.
2024-09-06 12:24:40 +03:00
Martin Storsjö a7f4cf9670 build-llvm: Bump to LLVM 19.1.0 RC 4 2024-09-03 18:45:45 +03:00
Martin Storsjö 7c0de2f1fe build-mingw-w64: Bump to the latest version as of Sep 3rd 2024-09-03 18:44:56 +03:00
Martin Storsjö ae5aa36b95 build-compiler-rt: Only use a temp directory as install prefix if necessary
This makes the build script output more legible, when the cmake
install output actually shows where the files are installed in the
end.
2024-08-30 10:52:32 +03:00
Martin Storsjö 179f412f25 github: Don't unnecessarily add the toolchain path to GITHUB_PATH
The win32 path environment isn't inherited by the msys2 shell
anyway.
2024-08-20 11:31:04 +03:00
Martin Storsjö e3790acf7d test: Set the NATIVE= variable automatically in test-libcxx-module.sh 2024-08-20 11:31:04 +03:00
Martin Storsjö c5d169f1dc build-llvm: Bump to LLVM 19.1.0 RC 3 2024-08-20 11:30:25 +03:00
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