Commit Graph
546 Commits
Author SHA1 Message Date
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
Martin Storsjö 8bfc9a18c6 Error out early if trying to compile ada
If we try to do that, clang would end up calling <triplet>-gcc with the
same arguments. In our setup, this recursively ends up calling clang again,
ending up with infinite recursion.
2018-10-10 23:33:19 +03:00
Martin Storsjö 7bca89b53f Adjust clang-target-wrapper.c to closer match the new windres wrapper 2018-10-10 23:33:19 +03:00
Martin Storsjö b611bc1904 Convert the windres wrapper from shell script to C
This allow running windres on windows without a surrounding posix shell.
2018-10-10 23:33:19 +03:00
Martin Storsjö 9069c627a9 Install unprefixed tools when cross compiling the toolchain 2018-10-10 23:33:19 +03:00
Martin Storsjö b5deb9fc1f Set a default target in wrapper scripts and executables 2018-10-10 23:33:19 +03:00
Martin Storsjö 1bc3d75a41 For cross-built toolchains, rename the clang executable to clang-$MAJOR.exe 2018-10-10 23:33:19 +03:00
Martin Storsjö fb26be33a1 Correct the escaping of arguments passed through on windows 2018-10-10 23:33:18 +03:00
Martin Storsjö b9543f23b9 Mention the lack of llvm-objcopy for COFF as a known issue in the readme 2018-10-09 11:40:26 +03:00
Martin Storsjö 2a3cdc9115 Update the description of the project's status
The level of maturity is generally quite a bit higher now than when
this initially was written.
2018-10-09 11:40:03 +03:00
Martin Storsjö a914746ab2 Remove the mention of other similar projects
The mentioned differences aren't quite as pronounced any longer.
2018-10-09 11:35:16 +03:00
Martin Storsjö 945845fba2 Make a helper function static in clang-target-wrapper.c 2018-10-08 14:15:25 +03:00
Martin Storsjö 818766d3d4 Use posix shell variable expansion substitution instead of subshells with sed 2018-10-08 14:13:42 +03:00
Martin Storsjö 0ec597b1bb Remove inconsistently used braces
Using braces here is fine in itself, but we write most similar cases
without braces, so change it for consistency.
2018-10-08 14:12:55 +03:00
Martin Storsjö 89c91ecaae windres: Print help and version texts to stdout
meson checks the output from --version, and expects to see it on stdout.
2018-10-08 14:12:55 +03:00
Martin Storsjö b1b6c0ba6f windres: Minor cleanups
Make indentation consistent, define a variable used in printing errors,
remove an unused helper function.
2018-10-08 14:12:54 +03:00
Martin Storsjö 03b99b5144 Do one in-bounds write in clean runs of stacksmash.c 2018-10-07 21:00:30 +03:00
Martin Storsjö 461f889187 Update llvm/clang/lld to the latest version
This avoids warnings about both main and wmain being present when linking,
warnings that appeared in the previous update.
2018-10-06 07:44:33 +03:00
Martin Storsjö 99b6407196 Quote arguments in clang-target-wrapper.c
We quote each passed through argument, and escape quote chars in them.

For cases when the passed through argument ends with a backslash, this
fails though, since whatever is unescaping it doesn't seem to handle
double backslashes for escaping backslashes themselves.
2018-10-05 12:46:11 +03:00
Martin Storsjö 22b5681765 Add $EXEEXT as suffix for the ar/ranlib/nm/strings symlinks 2018-10-05 12:46:10 +03:00
Martin Storsjö 10210478ee Update llvm/clang/lld to the latest version
This fixes cases where llvm built without assertions can hang when
assembling a file that references _GLOBAL_OFFSET_TABLE_ for windows
(which is unsupported; previously this used llvm_unreachable making
it undefined what happens if that really is hit).
2018-10-05 09:07:41 +03:00
Martin Storsjö a62ee10c2d Build clang-target-wrapper.c with -municode for windows 2018-10-03 23:06:22 +03:00
Martin Storsjö ad47efba70 Implement clang-target-wrapper as an executable for windows
This allows non-msys build systems to use the triplet prefixed
compiler frontends on windows.

Keep the old shell script version as well, for easier hackability
on unix platforms.
2018-10-03 22:48:36 +03:00
Martin Storsjö 9f3a4a25f2 Support wrappers named <triplet>-c++ in clang-target-wrapper.sh as well
We currently don't install any such wrapper, but one might want to.
2018-10-02 23:38:19 +03:00
Martin Storsjö fb5c95589c Restructure clang-target-wrapper.sh to set one flag per line 2018-10-02 23:38:19 +03:00
Martin Storsjö 7f98eea889 Mention prebuilt docker images from Docker Hub 2018-10-02 21:34:54 +03:00
Martin Storsjö 9db7f21bcb Make windres --version output the string "GNU windres"
meson might start looking for this string soon, for identifying
the kind of resource compiler.
2018-10-02 21:34:54 +03:00
Martin Storsjö 773c0299c5 Add scripts for crosscompiling the toolchain using an already built native toolchain 2018-10-02 21:34:54 +03:00
Martin Storsjö 8f15532652 Clean up more for windows builds in strip-llvm.sh
On windows, symlinks might be changed into regular copies, so we keep
as few extra symlinks as possible.
2018-10-02 21:34:54 +03:00
Martin Storsjö 47392c5a90 Don't expect that all files exist in strip-llvm.sh
If run multiple times, this removal would try to remove a file named
clang-*, which doesn't exist.
2018-10-02 21:34:54 +03:00
Martin Storsjö 391c93d0d4 Allow strip-llvm.sh to run on files with a potential $EXEEXT suffix 2018-10-02 21:34:54 +03:00
Martin Storsjö 49103cf127 Strip the built widl by passing -Wl,-s to the linker, instead of INSTALL="install -s"
When stripping via "install -s", install invokes the system's
strip tool, which might not support the cross target that we are
building for. This could also be handled by passing
--strip-program=<arch>-w64-mingw32-strip to install though.
2018-10-02 21:34:54 +03:00
Martin Storsjö fb4862b0d6 Split out building widl to a separate shell script
When cross compiling a llvm-mingw toolchain, we need to build widl
for the intended host environment as well.
2018-10-02 21:34:54 +03:00
Martin Storsjö 0c24f99adb Allow setting CC or HOST for install-wrappers.sh
Also allow setting EXEEXT for the executable suffix.
2018-10-02 21:34:54 +03:00
Martin Storsjö bf2ede1537 Add support for crosscompiling llvm 2018-10-02 21:34:54 +03:00
Martin Storsjö 81864b3883 Disable asserts in llvm by default
This gives a 25% speedup. As long as the llvm version has been
reasonably tested, this should hopefully be safe.
2018-10-02 21:34:54 +03:00
Martin Storsjö 784c15f9b9 Allow passing --enable-shared/static to build-libcxx.sh
These are the default already, but by allowing them as options, it becomes
easier to potentially change the default behaviour.
2018-10-02 21:34:54 +03:00