Commit Graph
100 Commits
Author SHA1 Message Date
Martin Storsjö 81c39dda6a Build libunwind before mingw-w64-libraries
When --unwindlib=libunwind is implicit, we need to build libunwind
to have a complete working C compiler too. Currently this is worked
around by initially creating a dummy, empty libunwind.a, but with
the current version of libcxx/libunwind, we can get rid of that
workaround if we build it as soon as possible.
2022-02-09 14:02:20 +02:00
Martin Storsjö 56d0ef7900 wrappers: Remove hacks for filtering the stdout from clang
Since df0ba47c36f6bd0865e3286853b76d37e037c2d7 in llvm-project
(November 5th 2021), clang built with mingw defaults to producing
paths with forward slashes - thus, this hack no longer is needed.
2022-02-09 14:02:20 +02:00
Martin Storsjö 73f7c4ceca build-libcxx: Stop hardcoding LIBCXX_HAS_WIN32_THREAD_API
Since a8d15a926689c126c4d316788786e0160cfc1d5d in llvm-project
(October 5th), libcxx stopped autodetecting pthreads on mingw,
making pthreads opt-in instead of opt-out.
2022-02-09 14:02:20 +02:00
Martin Storsjö 77d293e95f test: Add tests for conversions between int128 and floats
These require a newer version of LLVM, past
d6216e2cd1a5e07f8509215ee5422ff5ee358da8 in llvm-project (September
29th).
2022-02-09 14:02:20 +02:00
Martin Storsjö ee1b52812a build-mingw-w64: Update to the current version from February 9th
Among lots of other changes, this now includes import libraries for
OpenGL for arm targets, and also hooks up timespec_get for UCRT.
2022-02-09 14:02:20 +02:00
Martin Storsjö 45cc868505 build-lldb-mi: Update to the latest version as of February 9th 2022-02-09 14:02:20 +02:00
Martin Storsjö 578afb1a6d build-python: Bump to the latest version on the mingw-v3.9.7 branch
This makes the armv7 build of python work correctly.
2022-02-09 14:02:20 +02:00
Martin Storsjö 9f5b66197f build-llvm: Bump to llvmorg-14.0.0-rc1
Notable changes include:

- LLVM can be configured to prefer forward slashes on Windows, avoiding
  the need to manually filter the Clang output in a wrapper for some
  commands.
- New Clang options for silencing warnings about unused arguments,
  avoiding the need to turn off the warning altogether. This makes
  llvm-mingw produce warnings about unused arguments among the user
  provided arguments, which never were seen before.
- Improvements to building libunwind/libcxxabi/libcxx, allowing
  simplifying the build a lot.

- Fixed generated calls to support routines for converting 128 bit integers
  from/to floats on x86_64.
