Commit Graph
595 Commits
Author SHA1 Message Date
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
Martin Storsjö 00c95e73ef build-mingw-w64-tools: Add some comments 2020-09-16 00:04:13 +03:00
Martin Storsjö d067b4909b build-mingw-w64-tools: Only build one single widl binary 2020-09-16 00:03:57 +03:00
Martin Storsjö 5c83b904bd build-mingw-w64-tools: Pick the first arch as the one to target, instead of hardcoding x86_64 2020-09-16 00:03:57 +03:00
Martin Storsjö 3fd3e58979 build-mingw-w64: Split out building tools to a separate script
This simplifies build-mingw-w64.sh. When building on native
windows (where we also provide unprefixed tools, we can't have
the yet incomplete compiler toolchain in $PATH when building
the mingw-w64 tools. (Logically, build-mingw-w64-tools belong
with build-llvm and install-wrappers; using the original system
compiler to build tools that are supposed to run on the current
machine, as opposed to the cross target, like when building the
runtimes.)
2020-09-16 00:03:57 +03:00
Martin Storsjö 57b7ffd84d build-mingw-w64: Add a CHECKOUT_ONLY codepath 2020-09-16 00:03:57 +03:00
Martin Storsjö 308f7227c5 test: Add an idl testcase 2020-09-16 00:03:57 +03:00
Martin Storsjö 63add77368 run-tests: Run exception tests on wine on aarch64 as well
Current git versions of wine can handle the exception unwinding
properly.
2020-09-16 00:03:57 +03:00
Martin Storsjö e9708b38a6 install-wrappers: Install <triple>-as as a symlink to clang 2020-08-24 15:34:26 +03:00
Martin Storsjö 41f4f3fac6 wrappers: Filter backslashes into forward slashes for --print-search-dirs similarly to -v 2020-08-20 13:29:44 +03:00
Martin Storsjö ab4220fd2a wrappers: Remove a misplaced, unnecessary pair of braces 2020-08-20 12:56:39 +03:00
Martin Storsjö d7e5858a60 wrappers: Fix the output filtering for clang -v
This makes the code actually do what was intended, for cases with
multiple consecutive backslashes, each escaped to double backslashes.
2020-08-20 12:51:40 +03:00
Martin Storsjö 0fc16eb24d build-libcxx: Set LLVM_PATH when building libcxx
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.
2020-07-02 00:01:30 +03:00
Martin Storsjö 8b7d3bab1c build-libcxx: Remove a leftover variable
It became unused in 7c891a036.
2020-06-27 10:03:07 +03:00
Martin Storsjö 30f252f157 windres-wrapper: Add support for the language option
llvm-rc got support for this option on Jun 23rd [1], so the currently
pinned version of llvm-project doesn't support it - but earlier
versions just silently ignore the option, so it should be safe
to include in the wrapper now already.

[1] https://github.com/llvm/llvm-project/commit/f36f8b41beb9cc0353d5624934406d39b78753e0
2020-06-23 13:29:53 +03:00
Martin Storsjö e934c04ef4 run-tests: Execute the uwp test executables now that they don't rely on vcruntime140_app 2020-06-16 11:32:17 +03:00
Martin Storsjö 68b9eb60fa wrappers: Use -lucrtapp instead of -lvcruntime140_app
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.
2020-06-16 11:32:17 +03:00
Martin Storsjö da9b3b472b build-mingw-w64: Update to the latest version from git
This version includes libucrtapp.a, which doesn't require linking to
vcruntime140_app for avoiding api-ms-win-crt-private-*.dll.
2020-06-12 13:41:18 +03:00
Steve Lhomme 26e56ed5f6 Update the mingw32uwp wrapper libraries
- windowsapp is the preferred library when targeting Windows 10
https://docs.microsoft.com/en-us/uwp/win32-and-com/win32-apis

- _UCRT ensures we use the Universal C runtime
2020-06-04 00:19:33 +03:00
Steve Lhomme e34de8eb21 use a more recent mingw version
With much cleaner UWP support.
2020-06-03 12:36:33 +03:00
Steve Lhomme 289bc6027a switch the libssp SVN repository to the official link
The repository may have been unavailable when
ad3d710c9a was done.

Effectively reverts ad3d710c9a.
2020-05-10 11:38:28 +03:00
Mateusz Mikuła 6ee98bd0ea Update MSYS2 instructions
`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.
2020-04-14 13:25:15 +03:00
Martin Storsjö d8aefd7b1a build-llvm: Fix a typo in the flags for disabling external libs
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.
2020-03-27 13:29:25 +02:00
Martin Storsjö 8e461131cf Clean the build dirs before building, if the env var CLEAN is set 2020-03-25 23:24:31 +02:00
Martin Storsjö 36fc0f6432 build-compiler-rt, build-libcxx: Use ninja for building, if available 2020-03-25 00:29:07 +02:00
Martin Storsjö 92f5caa918 build-compiler-rt: Move CMake generator selection further out in the script 2020-03-25 00:29:07 +02:00
Martin Storsjö b89cdef107 build-llvm: Generalize the build command 2020-03-25 00:29:07 +02:00
Martin Storsjö 13e441d60e build-llvm: Only pass -j to ninja if CORES was set originally
If CORES was unset, let ninja pick the core count (which normally
is set higher than the number of cores).
2020-03-25 00:29:07 +02:00
Martin Storsjö ca303864ba Dockerfile.cross: Download a newer version of cmake than what the base distribution has
When building lldb for windows with the llvm 10.0.0 version,
cmake 3.13 is required. (Ubuntu 18.04 comes with cmake 3.10.2.)
2020-03-25 00:24:26 +02:00
Martin Storsjö 2c1a4645d9 Update the base distro used for dockerfiles and linux releases to Ubuntu 18.04
There's probably not much need for binaries based on 16.04 any longer.
2020-03-25 00:24:26 +02:00
Martin Storsjö 91c1339222 Only use the newer form for disabling LLDB's external dependencies
Also pass the new form properly when cross compiling LLDB.
2020-03-25 00:19:49 +02:00
Martin Storsjö efec56e495 build-mingw-w64: Update to the latest master 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
2020-03-24 23:15:10 +02:00
Martin Storsjö 68280abd1a build-llvm: Update to the 10.0.0 release of llvm
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
2020-03-24 23:07:21 +02:00
Martin Storsjö 353af4ba24 readme: Add a note about incompatibility with object files and static libraries from other toolchains 2020-03-14 13:51:30 +02:00
Martin Storsjö 8507ee6023 windres-wrapper: Do the format name comparisons case insensitively 2020-03-14 12:58:18 +02:00
Martin Storsjö 96b149eb72 native-wrapper: Make static functions inline, to avoid warnings if unused 2020-03-14 12:58:18 +02:00
Martin Storsjö c994e9cb92 build-mingw-w64: Update to the latest version
This fixes a regression in the previously pinned version, where
the asprintf function produced undefined references when using UCRT.
2020-03-09 22:52:58 +02:00
Martin Storsjö ad3d710c9a build-libssp: Fetch the libssp source from gcc's github mirror
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.
2020-03-09 11:25:37 +02:00
Martin Storsjö 3110e27f64 run-tests: Transfer all tested files in one go
This should speed up testing a bit, especially if $COPY has a long
startup overhead.
2020-03-05 16:00:06 +02:00
Martin Storsjö 20d3b32b30 run-tests: Silence errors from trying to build uwp-error which intentionally should fail in certain configurations 2020-03-05 15:39:30 +02:00
Martin Storsjö 551b046498 run-tests: Don't build all tests for mingw32uwp, restrict it to the specific uwp-error test
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.
2020-03-05 15:39:30 +02:00
Martin Storsjö 6b9b4ef1e3 Add a LICENSE.txt file explaining the licensing of the build files and of the built toolchain 2020-03-05 11:32:08 +02:00
Martin Storsjö 93d8fb4a8b build-llvm: Install the LLVM license 2020-03-05 11:31:31 +02:00
Martin Storsjö c1882530c3 Add copyright and license headers to all shell script files, for clarity 2020-03-05 11:31:31 +02:00
Martin Storsjö b1e19e7ebb wrappers: Relicense windres-wrapper.c from Unlicense to ISC
This is done with permission from Josh de Kock, see
https://github.com/mstorsjo/llvm-mingw/pull/4 for discussion.
2020-03-05 11:31:31 +02:00
Martin Storsjö 4f16aa8277 build-mingw-w64: Update to the latest version
This contains a minor assortment of fixes, but also fixes building
widl on BSD.
2020-03-05 11:31:20 +02:00
Martin Storsjö f4272deea5 test: Avoid a warning about a cast to a smaller integer type on 64 bit architectures 2020-03-04 14:01:26 +02:00
russellhaley 5fe2e05419 FreeBSD support
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.
2020-03-04 09:52:22 +02:00