| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
(cherry picked from commit feb3b955402d53c3875dd7a9a39f322827e5bd69)
|
|
|
|
|
| |
In addition, we prefer the Mingw64 Python distribution on Windows due
to #17483.
|
| |
|
|
|
|
| |
Lest we fail to rebuild when they change. Fixes #17611.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Previously it would hackily look at the flavour name to determine
whether LLVM was used to build stage2 ghc. However, this didn't work at
all with Hadrian and would miss cases like ARM where we use the LLVM
backend by default.
See #16087 for the motivation for why ghc_built_by_llvm is needed at
all. This should catch one of the ARMv7 failures described in #17555.
|
|
|
|
|
| |
Then one is freer to omit upper bounds, as we won't pick
any new entries on Hackage while building hadrian itself.
|
|
|
|
|
| |
Given that shake is far from "done" API wise,
and is central component to the build system.
|
|
|
|
|
| |
I'm not sure how this was omitted from the list of supported
architectures.
|
| |
|
|
|
|
| |
That would be in line with the implementation.
|
| |
|
|
|
|
| |
Should finally fix #17255.
|
|
|
|
| |
Haskeline now depends upon exceptions. See #16752.
|
|
|
|
|
| |
This addresses #17456 and also fixes the --metrics-file argument that Hadrian
passes to the testsuite driver.
|
|
|
|
|
| |
This took a bit of trial-and-error to get working so it seems worth
having in the tree.
|
|
|
|
|
|
|
|
|
|
| |
Before this patch, Hadrian didn't care about the TEST_ENV and
METRICS_FILE environment variables, that the performance testing
infrastructure uses to record perf tests results from CI jobs.
It now looks them up right before running the testsuite driver,
and passes suitable --test-env/--metrics-file arguments when
these environment variables are set.
|
|
|
|
| |
Fixing #17255.
|
| |
|
|
|
|
|
| |
Use True/False instead of 0/1. This shouldn't be a functional change but
we should be consistent.
|
|
|
|
|
|
|
|
|
|
|
| |
Previously `hadrian` would pass `-optc-Werror=unused-but-set-variable`
to all GHC invocations. This was a difference from the make build system
and cause the unregisterised build to fail as the C that GHC produces
contains many unused functions. Drop it from the GHC flags.
Note, however, that the flag is still present in
`Settings.Builders.Common.cWarnings` and therefore will still be applied
during compilation of C sources.
|
|
|
|
|
| |
Some of these flags wanted to be passed to .cmm builds as well as C
builds.
|
|
|
|
|
|
|
|
| |
It seems that NOSMP was previously only defined when compiling the
compiler, not the RTS. Fix this.
In addition do some spring-cleaning and make the logic match that of the
Make build system.
|
| |
|
|
|
|
|
|
|
| |
Previously we would allow the output from the check of SMP support
introduced by 83655b06e6d3e93b2d15bb0fa250fbb113d7fe68 leak to
stdout. Silence this.
See #16873.
|
|
|
|
| |
It should point to the _build directory, not the source
|
| |
|
|
|
|
| |
[skip ci]
|
|
|
|
|
|
|
|
|
| |
This commit makes Hadrian use the `-dynamic-too` flag when the current
Flavour's libraryWays contains both vanilla and dynamic, cutting down
the amount of repeated work caused by separate compilation of dynamic
and static files. It does this for the basic case where '.o' and
'.dyn_o' files are built with one command, but does not generalise to
cases like '.prof_o' and '.prof_dyn_o'.
|
|
|
|
| |
See #16873.
|
|
|
|
|
|
|
|
| |
cmd uses RawCommand which uses Windows semantics to find the executable
which sometimes seems to fail for unclear reasons.
If we invoke ghc via bash then bash will find the ghc executable and
the issue goes away.
|
|
|
|
|
|
| |
This patch adds support for the s390x architecture for the LLVM code
generator. The patch includes a register mapping of STG registers onto
s390x machine registers which enables a registerised build.
|
|
|
|
| |
Also refactor things a bit to eliminate repetition.
|
|
|
|
| |
Fixes #17351.
|
|
|
|
|
| |
This is a very cheap job and can catch a number of "easy" failure modes
(e.g. missing imports in the compiler). Let's run it first.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- No need to distinguish between gcc-llvm and clang. First of all,
gcc-llvm is quite old and surely unmaintained by now. Second of all,
none of the code actually care about that distinction!
Now, it does make sense to consider C multiple frontends for LLVMs in
the form of clang vs clang-cl (same clang, yes, but tweaked
interface). But this is better handled in terms of "gccish vs
mvscish" and "is LLVM", yielding 4 combinations. Therefore, I don't
think it is useful saving the existing code for that.
- Get the remaining CC_LLVM_BACKEND, and also TABLES_NEXT_TO_CODE in
mk/config.h the normal way, rather than hacking it post-hoc. No point
keeping these special cases around for now reason.
- Get rid of hand-rolled `die` function and just use `AC_MSG_ERROR`.
- Abstract check + flag override for unregisterised and tables next to
code.
Oh, and as part of the above I also renamed/combined some variables
where it felt appropriate.
- GccIsClang -> CcLlvmBackend. This is for `AC_SUBST`, like the other
Camal case ones. It was never about gcc-llvm, or Apple's renamed clang,
to be clear.
- llvm_CC_FLAVOR -> CC_LLVM_BACKEND. This is for `AC_DEFINE`, like the
other all-caps snake case ones. llvm_CC_FLAVOR was just silly
indirection *and* an odd name to boot.
|
|
|
|
| |
Fixes #17286.
|
| |
|
|
|
|
| |
To avoid polluting the macro namespace
|
|
|
|
|
|
|
| |
This ensures that all GHC flags are documented during the documentation
build.
Fixes #17315.
|
|
|
|
| |
This ensure that it blurts an error on missing references.
|
| |
|
| |
|
|
|
|
|
|
| |
You can always just not use or even build `iserv`. I don't think the
maintenance cost of the CPP is worth...I can't even tell what the
benefit is.
|
| |
|
|
|
|
| |
They are only used in a file we construct directly, so just skip CPP.
|