| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Hadrian uses the RTS ways to determine which iserv programs to embed
into bindist. But profiled iserv program (and any other code) can't be
built without profiling libs and Hadrian fails. So we disable the
profiling RTS way with the no_profiled_libs flavour transformer.
|
|
|
|
|
|
|
|
|
|
|
| |
The package.cache needs to have a later mod-time than all of the .conf
files. This invariant can be destroyed by `cp -r` and so we run `ghc-pkg
recache` to ensure the package database which is distributed is
consistent.
If you are installing a relocatable bindist, for example, on windows,
you should preserve mtimes by using cp -a or run ghc-pkg recache after
installing.
|
| |
|
|
|
|
| |
Fixes #19868
|
| |
|
|
|
|
|
|
|
|
|
| |
Before we would just copy the unversioned executable into the bindist.
Now the actual executable is copied into the bindist and a version
suffix is added. Then a wrapper or symlink is added which points to the
versioned executable.
Fixes #20074
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
create
Exes
----
Before: The whole bin/ folder was copied which could contain random old/stale/testsuite executables
After: Be precise
Wrappers
--------
Before: Wrappers were created for everything in the bin folder,
including internal executables such as "unlit"
After: Only create wrappers for the specific things which we want to
include in the user's path.
This makes the hadrian bindists match up more closely with the make
bindists.
|
| |
|
|
|
|
|
| |
Previously the rts's cabal file would claim that it bundled libffi, even
if we are using the system's libffi. Fixes #19869.
|
|
|
|
|
| |
Previously we would often allow cabal flags to default, making it harder
than necessary to reason about the effective build configuration.
|
|
|
|
|
| |
Here we introduce a very thin abstraction for allocating, filling, and
freezing executable pages to replace allocateExec.
|
| |
|
|
|
|
|
|
| |
Previously hadrian would add a -I$FfiIncludeDir flag to compiler
invocations even if FfiIncludeDir was null, resulting in compilation
errors.
|
|
|
|
|
| |
The README had got a little out of sync with the current state of
affairs.
|
|
|
|
|
| |
'-x c++' was found to be required on Darwin Clang 11 and 12.
'-std=c++' was found to be needed on Clang 12 but not 11.
|
|
|
|
|
|
|
|
|
| |
Update submodule libffi-tarballs to upstream commit 4f9e20a.
Remove C compiler flags that suppress warnings in the RTS. Those
warnings have been fixed by libffi upstream.
Fixes #19885
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
- Move 'count-deps' into 'ghc/utils' so that it can be called standalone.
- Move 'testsuite/tests/parser/should_run/' tests 'CountParserDeps' and
'CountAstDeps' to 'testsuite/tests/count-deps' and reimplement in terms
of calling the utility
- Document how to use 'count-deps' in 'ghc/utils/count-deps/README'
|
|
|
|
|
|
|
|
|
| |
The rule before decided to build the whole stage1 compiler, but this was
unecessary as we were just missing one header file which can be
generated directly by calling configure.
Before: 18 minutes
After: 54s
|
|
|
|
| |
This reverts commit 673ff667c98eafc89e6746d1ac69d33b8330d755.
|
| |
|
|
|
|
|
|
| |
This prohuibits CC=clang to work generically and will always bake
in the clang that is found on the build machine in PATH, what ever
clang that might be. It might not even be on the final host.
|
|
|
|
|
|
| |
This transformer builds stage2 GHC with -fomit-interface-pragmas which
can greatly reduce the amount of rebuilding but still allows most the
tests to pass.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the testsuite failed before it would print a big exception which
gave you the very long command line which was used to invoke the
testsuite. By capturing the exit code and rethrowing the exception, the
error is must less verbose:
```
Error when running Shake build system:
at want, called at src/Main.hs:104:30 in main:Main
* Depends on: test
* Raised the exception:
user error (tests failed)
```
|
|
|
|
| |
Fixes #19606 #19607
|
|
|
|
|
| |
Previously it only worked if the two files you were trying to symlink
were already in the same directory.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Replace uses of WARN macro with calls to:
warnPprTrace :: Bool -> SDoc -> a -> a
Remove the now unused HsVersions.h
Bump haddock submodule
|
|
|
|
| |
Fixes #19825
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
The RTS flag `ffi` is set to either True or False depending on whether
we want to link against `libffi`, therefore in order to work out whether
to add the build tree to the arguments we check whether `ffi` is in the
extraLibs or not before adding the argument.
Fixes #16022
|
|
|
|
|
|
|
|
| |
Previously Hadrian depended implicitly upon whatever `bash` it found in
`PATH`, offerring no way for the user to override. Fix this by detecting
`sh` in `configure` and passing the result to Hadrian.
Fixes #19797.
|
|
|
|
| |
closes #19776
|
|
|
|
| |
Otherwise CI fails only with make build system.
|
| |
|
|
|
|
| |
It isn't used for anything anymore
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Dynamic-by-default was a mechanism to automatically select the -dynamic
way for some targets.
It was implemented in a convoluted way: it was defined as a flavour
option, hence it couldn't be passed as a global settings (which are
produced by `configure` before considering flavours), so a build system
rule was used to pass -DDYNAMIC_BY_DEFAULT to the C compiler so that
deriveConstants could infer it.
* Make build system has it disabled for 8 years (951e28c0625ece7e0db6ac9d4a1e61e2737b10de)
* It has never been implemented in Hadrian
* Last time someone tried to enable it 1 year ago it didn't work (!2436)
* Having this as a global constant impedes making GHC multi-target (see !5427)
This commit fully removes support for dynamic-by-default. If someone
wants to reimplement something like this, it would probably need to move
the logic in the compiler.
(Doing this would probably need some refactoring of the way the compiler
handles DynFlags: DynFlags are used to store and to pass enabled ways to
many parts of the compiler. It can be set by command-line flags, GHC
API, global settings. In multi-target GHC, we will use DynFlags to load
the target platform and its constants: but at this point with the
current DynFlags implementation we can't easily update the existing
DynFlags with target-specific options such as dynamic-by-default without
overriding ways previously set by the user.)
|
|
|
|
| |
Workaround for #19624
|
| |
|
|
|
|
|
|
|
| |
As noted by #19589, `stack` is not stateful and therefore must be passed
`--nix` on every invocation. Do so.
Fixes #19589.
|
|
|
|
|
|
| |
Not only does this eliminate some code duplication but we also
add a maximum core count to HLint's command-line, hopefully avoiding
issue #19600.
|
|
|
|
| |
Update submodules haskeline and hpc
|
|
|
|
|
|
|
|
|
| |
This drops allocateExec for darwin, and replaces it with
a alloc, write, mark executable strategy instead. This prevents
us from trying to allocate an executable range and then write to
it, which X^W will prohibit on darwin.
This will *only* work if we can use mmap.
|