Commit Graph
382 Commits
Author SHA1 Message Date
Martin Storsjö c013ab7548 Update llvm/clang/lld to the latest version
In this version, llvm-objcopy has gained support for operating on
COFF object files and executables.
2019-01-24 10:58:20 +02:00
Martin Storsjö add8d6ee31 Update mingw-w64 to the latest version
This fixes issues with the _xgetbv builtin in latest trunk versions
of clang.
2019-01-24 10:58:20 +02:00
Martin Storsjö da00a0662e Update libunwind to the latest version
This version makes libunwind actually make the SjLj context properly
thread local.
2019-01-18 22:39:26 +02:00
Martin Storsjö f43d7825e5 Remove the new OptRemarks.dll when stripping the llvm installation 2019-01-04 01:30:26 +02:00
Martin Storsjö 6d9eb8296f Update llvm/clang/lld
This implements the .arch_extension directive for aarch64, and fixes a
regression in the C++ ABI in the previous clang update.
2019-01-03 09:04:43 +02:00
Martin Storsjö 5be98a5cd6 Ignore *.tar.xz and *.zip for docker builds 2019-01-03 09:04:43 +02:00
Martin Storsjö b9eb66bc1f Set LIBCXX_INCLUDE_TESTS=FALSE when building libcxx
The DLL build fails since we stopped setting LIBCXX_ABI_UNSTABLE=TRUE,
if the tests are enabled (which they are if building against a
non-stripped llvm installation).
2018-12-21 09:42:38 +02:00
Martin Storsjö 585c767ee4 Use llvm-ar with the flag 'L' instead of a helper MRI script for merging archives 2018-12-20 12:11:10 +02:00
Martin Storsjö 52fc6c5c06 Update libunwind to the latest version
This version supports SEH unwinding on aarch64.
2018-12-20 12:10:15 +02:00
Martin Storsjö 5004db0de6 Update mingw-w64 to the latest version
This fixes symbol availability of __C_specific_handler for
use of SEH on arm64.
2018-12-20 12:10:15 +02:00
Martin Storsjö 04beed38bc Update llvm/clang/lld
This version supports SEH for arm64, fixes certain cases of dllexport
of C++ classes defined entirely in headers (fixing building Qt in
debug mode), and fixes a compiler bug (regression since the end of
August 2018) when compiling glslang (as part of VLC) for armv7.
2018-12-20 12:10:15 +02:00
Hugo Beauzée-Luyssen 07d47e3edd Bump mingw-w64 hash
This version has stubs for RtlCaptureContext which allows using SEH for
windows store
2018-12-13 10:14:01 +01:00
Martin Storsjö 837fee3ce1 Clarify the output of the exception-locale test 2018-12-12 00:07:50 +02:00
Martin Storsjö 1228a03be4 Update libunwind to the latest version, fixing SEH exceptions in certain cases 2018-12-11 13:35:56 +02:00
Martin Storsjö 7e0dbe79bf Stop building libcxx with LIBCXX_ABI_UNSTABLE=TRUE
This didn't seem to actually be necessary, not even in the initial
commit adding support for building a DLL of libcxx. It might have
been necessary at some earlier point while working on building a DLL.
2018-12-06 00:49:25 +02:00
Martin Storsjö 7a86e4ce73 Define _LIBCPP_ABI_UNSTABLE manually when building libcxxabi
This is set via a cmake option when building libcxx, but libcxxabi
uses the raw libcxx headers from its include directory before they
are installed.

This fixes cases of inconsistent classes seen while compiling libcxxabi
and libcxx. With potential future patches to clang to adjust how
classes are exported with dllexport, this change is needed to avoid
conflicts.
2018-12-05 13:47:48 +02:00
Martin Storsjö 4d861b67b5 Don't move clang.exe to clang-<major>.exe if clang-<major>.exe already exists 2018-11-30 12:03:09 +02:00
Martin Storsjö 11a83711ad Check that clang.exe exists before moving it to clang-<major>.exe 2018-11-30 12:03:09 +02:00
Martin Storsjö 32668f336b Keep clang.exe around if we won't be replacing it with an unprefixed wrapper 2018-11-30 12:03:09 +02:00
Martin Storsjö e45e9ab98e Update compiler-rt to a newer version
This fixes building sanitizers natively on windows/msys.
2018-11-30 12:03:09 +02:00
Martin Storsjö 1f838437ca Automatically set EXEEXT in build-mingw-w64.sh and strip-llvm.sh 2018-11-30 12:03:09 +02:00
Martin Storsjö 9e7a6e0afb Convert msys style paths to windows style in merge-archives.sh 2018-11-30 12:03:09 +02:00
Martin Storsjö fdd0a116ae Try to set "MSYS Makefiles" as cmake generator in mingw environments 2018-11-30 12:03:09 +02:00
Martin Storsjö f9811f258e Set CMAKE_GENERATOR to the intended generator only, add the -G separately 2018-11-30 12:03:09 +02:00
Martin Storsjö d294d17053 Create the prefix/triplet/bin directory before installing DLLs in build-libcxx.sh
If the triplet directory is wiped and only the build-mingw-w64.sh
step is rerun, the bin subdirectory would be missing, ending up
with a file named "bin", which actually was the libc++ DLL.
2018-11-30 11:37:00 +02:00
Martin Storsjö 53db1c3a4c Resolve $PREFIX to an absolute path at the start of shell scripts
This fixes building/installing into a relative path.
2018-11-23 13:51:05 +02:00
Martin Storsjö ecdbfaacc3 Only apply .gitignore ignore rules at the top level 2018-11-20 22:51:35 +02:00
Martin Storsjö ae2a98efba windres: Ignore the --use-temp-file option
This option seems to be used occasionally by projects to work around
various issues with popen in GNU windres.

