Commit Graph
518 Commits
Author SHA1 Message Date
Martin Storsjö 3d13aefc70 Bump the default _WIN32_WINNT to 0x0601, i.e. Windows 7
Since the C++ libraries require Windows 7, there's little point in
keeping the default target for C at Vista.
2019-11-26 12:16:38 +02:00
Martin Storsjö ce7d3ec874 windres-wrapper: Short options joined with the option value doesn't use an equals character
This makes options like "-iinput.rc -ooutput.o" work properly.
2019-11-21 08:10:52 +02:00
Martin Storsjö f1168d3016 Don't rely on EXEEXT as an env variable, infer it from --host instead 2019-11-13 12:59:53 +02:00
Martin Storsjö 577400a5f7 Pass $HOST to individual script with a --host parameter
This avoids ambiguity on distributions (such as openSUSE) where the
HOST environment variable already is set, to the hostname.
2019-11-13 12:55:39 +02:00
Martin Storsjö b5ae2b5cc7 Allow overriding the default crt in dockerfiles with --build-arg DEFAULT_CRT=msvcrt 2019-11-13 12:39:30 +02:00
Martin Storsjö dcf34a9a35 readme: The minimum Windows version that libc++ runs on is Windows 7
It uses TryAcquireSRWLockExclusive which didn't exist until Windows 7,
unlike the rest of the SRWLock APIs that appeared in Vista.
2019-10-28 13:49:24 +02:00
Martin Storsjö 255286eb72 build-llvm: Fix only checking out the source
This is used if calling build-compiler-rt.sh or build-libcxx.sh with
the environment variable SYNC set.
2019-10-23 13:21:56 +00:00
Martin Storsjö c7821ce27d build-llvm, strip-llvm: Include llvm-symbolizer
This is necessary for getting addr2line included.
2019-10-23 13:21:56 +00:00
Martin Storsjö 9f8e5cebd6 windres-wrapper: Implement the -F/--target flag like GNU windres
The values passed to this parameter aren't arch/vendor/os triples, but
bfd target names.
2019-10-08 09:24:50 +03:00
Martin Storsjö 2d1aeef4ac build-mingw-w64-libraries: Add an explicit --libdir parameter
On some distributions, e.g. openSUSE, the libraries for 64 bit
architectures end up stored in <target>/<triplet>/lib64 instead of
plain "lib".