- Fixed the -m32 flag, to let it figure out the right i386/arm
  architecture variant (where it previously looked for a sysroot named
  e.g. i386-*, which wasn't found).
- Fixed code generation for AArch64 in large object files (over 1 MB of
  code), where relocations against temporary symbols (jump tables,
  constant pools etc) were broken.
- Fixed continuing from breakpoints and singlestepping in LLDB on
  ARM/AArch64
- Fixed unwind info for overridden weak symbols (e.g. if overriding
  operator new with a statically linked libc++, and unwinding an exception
  through the operator).
- Set proper COFF symbol types for function aliases (e.g. for some C++
  constructors), making GNU ld export all of the correctly as the right
  type, when linking a DLL.
- Improved code generation for ARM, by assuming less strict alignment
  requirements for some instructions.
2022-02-09 14:01:53 +02:00
Martin Storsjö f3b6f0fa45 test: Don't use std::chrono_literals, fix building hello-exception in C++11 mode
std::chrono_literals require C++14.

This simplifies building hello-exception on macOS, where current
Apple Clang still default to C++11.
2021-12-03 11:42:11 +02:00
Martin Storsjö e3866b9df2 test: Fix a symbol collision when building hello-exception on macOS
On macOS, the included headers end up including sys/wait.h, which
declares a different symbol "wait".
2021-12-03 11:39:31 +02:00
Martin Storsjö 6f30aabe97 build-llvm: Set more variables for cross compiling LLDB with Python
These are needed with the latest version from git main since
November 2021.
2021-11-19 13:12:03 +02:00
Martin Storsjö 9eac155de2 build-llvm: Stop setting Python3_EXECUTABLE
This is the build host python, run during the build/install,
not to be run on the target device. LLVM's build system itself
detects the python to use for that and overwrites the
Python3_EXECUTABLE variable anyway, so it's value isn't currently
used.
2021-11-19 00:59:18 +02:00
Martin Storsjö 7e7344281d build-python: Discard local changes before checking out a new revision
Even if we don't patch cpython-mingw any longer, we still run
autoreconf on it (and libffi), which can cause changes to
committed files. If trying to check out a different version of
the source, this would fail unless the local changes have been
discarded.
2021-11-16 12:37:59 +02:00
Martin Storsjö 4b34c42cbc build-libcxx: Set CMAKE_CXX_COMPILER_TARGET when building
LLVM's default host detection doesn't always work (cmake doesn't
detect and provide the target architecture, but it provides the
bitness, thus LLVM's GetHostTriple.cmake guesses on the same
architecture as running the build), thus pass it manually.

This didn't use to matter, as the tests for whether --target=<target>
works used to fail, as the toolchain isn't complete at that point.

But since 7af584ed87cc6eddb6adbc451c90fb8867469e06 in llvm-project
(November 5th 2021), the libunwind cmake tests for --target do
succeed (without noticing that linking actually will fail), and thus
can end up using the incorrectly guessed compiler target.

Thus, this fixes building the runtimes with current git main
versions of llvm-project.
2021-11-05 14:38:38 +02:00
Martin Storsjö fe57d608de test: Add tests for conversion between 64 bit integers and long double 2021-10-14 12:34:00 +03:00
Martin Storsjö 13d48841a0 build-libcxx: Stop specifying a number of build settings that are set to their defaults 2021-10-14 12:33:22 +03:00
Martin Storsjö 378525eb9b build-mingw-w64: Update to the current version from October 1st 2021-10-01 22:27:39 +03:00
Martin Storsjö 214b775065 build-lldb-mi: Update to the latest upstream version
This fixes a bunch of build warnings in some setups.
2021-10-01 22:22:53 +03:00
Martin Storsjö 0adff0df7d build-libcxx: Stop manually specifying -lunwind
Specifying -lunwind isn't needed if building a version of libcxx
after 5f9be2c3e37c0428ba56876dd84af04b8d9d8915 (Feb 2021); then
libcxx is built with -nostdlib++ which keeps automatically linking
in -lunwind if -unwindlib=libunwind is used.
2021-10-01 12:32:47 +03:00
Martin Storsjö e35ef3b7d7 Use -unwindlib=libunwind instead of merging libunwind into libc++
This makes the build of libcxx a bit cleaner, and simplifies later
building and testing of libcxx.
2021-10-01 12:31:51 +03:00
Martin Storsjö e40ff6ab49 build-llvm: Bump to llvmorg-13.0.0
In addition to the changes in 13.0.0 RC1 (listed in
9188cce153), the following changes
relevant to llvm-mingw were made:

- Allow specifying language to llvm-rc with an 0x prefix
- Let the last specified option of -mconsole/-mwindows take effect
- Support both "--opt value" and "--opt=value" for more options in lld
- Add support for the --disable-dynamicbase option spelling in lld,
  in addition to the old existing --no-dynamicbase
- Fix linking with when enabling profiling
2021-10-01 12:25:25 +03:00
Martin Storsjö 42d2eb7346 wrappers: Remove the dlltool wrapper
Since LLVM 13, llvm-dlltool can imply the target architecture from
a triple prefix on the tool name, so there's no more need for a
wrapper.

The *-dlltool tools are now symlinks to the main llvm-dlltool
executable. In the Windows distribution, the *-dlltool.exe used to be
copies of dlltool-wrapper.exe (which is small; 15 KB). Now they
will instead be copies of llvm-dlltool.exe. Luckily, thanks to
building with -DLLVM_LINK_LLVM_DYLIB=ON by default, llvm-dlltool.exe
is only a mere 65 KB, while it used to be much larger, e.g. around
11 MB in older releases.
2021-09-17 11:09:35 +03:00
Martin Storsjö 671c408b9b readme: Mention that asan doesn't work properly with msvcrt
This was concluded in https://github.com/mstorsjo/llvm-mingw/issues/224.
2021-08-27 11:03:12 +03:00
Martin Storsjö 69d3d40f00 build-python: Fix rebuilding with an already checked out directory
After applying patches (with plain 'patch' instead of 'git am'), we
need to reset the tree to be able to check out the targeted version
again.
2021-08-17 11:13:45 +03:00
Martin Storsjö b0864ea9ae strip-llvm: Remove import libraries for liblldb/libLLVM/libclang-cpp
The import libraries for libLLVM/libclang-cpp are rather large
(21 and 15 MB each), while it hasn't been too much of an issue
with liblldb.dll.a (which was 600 KB).
2021-08-16 14:00:04 +03:00
Martin Storsjö d8ab02f1dd release: Include python in the cross built toolchains 2021-08-16 12:29:52 +03:00
Martin Storsjö 6769ecda7b Dockerfile.cross: Add an option for building python 2021-08-16 12:29:52 +03:00
Martin Storsjö 177cd0d33d Include the llvm-readelf tool 2021-08-16 11:26:37 +03:00
Martin Storsjö eaf5ac08e5 Build lldb-mi
Building this tool requires having a full LLVM build available;
either by installing without LLVM_INSTALL_TOOLCHAIN_ONLY (and not
stripping the llvm installation yet) or by pointing it at the
LLVM build directory instead. The latter works better for our
normal build flows.
2021-08-16 11:26:37 +03:00
Martin Storsjö 169455ed6b build-libcxx: Stop setting LIBCXXABI_TARGET_TRIPLE
It doesn't seem to be strictly necessary right now, in the current
configuration.
2021-08-11 11:19:17 +03:00
Martin Storsjö 8915db817c wrappers: Remove windres-wrapper; llvm-windres is available since LLVM 13.0.0 2021-08-09 12:08:16 +03:00
Martin Storsjö ea46c8d98f build-openmp.sh: Use llvm-ml instead of uasm 2021-08-09 12:08:16 +03:00
Martin Storsjö 63a5d3c09f build-llvm: Include the llvm-ml tool 2021-08-09 12:08:16 +03:00
Martin Storsjö b7c5fc5ef0 test: Add tests for _bittest* intrinsics 2021-08-09 12:08:16 +03:00
Martin Storsjö 5070c39532 test: Add testing of more float formatting cases, including %a 2021-08-09 12:08:16 +03:00
Martin Storsjö 50fb2ef45d test: Add tests for printf formatting of %+u (and %+<n>[doux]) 2021-08-09 12:08:16 +03:00
Martin Storsjö cf18e2de01 test: Add tests for strtod/strtof/strtold/wcstod/wcstof/wcstold 2021-08-09 12:08:16 +03:00
Martin Storsjö ea4f925038 test: Add a test for printf formatting of long doubles 2021-08-09 12:08:16 +03:00
Martin Storsjö 86630da230 build-compiler-rt: Stop creating an i386-w64-mingw32 sysroot symlink
This shouldn't be needed any longer since
8bd2722f65cfd7883ed9769f7bad3ff50e4c6905 in llvm-project (March 2021).
2021-08-09 12:08:16 +03:00
Martin Storsjö 13e065bf1a build-libcxx: Don't manually install libunwind.dll
libunwind installs the built DLL since
39ad160468e2b6acaa0b2b1ab353079eca4a3b03 (March 2021).
2021-08-09 12:08:16 +03:00
Martin Storsjö 056cb22fb5 build-compiler-rt: Stop setting CMAKE_*_COMPILER_WORKS
Since 8368e4d54c459fe173d76277f17c632478e91add in llvm-project (pushed
on March 11 2021), the lib/builtins CMakeLists.txt sets
CMAKE_TRY_COMPILE_TARGET_TYPE to STATIC_LIBRARY, which makes the
compiler tests pass before the toolchain is fully functional, by not
doing linking tests.
2021-08-09 12:08:16 +03:00
Martin Storsjö 98583d7bd9 build-compiler-rt: Do a plain "ninja install" instead of manually copying files
This still requires manually moving the dll files to the arch specific
runtime directory.

This requires building a version of llvm past
8e11bede3a6ac11ebcc05c82fac39899feaf9534 (March 18th 2021)
2021-08-09 12:08:16 +03:00
Martin Storsjö eda9036b6a build-mingw-w64.sh: Bump to the current version from August 8th 2021-08-09 12:08:16 +03:00
Martin Storsjö 9188cce153 build-llvm.sh: Bump to llvmorg-13.0.0-rc1
Notable changes since 12.0.0 for llvm-mingw are:

llvm:
- Produce proper cross-section relative relocations on ARM and AArch64
- Fixed the calling convention for AArch64 for variadic functions involving
  floats in the fixed arguments
- Added a windres compatible frontend in llvm-rc, avoiding the need for
  external wrappers
- Build LLVM with -ffunction-sections and --gc-sections, shrinking
  a full build of llvm-mingw without LLVM_BUILD_LLVM_DYLIB by 22%
  (but llvm-mingw uses LLVM_BUILD_LLVM_DYLIB these days, which shrinks
  the build even more)
- Avoid optimizing/changing function calls into stpcpy due to optimizations
- llvm-ml has improved to the point where it can build the OpenMP assembly
  file without needing to use another assembler tool

lld:
- Support linking directly against DLLs without using import libraries
- Improved reliability when running on Windows, avoiding some hangs
  when terminating
- Fixed linking with --export-all-symbols in combination with
  -ffunction-sections
- Fixed --export-all-symbols when linking EXEs
- Fixed autoexport from LTO objects with comdat symbols
- Print warnings with a "ld.lld" prefix instead of "lld-link"
- Avoid thread exhaustion on 32 bit Windows
- Accepting more forms of options, like -static and --stack=

clang:
- Fixed reading long doubles with va_arg on x86_64
- Fixed calling std::once in a dynamically linked libstdc++

runtimes:
- Complete support for std::filesystem in libc++ (which was previously
  backported to 12.0.0 in llvm-mingw too, but the previous release had
  a bug in using e.g. the u8path() method when linking against the DLL
  version of libc++)
- Implemented semaphores in libc++
- Provide the __gcc_personality_seh0 symbol, fixing building C code with
  -fexceptions and __attribute__((cleanup))
- Simplified building/installing compiler-rt and libunwind
- Silenced lots of build warnings in OpenMP
2021-08-09 12:08:13 +03:00
Martin Storsjö 1f5a7e0577 test: Remove a workaround for older wine versions
I've updated my continuous test setup to a newer version of wine now,
not needing this workaround.
2021-08-03 11:36:12 +03:00
Martin Storsjö 277b8c4c27 Dockerfile: Upgrade the version of git bundled in the docker image
This fixes the root cause for PR #210, differently.
2021-07-05 23:46:29 +03:00
Martin Storsjö c9fec3ee8f Dockerfile: Add a comment about the manually installed CMake 2021-07-05 23:46:23 +03:00
Martin Storsjö 46efff459a build-llvm: Build with a shared libLLVM and libclang-cpp
This reduces the size of e.g. the zipped toolchain for Windows
from 183 MB to 85 MB.
2021-07-01 23:33:28 +03:00
Martin Storsjö e2ad2d4b64 run-tests: Don't assume running on x86
Also use $COPY_X86 for consistency.
2021-07-01 22:36:54 +03:00
Martin Storsjö 1629861108 run-tests: Move a comment closer to the line it refers to 2021-07-01 22:36:54 +03:00
Martin Storsjö bd9c8df3b8 build-libcxx: Don't manually install libc++.dll
libcxx installs the built DLL since
97d6fcce4ec6765c0e77db29c87e8083137c443d in llvm-project (July 2019)
when doing "ninja install".
2021-06-16 14:29:27 +03:00
Martin Storsjö 4951f6f682 build-libcxx: Stop setting -Wno-dll-attribute-no-redeclaration when building libunwind
This is set by libunwind itself since
df6d2e8ab1a4212284e4763724a2211df2c7394a in llvm-project.
2021-06-16 14:15:37 +03:00
Martin Storsjö 14098d92bc build-libcxx: Remove some unused cmake defines
These don't seem to be necessary in practice at the moment.

If building on top of a stripped llvm install, while there's an
older version of llvm (providing llvm-config) installed system
wide, we currently still manage to build things correctly.

(If llvm-config from LLVM 6.0 is available, build-compiler-rt.sh
fails though, but that's unaffected by this change. In current
git versions of compiler-rt, it first and foremost looks inside
the monorepo checkout instead of looking for a potentially
unrelated llvm-config binary.)
2021-06-16 14:04:45 +03:00
Martin Storsjö 59121bc4a0 build-libcxx: Don't manually undefine _LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS
Instead set the cmake defines that indicate that libcxx is going
to be linked dynamically and going to link in libcxxabi statically,
so that libcxxabi is built statically but with dllexport attributes.
2021-06-16 12:08:54 +03:00
Martin Storsjö 1843f12515 build-libcxx: Stop setting one unnecessary visibility define
Since libcxx includes libcxxabi with
_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS defined, the libcxxabi
declarations contain neither dllimport nor dllexport.

Earlier, we didn't use to include the libcxxabi headers with
_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS defined, but defining
_LIBCXXABI_BUILDING_LIBRARY instead. This caused libcxxabi
declarations to be marked dllexport. If any such functions would
end up emitted as part of the libcxx object files, this would
have been necessary to get them properly exported.

In practice libcxxabi functions aren't generated while included
in libcxx (they aren't templates and/or header inline functions),
_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS gets defined by the cmake
files, so we don't need to set this at all any longer.
2021-06-16 12:05:58 +03:00
Martin Storsjö b37483cec5 build-libcxx: Stop manually defining _LIBCPP_BUILDING_LIBRARY
Since before the LLVM 12.x branch, these aren't necessary any
longer.

(9c30bafd59bf1078bbe1c235c7c25bf7e278e2e9 and
8a73aa8c4c3ee82e7d650c6a957937713a4a9ab4 in llvm-project)

Since 9c30bafd59bf1078bbe1c235c7c25bf7e278e2e9 in llvm-project,
libcxxabi unconditionally defines _LIBCPP_BUILDING_LIBRARY while
building.

Since 8a73aa8c4c3ee82e7d650c6a957937713a4a9ab4 in llvm-project,
libcxx defines _LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS if
LIBCXX_ENABLE_STATIC_ABI_LIBRARY is set.
2021-06-16 11:59:02 +03:00
Martin Storsjö 459e37f03f wrappers: Convert dlltool-wrapper to a native executable
This allows running it on windows from processes other than msys
based ones.
2021-06-14 11:44:06 +03:00
Martin Storsjö 657d12c8a5 Backport another libc++ patch for std::filesystem (and locale) usage
This fixes linking against a DLL of libc++ while using the common headers
(generated from the static version of the library, but which work for
both shared and static versions) when calling e.g. std::filesystem::u8path.
2021-05-25 23:55:32 +03:00
Martin Storsjö 168cc5f53d build-mingw-w64-tools: Build and install gendef too 2021-05-04 12:12:16 +03:00
Martin Storsjö 84462c92b0 test: Add options -noop and -wait to the hello-exception test program
This allows easier testing of continuing from manually set
breakpoints.

Also fix compilation for non-windows platforms where __debugbreak()
isn't defined.
2021-05-03 13:08:44 +03:00
Martin Storsjö fc1b1ba110 install-wrappers: Use llvm-windres if available
If the llvm-windres tool is available, use that instead of our own
wrapper that calls clang, llvm-rc and llvm-cvtres separately.
2021-04-26 22:22:31 +03:00
Martin Storsjö 37936ec0ea build-llvm: Install llvm-windres if available
The current llvm main branch contains the tool llvm-windres; make
sure to install and include it, if it exists.
2021-04-26 22:21:42 +03:00
Martin Storsjö 173ac732e9 readme: Rewrite the section on installing prebuilt toolchains
Explain what the different download options are, and prioritize the
downloadable toolchain packages over docker images.
2021-04-23 14:43:46 +03:00
Martin Storsjö 133c93aee4 Dockerfile.cross: Include the tag and architecture in the directory name within the zip 2021-04-23 10:58:42 +03:00
Martin Storsjö f066446b06 build-mingw-w64: Switch to another github mirror
This one seems to (currently) be a bit more up to date.
2021-04-23 10:58:42 +03:00
Martin Storsjö 3a9264f1fd build-mingw-w64: Build to the latest version from today 2021-04-23 10:58:42 +03:00
Martin Storsjö 7730c71209 release: Append the architecture to the cross compiler package 2021-04-23 10:58:42 +03:00
Martin Storsjö 869b038152 release: Add an option for only building a native toolchain 2021-04-23 10:58:42 +03:00
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
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
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
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
Martin Storsjö 22ef268489 build-libssp: Allow downloading with either wget or curl 2020-11-11 12:51:27 +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