Martin Storsjö
f09fc9d618
Add a script for packaging a release
2018-10-17 23:19:43 +03:00
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