This is necessary since 8bc62db27244803 (Jun 26, 2020) in llvm-project.
Also setting it for libcxxabi and libunwind, in case it becomes
needed there as well.
Passing -lucrt* to the clang driver inhibits the implicit default
-lmsvcrt, so this ends up only using libucrtapp.a instead of libucrt.a.
This still requires that the default crt was ucrt, as the prebuilt
libc++.a needs to have been built for the right crt.
`pacman -S` by default reinstalls (and redownloads if necessary) packages given as arguments. Adding `--needed` flag makes it skip packages which are already installed and up to date.
These aren't strictly necessary any longer, as the external libs
are used automatically if found (instead of erroring out if not
found, unless explicitly disabled as before).
Still keeping the explicit disables, to avoid potential issues if
e.g. the libs are found but exist in an incompatible version.
- Fixed the dinput/dinput8 libraries for armv7/aarch64
- Provide libcfgmgr32.a for aarch64
- Fix cases of duplicate definitions of snprintf/vsnprintf when using
msvcrt as crt, when building C++ code
- Fix cases where mftransform.h would undefine EXTERN_C, turning other
variables declared as EXTERN_C into actual definitions
Notable changes since the previously pinned (early December 2019)
version:
- Implicitly add the .exe suffix if not provided in the clang
-o argument, when running on windows (to match GCC's behaviour)
- Fixes for accesses to TLS variables in another object file
- Fixes for accessing weak functions that may be undefined, on ARM and AArch64
(x86 was fixed earlier)
- Fixed many instances of locale handling in libcxx
The GCC svn repo is no longer available, and fetching the whole GCC
git repo at around 1 GB is a bit wasteful, when we just need libssp
(which is less than 1 MB), but github provides svn access to git repos,
allowing us to fetch just this subdirectory.
Build one single test to verify that building generic code for mingw32uwp
works, but skip building all of the tests for this target.
Keep building the uwp-error test for all targets, to verify that it
builds successfully for mingw32 but fails for mingw32uwp.
This reduces the runtime for the tests by around a third.
Use "gmake" instead of "make" when gmake is available.
The makefile used for libssp is a handwritten one that requires
GNU make features. mingw-w64 uses automake, which in principle should
work with BSD make, but mingw-w64-headers hangs indefinitely if built
with BSD make.
These defines were renamed in lldb git master, soon after the current
pinned version.
This fixes building with a later version of llvm than the pinned one.
These days, we have a working strip tool, so we can do a slightly
more straightforward procedure here.
In build-make.sh we still build with -Wl,-s, as we call a less
obvious install target there, in order to only install mingw32-make.sh,
not some header files and documentation.