Commit Graph
1392 Commits
Author SHA1 Message Date
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
Martin Storsjö 8a60836d87 test: Remove unnecessary bits of hello-exception.cpp
These bits are tested by hello-cpp.cpp.
2020-10-13 12:19:46 +03:00
Martin Storsjö 06cf71558e build-llvm: Update to the 11.0.0 release of llvm
Notable changes since LLVM 10.0.0:

- Enable -mms-bitfields by default (like GCC), don't produce errors
  if the -mms-bitfields option is used together with non-trivial C++
  classes
- Support for more linker flags in LLD (--disable-auto-import,
  --disable-runtime-pseudo-reloc, --file-alignment, --section-alignment),
  and fixed the handling of the --no-seh flag
- Clearly error out on unsupported relocation types in aarch64 assembly
- Proper support for __attribute__((weak))
- Minor improvements to details in llvm-rc
- Fixed a regression in LLD about exporting symbols containing periods ('.')
  with a def file
2020-10-12 14:21:41 +03:00
Martin Storsjö 6ae2bfa3ad crt-test: Add a testcase for a case where a broken optimization in LLVM broke the compiler builtin division helpers
https://reviews.llvm.org/D88783 caused this to break.
2020-10-12 14:20:49 +03:00
Martin Storsjö 4e039a622f Remove old leftover entries from .dockerignore/.gitignore 2020-10-12 00:54:48 +03:00
Martin Storsjö bf40eb86fc strip-llvm: Simplify stripping out the executable suffix 2020-10-09 20:51:11 +03:00
Martin Storsjö 5fc9728420 strip-llvm: Fix name mangling of tools that contain $EXEEXT
This makes sure that llvm-exegesis is handled correctly (i.e.
stripped out) if build-llvm.sh was invoked with --full-llvm when
building for windows.
2020-10-09 15:55:58 +03:00
Martin Storsjö 66eb0af305 strip-llvm: Remove include/lldb if stripping a full install
If llvm is built with build-llvm.sh --full-llvm, we need to remove
this directory to end up with the same set of installed files as if
without --full-llvm, after stripping the install.
2020-10-09 12:37:37 +03:00
Martin Storsjö ccff9e4106 test: Update the conditions for skipping global-terminate.cpp on aarch64
Our pinned version of mingw-w64 is new enough already, and
latest wine has implemented __C_specific_handler for aarch64,
so this makes the test be bypassed with current pinned clang (10.0.0)
and the soon to be released clang 11.0.0, but is executed with
clang 12.0.0 (where current versions has got this implemented properly).
2020-09-28 15:11:10 +03:00
Martin Storsjö 4176511d24 build-mingw-w64: Update to the v8.0.0 release of mingw-w64 2020-09-22 11:45:25 +03:00
Martin Storsjö c82a6f2340 test: Add a testcase for the global termminate handler 2020-09-16 00:07:46 +03:00
Martin Storsjö fd763f4a43 build-mingw-w64-tools: Add widl symlinks with the mingw32uwp name 2020-09-16 00:04:13 +03:00
Martin Storsjö c9ae57f3d0 build-mingw-w64-tools: Only install an unprefixed widl if the native arch is one of the target archs 2020-09-16 00:04:18 +03:00