Commit Graph
654 Commits
Author SHA1 Message Date
Martin Storsjö 2094638569 patches: Patch the llvm 12.x release to include support for std::filesystem in libcxx 2021-04-23 10:58:42 +03:00
Martin Storsjö e1f30312e9 Dockerfile: Update the installed version of CMake, install an arch specific version
This fixes building the dockerfiles on aarch64.
2021-04-23 10:54:07 +03:00
Martin Storsjö f061215ebf strip-llvm: Remove libLTO.dll
In LLVM 12, it no longer ends up called LTO.dll, but libLTO.dll.
2021-04-15 11:37:11 +03:00
Martin Storsjö 7e55d4df92 strip-llvm: Remove the new ld64.lld.darwinnew in newer llvm versions 2021-04-15 11:37:11 +03:00
Martin Storsjö bbbdab6e27 test: Add an option for triggering a breakpoint with hello-exception.cpp 2021-04-15 11:37:11 +03:00
Martin Storsjö 33fe419247 build-mingw-w64: Bump to the latest git master version 2021-04-15 11:37:05 +03:00
Martin Storsjö e45fe5b5f6 build-libcxx: Switch to have libcxxabi provide new/delete operators
This matches how it is set by default in current master versions.

This requires building a version that includes
https://reviews.llvm.org/D89863, otherwise the new/delete operators
aren't properly weak.
2021-04-15 11:36:20 +03:00
Martin Storsjö 0200472671 test: Add a testcase for cleanup of C++ destructors while doing longjmp
For x86_64 and aarch64, this requires https://reviews.llvm.org/D89231.

The C++ destructors aren't executed while doing the longjmp (contrary
to how it works MSVC's C++ exceptions), but it no longer crashes.
2021-04-15 11:36:20 +03:00
Martin Storsjö 2a323ac869 build-llvm: Bump to the LLVM 12.0.0
Notable changes in this release:
- Implicitly add the .exe suffix, even when cross compiling (matching
  a behaviour change in GCC since GCC 8)
- Enable the dynamicbase flag by default in LLD
- Implemented the -wrap option in LLD
- Optimized the generated unwind data for aarch64, reducing the size
  of the unwind data by around 60%
- Error out of LLD if trying to create a DLL with too many exports
2021-04-15 11:29:57 +03:00
Martin Storsjö 547927e1d3 dockerfile: Install the zip tool in the base image
This is needed when packaging the cross built toolchains anyway.
2021-04-14 09:37:18 +03:00
Martin Storsjö 9494c9c2a9 dockerfile: Switch vim to vim-tiny in the docker images 2021-04-14 09:37:18 +03:00
Martin Storsjö be89715b8b dockerfile: Install python3
This is required by LLVM 12.
2021-04-14 09:37:18 +03:00
Martin Storsjö 82a540877d dockerfile: Install a newer version of CMake
This is required if building the master version of LLVM, past the
11 release branch.
2021-04-14 09:37:18 +03:00
Martin Storsjö b34e1cd82b windres-wrapper: Don't leave the .preproc.rc behind if producing .res 2021-04-09 13:42:29 +03:00
Martin Storsjö 4012843f3e built-llvm: Add options for doing a stage2 build, and for building with LTO 2021-03-22 14:07:49 +02:00
Martin Storsjö 84fc501cf8 build-compiler-rt: Tolerate cases where the output libs already have normalized arch names
This is needed since 8bd2722f65cfd7883ed9769f7bad3ff50e4c6905
(and 8e11bede3a6ac11ebcc05c82fac39899feaf9534) in llvm-project
(past the 12.x release branch), which will allow us to get rid of the
whole arch renaming part (once we can assume we're building a version
newer than that).
2021-03-22 14:06:11 +02:00
Martin Storsjö c3529a6b9b windres-wrapper: Implement support for the --preprocessor option 2021-03-10 10:22:06 +02:00
Martin Storsjö 1db63b8682 build-all: Switch to requiring curl instead of wget
The dockerfiles install both tools, and the scripts that use them
(build-make.sh and build-libssp.sh) can make do with either curl
or wget, but e.g. macOS ships with curl but not wget.
2021-03-08 09:09:07 +02:00
Martin Storsjö 790bc40855 test: Add a testcase for throwing/catching C++ exceptions across DLLs 2021-02-19 16:19:47 +02:00
Long Nguyen c0596d3170 Unset CC before building to prevent env pollution 2021-02-10 14:42:34 +02:00
Martin Storsjö cc0055bc96 Fix the help printouts in scripts
Printing '<triple>' causes the shell to try to read a file named
triple. One could either quote it, or just remove the angle brackets;
removing the brackets for simplicity.
2021-02-09 13:54:16 +02:00
Long Nguyen ee0585ae9e build-mingw-w64.sh: Switch to github mirror 2021-02-03 11:49:25 +02:00
Martin Storsjö 5533a5ad53 run-tests: Fix running with a relative path to the toolchain
This fixes github issue #181.
2021-01-25 14:45:34 +02:00
Martin Storsjö 4b063063f2 build-llvm: Don't explicitly disable LLDB's dependencies
They are supposed to be autodetected these days, and the build
shouldn't fail if they aren't available.
2021-01-25 10:44:39 +02:00
Long Nguyen 8a7dcd4ef1 build-cross-tools: Quote the path 2020-11-22 10:44:54 +02:00
Martin Storsjö e5612ac52e crt-test: Add a few more log2 tests for negative outputs with exact inputs 2020-11-21 21:34:50 +02:00
Martin Storsjö d5cda17953 wrappers: Return 0 when printing help in the windres wrapper 2020-11-21 21:34:50 +02:00
Russell Haley 5497454d16 Update windres-wrapper --version to return 0
modified:   wrappers/windres-wrapper.c - print_version now passes 0 to
exit function.
2020-11-21 21:33:14 +02:00
Martin Storsjö 22ef268489 build-libssp: Allow downloading with either wget or curl 2020-11-11 12:51:27 +02:00
Orgad Shaneh 959f14a1c1 libssp: Download directory from gitlab instead of svn
svn is typically blocked on corporate firewalls.
2020-11-11 12:48:15 +02:00
Martin Storsjö 93e0b63f3c build-openmp: Stop setting CMAKE_C_COMPILER_WORKS
This wasn't ever needed for building the OpenMP runtime.
2020-11-11 12:21:11 +02:00
Martin Storsjö 87648b3ada build-libcxx: Remove superfluous cmake settings 2020-11-11 12:21:11 +02:00
Martin Storsjö 92bb096468 build-libcxx: Avoid warnings when building latest libcxxabi 2020-11-11 10:57:39 +02:00
Martin Storsjö 10ac7a59dd build-libcxx: Don't explicitly disable libc++ std::filesystem
It's currently disabled by default for windows targets; rely on this.
If it's enabled automatically upstream later, take it into use.
2020-11-11 10:57:40 +02:00
Martin Storsjö d334f83671 docker: Install curl and less in the base test images
Having less available should make debugging in the docker images a bit
more accessible.

