Commit Graph
164 Commits
Author SHA1 Message Date
Martin Storsjö d9d46de5f3 build-llvm: Bump to LLVM 19.1.1 2024-10-01 16:34:57 +03:00
Martin Storsjö b4c2760100 build-llvm: Bump to LLVM 19.1.0 final 2024-09-17 14:49:31 +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ö c5d169f1dc build-llvm: Bump to LLVM 19.1.0 RC 3 2024-08-20 11:30:25 +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ö 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ö e3e9f97fab build-llvm: Bump to LLVM 18.1.8 2024-06-19 12:56:40 +03:00
Martin Storsjö ab7e195ef3 build-llvm: Bump to LLVM 18.1.7 2024-06-06 10:57:03 +03:00
Martin Storsjö f2ca758fcd build-llvm: Bump to LLVM 18.1.6 2024-05-19 00:24:40 +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ö 88bad0dddd build-llvm: Allow setting CMAKE_<LANG>_COMPILER_LAUNCHER via an env variable 2024-04-24 11:36:57 +03:00
Martin Storsjö 760b639c20 build-llvm: Bump to LLVM 18.1.4 2024-04-17 10:53:21 +03:00
Martin Storsjö 03948b69d7 build-llvm: Bump to LLVM 18.1.3 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ö 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ö 5bf2c94e6f build-llvm: Bump to LLVM 18.1.0 final 2024-03-06 09:45:51 +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ö 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ö 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ö 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ö 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ö 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
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ö 387bfba3cb build-llvm: Bump to LLVM 17.0.6 2023-11-28 13:19:45 +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ö 57298c1a93 build-llvm: Bump to LLVM 17.0.5 2023-11-14 12:42:27 +02:00
Martin Storsjö f168c089c4 build-llvm: Bump to LLVM 17.0.4 2023-10-31 11:05:20 +02: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ö 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ö 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ö 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ö 5ee46738a1 build-llvm: Bump to LLVM 17.0.0 RC 4 2023-09-05 22:00:10 +03:00
Martin Storsjö e3545e2ffc build-llvm: Bump to LLVM 17.0.0 RC3 2023-08-22 11:32:22 +03:00
Martin Storsjö 464de1eb89 build-llvm: Bump to LLVM 17.0.0 RC2 2023-08-10 08:02:07 +03:00
Martin Storsjö bad114ca4e build-llvm: Bump to LLVM 17.0.0 RC1
Relevant changes since 16.0.6 are:
- Improve Address Sanitizer on i686 mingw
- Improve handling of X86 Intel assembly syntax
- Fix using std::wcout/wcin/wcerr with streams configured in wide mode
- Improve handling of the .arch and .arch_extension assembly directives
  on aarch64
- Support the --temp-prefix (ignored) and --no-leading-underscore
  options in llvm-dlltool
- Make lld warn about too narrow pseudo relocations, simplifying finding
  issues that otherwise only show up at runtime
- Improved the tests, making compiler-rt, libcxxabi and libunwind tests
  pass in mingw configurations
2023-07-29 23:47:19 +03:00
Martin Storsjö 271242426a build-llvm: Bump to LLVM 16.0.6 2023-06-14 09:20:01 +03:00
Martin Storsjö 7e8bcdc43c build-llvm: Bump to LLVM 16.0.5 2023-06-02 17:42:49 +03:00
Martin Storsjö 274a30cff5 build-llvm: Bump to LLVM 16.0.4 2023-05-17 09:02:02 +03:00
Martin Storsjö 001c3a2bcf build-llvm: Bump to LLVM 16.0.3 2023-05-03 22:49:42 +03:00
Martin Storsjö 0e13ea4e5a build-llvm: Bump to LLVM 16.0.2
A couple relevant changes since 16.0.0:
- Fix compilation for ARM (failures in generating SEH unwind info)
  for very specific cases
- Link the ASAN DLL before other libs and objects, to make sure it gets
  initialized as early as possible
- Allow double backslashes in the PATH in ASAN
- Allow llvm-rc to look for a clang executable named "clang-16", if the
  other alternatives aren't available
- Improve the performance of buffered raw_ostream within LLVM
2023-04-27 10:50:36 +03:00
Martin Storsjö 06f44cda62 Support cross compilation to non-windows targets
Don't have --host/$HOST imply targeting Windows, but actually inspect
the target triple where necessary.
2023-04-26 19:18:24 +03:00
Martin Storsjö af99275e2e Remove unnecessary empty cases in shell scripts 2023-04-26 10:01:21 +03:00
Martin Storsjö 51abc9117f build-llvm: Enable LLD_DEFAULT_LD_LLD_IS_MINGW for builds on Windows
This makes sure we get the right behaviour (and output from "--help")
if ld.lld.exe is called directly without a wrapper setting the -m
parameter.
2023-03-22 23:32:53 +02:00
Martin Storsjö 8ee28e2938 build-llvm: Enable the custom defaults for Clang when building natively on MSYS2
Normally our releases are cross-built from Linux, but we also
support building the toolchain in MSYS2. Enable the custom defaults
when building the toolchain in MSYS2 too.
2023-03-22 23:32:53 +02:00
Martin Storsjö 4a579e1562 build-llvm: Remove an unused variable
This became unused in 8536b740e3.
2023-03-22 23:32:53 +02:00
Martin Storsjö 1ca5ecf22f build-llvm: Update to the final 16.0.0 release
Notable changes for mingw users are:
- Support demangling C++ symbols on i386 in LLVM backtraces
- Don't report fatal errors when the output pipe is closed on Windows
- Ignore file access times on Windows when comparing whether files are
  equivalent
2023-03-20 12:23:47 +02:00