On some distributions, e.g. openSUSE, the libraries for 64 bit
architectures end up stored in <target>/<triplet>/lib64 instead of
plain "lib".
(This is caused by their use of a site script for configure, which
overrides libdir when the host triplet matches 64 bit architecture
names - even if it's a triple for cross compilation for a totally
different OS. This only affects the libraries and not mingw-w64-crt,
as the crt's makefiles manually set the output directory name.)
This fixes https://github.com/mstorsjo/llvm-mingw/issues/51.
This version contains fixes for wchar printf functions in how they
handle %s/%S formats.
This isn't the absolute latest version, as there's other commits further
ahead adding support for _FORTIFY_SOURCE (which has little to no effect
with Clang as it doesn't evaluate __builtin_object_size in inlined
contexts), and the commits for _FORTIFY_SOURCE caused a few regressions,
and things might still be a bit in flux (even though the current master
seems to work fine).
This makes cmake use relative paths to all source files, allowing ccache
to reuse compilation results from different source trees in different
directories.
Keep using LLVM_ENABLE_PROJECTS on msys, where symlinks aren't supported.
This updates compiler-rt, libunwind, libcxxabi and libcxx to a newer
version, matching the compiler.
This will be the official, canonical repo in the future.
For the non-dev Dockerfile build, this means that all the llvm based
subprojects need to be built in one RUN to avoid storing the llvm
checkout in the docker layers.
In this environment, symlinks don't exist but are made as copies.
In such cases, the -n option to ln doesn't work for making this
a no-op.
Alternatively, we could append "|| true", which would print an
error but continue.
When building on windows, the toolchain bin directory contains
prefixless wrappers named "gcc.exe" and "clang.exe", even though
the toolchain isn't functional yet at this stage. Restore the
original path before building widl.
A more complete solution might be to build widl first, before
adding the newly built toolchain to the path.
This version fixes deadlocks in winpthreads condvars (in certain
use patterns), uses the _UCRT define to request and signal the
use of UCRT, fixes the UCRT _vsnwprintf function, uses the
CRT's setjmp/longjmp on AArch64 if SEH is in use, and makes the
UCRT set the app type to console properly for such apps.
This version adds support for a version of the -pdb option to the MinGW
frontend to lld that can work without a parameter, and implements --help
and -v for the same frontend.
This saves a lot of diskspace, when symlinks are turned into full
copies of the tools on windows, as the symlinks only point to a small
wrapper instead of to the full tool.