(This is caused by their use of a site script for configure, which
overrides libdir when the host triplet matches 64 bit architecture
names - even if it's a triple for cross compilation for a totally
different OS. This only affects the libraries and not mingw-w64-crt,
as the crt's makefiles manually set the output directory name.)

This fixes https://github.com/mstorsjo/llvm-mingw/issues/51.
2019-09-26 16:25:08 +03:00
Martin Storsjö ef9af0d3ad build-llvm: Update to the 9.0.0 release 2019-09-20 11:27:27 +03:00
Martin Storsjö c2f25a93ad build-llvm: Remove a redundant -b parameter to git clone 2019-09-20 11:27:27 +03:00
Martin Storsjö ecb0824234 build-mingw-w64: Update the mingw-w64 version
This version contains fixes for wchar printf functions in how they
handle %s/%S formats.

This isn't the absolute latest version, as there's other commits further
ahead adding support for _FORTIFY_SOURCE (which has little to no effect
with Clang as it doesn't evaluate __builtin_object_size in inlined
contexts), and the commits for _FORTIFY_SOURCE caused a few regressions,
and things might still be a bit in flux (even though the current master
seems to work fine).
2019-09-20 11:27:27 +03:00
Martin Storsjö cb38ada41c Add llvm-project to the .dockerignore file 2019-09-20 11:27:27 +03:00
Martin Storsjö 3024fbc50f build-llvm: Set LLVM_HOST_TRIPLE when cross compiling
This makes the bare executables know what their default triple
is.
2019-09-17 13:59:59 +03:00
Martin Storsjö d31dc46137 build-llvm: Use symlinks in the llvm/tools directory instead of LLVM_ENABLE_PROJECTS
This makes cmake use relative paths to all source files, allowing ccache
to reuse compilation results from different source trees in different
directories.

Keep using LLVM_ENABLE_PROJECTS on msys, where symlinks aren't supported.
2019-09-12 14:32:14 +03:00
Martin Storsjö 0f9d9f1986 Check out llvm sources using the new llvm git monorepo
This updates compiler-rt, libunwind, libcxxabi and libcxx to a newer
version, matching the compiler.

This will be the official, canonical repo in the future.

For the non-dev Dockerfile build, this means that all the llvm based
subprojects need to be built in one RUN to avoid storing the llvm
checkout in the docker layers.
2019-09-12 13:14:19 +03:00
Martin Storsjö 51da9d154c readme: Fix a typo and clarify a sentence 2019-08-28 13:25:56 +03:00
Martin Storsjö cf76ac237b readme: Clarify the known issue with libtool and linker script 2019-08-14 12:45:41 +03:00
Martin Storsjö 7d904d0df8 readme: Mention the common error when the compiler_rt builtins have been omitted by libtool 2019-08-13 12:55:59 +03:00
Martin Storsjö d4a27dfd80 Stop manually setting CC/AR/RANLIB when building autotools projects
Since we have triplet prefixed wrappers for all tools, and wrappers
named <triplet>-gcc/g++ as well, we don't need to manually provide
them.
2019-08-13 12:51:42 +03:00
Martin Storsjö 6f93f0d618 readme: Include some more known issues wrt lld, linker script and libtool 2019-08-12 13:14:27 +03:00
Martin Storsjö 293f2af9e7 readme: Add more subheadings 2019-08-12 12:55:14 +03:00
Martin Storsjö 89e0891d8f readme: Remove the note about only being tested on macos and linux
It has recently been tested on msys2 as well, with few changes since
the last time it was tested.
2019-08-12 12:54:18 +03:00
Martin Storsjö 00edbd4ec3 crt-test: Test negative zero in a few places 2019-08-01 22:30:45 +03:00
Martin Storsjö f07f6b71fe crt-test: Add tests for many more math functions
This should complete the coverage of all the C99 math functions.
2019-08-01 22:30:45 +03:00
Martin Storsjö e9da355304 crt-test: Test the copysign function on any platform, not only on windows 2019-08-01 22:30:45 +03:00
Martin Storsjö 7347d257ed crt-test: More thoroughly test some math functions
Also check that NaN is propagated properly where possible.
2019-08-01 22:30:45 +03:00
Martin Storsjö 52e7fff7a6 crt-test: Reduce code duplication in tests for math functions 2019-08-01 22:30:45 +03:00
Martin Storsjö 8eea910f47 crt-test: Extend existing tests for NAN to check that input NANs are preserved
Don't check the full NAN in itself, but check that the sign bit appears
correctly.
2019-08-01 22:30:45 +03:00
Martin Storsjö 2e6fa5bca7 crt-test: Wrap parameter expansion in TEST macros in parentheses 2019-08-01 22:30:45 +03:00
Martin Storsjö 70f074b599 crt-test: Restore the rounding direction after testing it 2019-08-01 22:30:45 +03:00
Martin Storsjö da4562be1b Update to the latest version of mingw-w64
This version includes fixes for a lot of c99 math functions.
2019-08-01 22:30:32 +03:00
Martin Storsjö 315e1ab683 Install the needed packages in docker images with --no-install-recommends
This avoids installing a few unneeded ones, but requires manually
picking ca-certificates instead.
2019-08-01 22:30:32 +03:00
Martin Storsjö 4670446157 Install llvm-addr2line 2019-07-01 22:30:24 +03:00
Martin Storsjö a61af72ca9 Write some sort of msys2 build instructions 2019-06-28 23:31:17 +03:00
Martin Storsjö 60609f0716 Reorder the readme, mention prebuilt toolchains first 2019-06-28 00:15:44 +03:00
Martin Storsjö 0933a30500 Avoid printing an error when rerunning build-compiler-rt.sh on msys2 2019-06-28 00:14:32 +03:00
Martin Storsjö 5f70dd1a1f Avoid errors when recreating an existing symlink on msys2
In this environment, symlinks don't exist but are made as copies.
In such cases, the -n option to ln doesn't work for making this
a no-op.

Alternatively, we could append "|| true", which would print an
error but continue.
2019-06-28 00:13:24 +03:00
Martin Storsjö c89799c996 Restore the original path before building widl
When building on windows, the toolchain bin directory contains
prefixless wrappers named "gcc.exe" and "clang.exe", even though
the toolchain isn't functional yet at this stage. Restore the
original path before building widl.

A more complete solution might be to build widl first, before
adding the newly built toolchain to the path.
2019-06-28 00:12:10 +03:00
Martin Storsjö f80d067176 Only make the prefixless widl symlink after compiling widl
When building in msys2, symlinks are plain copies, and one can't
make the symlink in advance.
2019-06-21 22:52:34 +03:00
Martin Storsjö 7edc154d50 wrappers: Unify comments about exception handling methods. 2019-05-28 15:29:08 +03:00
Martin Storsjö 4811c1f489 wrappers: Stop explicitly requesting SEH for AArch64
It is the default exception handling model there now.
2019-05-28 15:27:56 +03:00
Martin Storsjö 9d8339b48d Update mingw-w64 to the latest version
This version fixes deadlocks in winpthreads condvars (in certain
use patterns), uses the _UCRT define to request and signal the
use of UCRT, fixes the UCRT _vsnwprintf function, uses the
CRT's setjmp/longjmp on AArch64 if SEH is in use, and makes the
UCRT set the app type to console properly for such apps.
2019-05-28 13:54:51 +03:00
Martin Storsjö 0d4861fdd3 readme: Document the new implicit pdb output file naming 2019-05-28 00:04:39 +03:00
Martin Storsjö 5623fd232c wrappers: Remove the ld wrapping of --help and -v
The MinGW driver in lld now handle these flags, including the
libtool specific keywords.
2019-05-28 00:04:39 +03:00
Martin Storsjö 0c7aac99ad Update llvm/clang/lld to the latest version
This version adds support for a version of the -pdb option to the MinGW
frontend to lld that can work without a parameter, and implements --help
and -v for the same frontend.
2019-05-28 00:03:05 +03:00
Steve Lhomme b31ef612fb also pass the number of CORES to Ninja
It may automatically get a value but we can't override it
2019-05-21 14:26:26 +03:00
Steve Lhomme 4f5134fb25 wrappers: fix PATH not working when there are spaces in them 2019-05-17 12:36:00 +03:00
Michael Hept a959509701 Fix out of bound array access in native-wrappers.h 2019-05-09 14:58:38 +03:00