Curl is a nice-to-have at the moment, while we also have wget available
from before.
2020-11-03 14:04:21 +02:00
Martin Storsjö 2af44c5a56 Use -n "$()" instead of "$()" != "" 2020-11-03 14:00:45 +02:00
Martin Storsjö fcafcacc58 build-compiler-rt: Signal that sanitizers should use libc++ for the cxxabi parts
This fixes building with the latest master version of compiler-rt,
that uses the itanium cxxabi bits for resolving type info.
2020-11-03 11:16:38 +02:00
Martin Storsjö f231314da7 build-libcxx: Remove some hardcoded flags for libcxxabi
These are included properly from libcxx's __config (or __config_site)
now.
2020-10-23 13:13:02 +03:00
Martin Storsjö ea3ff51d2c build-libcxx: Configure libcxx and generate headers before building libcxxabi
This fixes building with the latest versions, where the headers
strictly need __config_site to be available.
2020-10-23 12:22:13 +03:00
Martin Storsjö 2377f1a839 test: Explicitly test linking the C++ runtime statically 2020-10-23 12:17:35 +03:00
Martin Storsjö 0e3600182d build-mingw-w64: Update to the latest master version
This version includes a few minor fixes on top of the v8.0.0 release.
2020-10-20 23:01:13 +03:00
Martin Storsjö f91258a722 build-libcxx: Explicitly enable LIBCXX_ENABLE_NEW_DELETE_DEFINITIONS
This used to be the default before, but has changed in the
latest master version of libcxx.

Previously, both libcxx and libcxxabi enabled it by default, but
we used to explicitly disable it on the libcxxabi side (and rely
on the default for libcxx). Instead explicitly set the intended
configuration state for both parts.
2020-10-20 23:01:13 +03:00
Orgad Shaneh 06883c79ad build-all: Verify that git and svn are installed 2020-10-16 15:48:46 +03:00
Orgad Shaneh a83473f6e2 build-mingw-w64: Clone on https instead of git protocol
git port is typically blocked by outbound corporate firewalls.
2020-10-16 15:16:33 +03:00
Martin Storsjö 5dd6b4a705 build-cross-tools: Update to using build-mingw-w64-tools
This was missed in 3fd3e58979.
2020-10-15 23:35:58 +03:00
Martin Storsjö 9031eb6791 Build the OpenMP runtime in docker based builds
LLVM's OpenMP implementation only supports Windows on x86, and it
requires a MASM-compatible assembler to build it. Build UASM
for this purpose, for now. (UASM isn't available packaged in
debian/ubuntu repos.) In the future, llvm-ml should be able
to handle it instead, but it's not currently mature enough.

Not including it in the regular build-all.sh for now, as UASM
isn't generally available.
2020-10-15 23:23:05 +03:00
Martin Storsjö d5d30fae23 build-llvm: If cross compiling, look for llvm-tblgen with an exe suffix
If cross compiling on MSYS, the native llvm-tblgen needs this suffix.
2020-10-15 23:20:32 +03:00
Martin Storsjö 1ca647f2c1 release: Build toolchains that target msvcrt in addition to ucrt 2020-10-13 14:27:44 +03:00
Martin Storsjö f2b389e6a7 test: Change hello-exception.cpp to print to stderr
Also flush after each printout, since not all configurations (in
particular, wine) flush stderr implicitly.

This is often useful when debugging unwinding.
2020-10-13 12:24:15 +03:00
Martin Storsjö 42297caad3 test: Add an option to hello-exception.cpp for causing crashes
This is useful for testing the debugger.
2020-10-13 12:20:25 +03:00