Our windres wrapper always uses a temp file for the preprocessing
output, so for us the option is a no-op.
2018-11-13 00:35:53 +02:00
Martin Storsjö 99e2fefc9d Use nproc and sysctl -n hw.cpu for default initializing CORES
This avoids having to pass --build-arg CORES=n when building the
docker images.
2018-11-09 22:20:34 +02:00
Konstantin Pavlov e0f186967a Don't remove the workdir itself
Since Docker 18.09, this breaks later stages.
2018-11-09 14:09:24 +02:00
Martin Storsjö 9367988be7 Mention the fact that binutils can't use the generated import libraries 2018-11-03 14:26:21 +02:00
Martin Storsjö 8002486c84 clang-target-wrapper: Filter the output from "clang -v" on windows
Convert paths with backslashes to forward slashes.

libtool tries to parse this output in order to find object files and
libraries that always should be linked in, but libtool can't handle
paths with backslashes (and quotes) which clang currently outputs.

This is a quick and ugly workaround until clang can be made to
output paths with forward slashes on windows, see
https://reviews.llvm.org/D53066 for progress on that matter.
2018-11-02 12:31:41 +02:00
Martin Storsjö 643d9c1645 windres: Fix handling of -D/-U options with a space between the option and the name of the define 2018-10-19 09:23:30 +03:00
Martin Storsjö af069a9c29 Update to the latest version of mingw-w64
This fixes the _isdigit_l function for UCRT, fixing iostream formatting
of numbers in certain cases, in cases e.g. like this:
    double test = 1.0 / 3.0;
    std::cout << test << std::endl;
2018-10-19 09:15:43 +03:00
Martin Storsjö a999e54760 Mention prebuilt binaries in the readme 2018-10-17 23:34:13 +03:00
Martin Storsjö f09fc9d618 Add a script for packaging a release 2018-10-17 23:19:43 +03:00
Martin Storsjö fc88912646 Mention ubsan in the readme 2018-10-17 22:45:54 +03:00
Martin Storsjö c9817eca35 Add a testcase for ubsan 2018-10-17 22:45:54 +03:00
Martin Storsjö 6ead0a46b3 Add a known issue about the fact that sanitizers only are supported on x86 2018-10-17 22:45:54 +03:00
Martin Storsjö c1fe94fcef Update compiler-rt to the latest version
This fixes using ubsan with mingw targets.
2018-10-17 22:45:54 +03:00
Martin Storsjö 2244b6cdfa Update llvm/clang/lld to a newer version
This makes the help output from llvm-nm contain keywords that libtool
may look for, makes combined compilation and linking with -flto in
one command work, fixes a bug with alignment of locally imported
symbols on arm64, allows using linker directives for specifying
default libraries to link, and allows linking to undefined behaviour
sanitizer.
2018-10-17 22:45:54 +03:00
Martin Storsjö f47a4009ac Add a separate dockerfile for crosscompiling the toolchain itself 2018-10-17 22:45:54 +03:00
Martin Storsjö f5008d5380 Merge build-mingw-w64-widl.sh back into build-mingw-w64.sh
This allows checking out the mingw-w64 repo if it is missing, when
building widl.
2018-10-17 22:45:54 +03:00
Martin Storsjö 14e7d650f1 Allow building llvm-tblgen/clang-tblgen/llvm-config if needed 2018-10-16 20:27:53 +03:00
Martin Storsjö 5390b58835 Consistently use "COPY .. ./" in Dockerfiles
This avoids potential issues and confusion with cases where a plain "." as
target doesn't work.
2018-10-16 20:25:39 +03:00
Martin Storsjö e9d8d57ec6 Fix adding build-compiler-rt.sh after wiping the build dir
With newer docker versions, "COPY foo .", when the workdir doesn't exist,
produces a plain file named as the workdir, breaking the rest of the build.
2018-10-16 19:42:31 +03:00
Martin Storsjö 3c6e1fe8bc Make a shell script case more compact 2018-10-13 23:57:41 +03:00
Martin Storsjö 73bd1bc62c Provide wrappers named cc/c99/c11/c++ as well 2018-10-10 23:33:19 +03:00
Martin Storsjö 3d1b15b01e Make widl default to prefix/include instead of prefix/target/include, for windows toolchains
In these setups, we already install headers into prefix/include, in
order to save diskspace.
2018-10-10 23:33:19 +03:00
Martin Storsjö f16867dd20 Update mingw-w64 to the latest version
This version allows overriding the default include directory used
by widl.
2018-10-10 23:33:19 +03:00