| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Metric Decrease:
T16875
Metric Increase:
T12707
T13379
T3294
T4801
T5321FD
T5321Fun
T783
|
| |
|
|
|
| |
Since we have switched to Clang the toolchain now links against
ucrt rather than msvcrt.
|
| |
|
|
| |
As is necessary on Windows.
|
| |\ \ \
| | | |
| | | |
| | | | |
'wip/windows-clang-2' and 'wip/lint-rts-includes' into wip/windows-clang-join
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Verifies two important properties of #includes in the RTS:
* That system headers don't appear inside of a `<BeginPrivate.h>` block
as this can hide system library symbols, resulting in very
hard-to-diagnose linker errors
* That no headers precede `Rts.h`, ensuring that __USE_MINGW_ANSI_STDIO
is set correctly before system headers are included.
|
| | | | |
| | | |
| | | |
| | | | |
This fixes various violations of the newly-added RTS includes linter.
|
| | | | |
| | | |
| | | |
| | | | |
It's easier to ensure that this is included first than Rts.h
|
| | | | |
| | | |
| | | |
| | | | |
Due to #21361.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Due to #20354.
We will need to investigate this prior the release.
|
| | | | |
| | | |
| | | |
| | | | |
Our toolchain on Windows doesn't currently have Windows support.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
I'll admit, I don't currently see *why* this output is reordered
but it is a fairly benign difference and I'm out of time to investigate.
|
| | | | |
| | | |
| | | |
| | | | |
`abort` exits with 255, not 134, on Windows.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Some platforms (e.g. Windows/clang64) declare `environ` in `<stdlib.h>`,
not `<unistd.h>`
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Clang on Windows does not understand the `gnu_printf` attribute; use
`printf` instead.
|
| | | | |
| | | |
| | | |
| | | | |
Due to #21322.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
It was previously failing due to #18721 and now passes with the new
toolchain.
Closes #18721.
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | | |
Fixes missing TEST_CC_OPTS in testsuite tests.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
- Disable support for library-for-ghci on Windows as described
in #21068.
- Teach Cabal to use `ar -L` when available
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Previously we would report framework failures of tests marked as fragile
as failures. Now we rather treat them as fragile test failures, which
are not fatal to the testsuite run. Noticed while investigating #21293.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Currently llvm-ar does not handle long file paths, resulting in
occassional failures of these tests and #21293.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Otherwise the linker will export all symbols, including those provided
by the RTS, from the produced shared object. Consequently, attempting
to link against multiple objects simultaneously will cause the linker
to complain that RTS symbols are multiply defined. Avoid this
by limiting the DLL exports with a module definition file.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
I'm a bit unclear on how this previously worked as it attempted
to build an executable without defining `main`.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Split up the C and C++ uses since the latter is significantly more
platform-dependent.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Previously we used libgcc_s's import library in T13606. However, now that
we ship with clang we no longer have this library. Instead we now use gdi32.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The new toolchain has fixed it.
Closes #15670.
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
I have not seen it fail since moving to clang.
Closes #12714.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Previously this test was C++ which made it a bit of a portability
problem.
|
| | | | |
| | | |
| | | |
| | | | |
This flag is not applicable when Clang is used.
|
| | | | | |
|
| | | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
* Bump win32-tarballs to 0.7
* Move Windows toolchain autoconf logic into separate file
* Use clang and LLVM utilities as described in #21019
* Disable object merging as lld doesn't support -r
* Drop --oformat=pe-bigobj-x86-64 arguments from ld flags as LLD detects
that the output is large on its own.
* Drop gcc wrapper since Clang finds its root fine on its own.
|
| | | | |
| | | |
| | | |
| | | |
| | | | |
Drop hack for #1828, among others as they appear to be unnecessary when
using `llvm-windres`.
|
| | | |/
| | |
| | |
| | | |
This is a gcc-specific extension.
|
| | | |
| | |
| | |
| | |
| | | |
Previously `isArchive` could leak a `FILE` handle if the `fread`
returned a short read.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Previously the RTS linker would call initializers during the
"resolve" phase of linking. However, this is problematic in the
case of cyclic dependencies between objects. In particular, consider
the case where we have a situation where a static library
contains a set of recursive objects:
* object A has depends upon symbols in object B
* object B has an initializer that depends upon object A
* we try to load object A
The linker would previously:
1. start resolving object A
2. encounter the reference to object B, loading it resolve object B
3. run object B's initializer
4. the initializer will attempt to call into object A,
which hasn't been fully resolved (and therefore protected)
Fix this by moving constructor execution to a new linking
phase, which follows resolution.
Fix #21253.
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
swprintf deviates from usual `snprintf` semantics in that it does not
guarantee reasonable behavior when the buffer is NULL (that is,
returning the number of bytes that would have been emitted).
|
| | | | |
|
| | | | |
|
| | | |
| | |
| | |
| | |
| | |
| | | |
We now preserve the address that we last mapped, allowing us to resume
our search and avoiding quadratic allocation costs. This fixes the
runtime of T10296a, which allocates many adjustors.
|
| | | | |
|