summaryrefslogtreecommitdiff
path: root/hadrian
Commit message (Collapse)AuthorAgeFilesLines
* Hadrian: disable profiled RTS with no_profiled_libs flavour transformerSylvain Henry2021-07-281-1/+3
| | | | | | | 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.
* hadrian: Call ghc-pkg recache after copying package database into bindistMatthew Pickering2021-07-271-0/+5
| | | | | | | | | | | 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.
* hadrian: Add exe suffix to executables in testsuiteMatthew Pickering2021-07-271-4/+4
|
* packaging: Don't include configure scripts in windows bindistMatthew Pickering2021-07-271-11/+13
| | | | Fixes #19868
* packaging: Add note about wrappersMatthew Pickering2021-07-271-3/+27
|
* packaging: Create both versioned and unversioned executablesMatthew Pickering2021-07-272-6/+61
| | | | | | | | | 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
* hadrian: Remove special haddock copying ruleMatthew Pickering2021-07-271-12/+0
|
* hadrian: Update hsc2hs wrapper to match current masterMatthew Pickering2021-07-271-19/+5
|
* packaging: Give ghc-pkg the same version as ProjectVersionMatthew Pickering2021-07-271-0/+1
|
* packaging: Be more precise about which executables to copy and wrappers to ↵Matthew Pickering2021-07-271-14/+43
| | | | | | | | | | | | | | | | | | | 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.
* validate: update quick-validate flavour for validation with --fastAlina Banerjee2021-07-272-12/+18
|
* rts: Don't declare libCffi as bundled when using system libffiBen Gamari2021-07-271-0/+2
| | | | | Previously the rts's cabal file would claim that it bundled libffi, even if we are using the system's libffi. Fixes #19869.
* hadrian: Always specify flag values explicitlyBen Gamari2021-07-273-24/+33
| | | | | Previously we would often allow cabal flags to default, making it harder than necessary to reason about the effective build configuration.
* rts: Introduce and use ExecPage abstractionBen Gamari2021-07-271-1/+1
| | | | | Here we introduce a very thin abstraction for allocating, filling, and freezing executable pages to replace allocateExec.
* rts: Break up adjustor logicBen Gamari2021-07-275-13/+14
|
* hadrian: Don't add empty -I argumentswip/hadrian/libffi-includesBen Gamari2021-07-251-1/+1
| | | | | | Previously hadrian would add a -I$FfiIncludeDir flag to compiler invocations even if FfiIncludeDir was null, resulting in compilation errors.
* hadrian: Update docs targets documentation [skip ci]wip/hadrian-docs-targetsMatthew Pickering2021-07-201-3/+21
| | | | | The README had got a little out of sync with the current state of affairs.
* Pass '-x c++' and '-std=c++11' to `cc` for cpp files, in HadrianEthan Kiang2021-07-065-13/+30
| | | | | '-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.
* Fix libffi on PowerPCPeter Trommler2021-06-281-6/+1
| | | | | | | | | 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
* rts: move xxxHash out of the user namespaceTamar Christina2021-06-241-4/+2
|
* hadrian: Pass correct leading_underscore configuration to testsMatthew Pickering2021-06-231-0/+2
|
* hadrian/README.md: update bignum optionsFraser Tweedale2021-06-201-2/+1
|
* Make 'count-deps' a ghc/util standalone programShayne Fletcher2021-06-055-5/+17
| | | | | | | | - 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'
* hadrian: Speed up lint:base ruleMatthew Pickering2021-06-021-2/+8
| | | | | | | | | 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
* Revert "hadrian: Don't always links against libffi"Matthew Pickering2021-05-251-1/+2
| | | | This reverts commit 673ff667c98eafc89e6746d1ac69d33b8330d755.
* [hadrian] Properly build hsc2hs wrapperMoritz Angermann2021-05-251-18/+23
|
* [hadrian] Do not add full tool pathsMoritz Angermann2021-05-253-4/+32
| | | | | | 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.
* hadrian: Add omit_pragmas transformerMatthew Pickering2021-05-221-0/+8
| | | | | | 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.
* hadrian: Reorganise modules so KV parser can be used to define transformersMatthew Pickering2021-05-227-273/+288
|
* hadrian: Reduce verbosity on failed testsuite runMatthew Pickering2021-05-211-1/+4
| | | | | | | | | | | | | | | 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) ```
* hadrian: Build check-ppr and check-exact using normal hadrian rules when in-treeMatthew Pickering2021-05-193-25/+23
| | | | Fixes #19606 #19607
* hadrian: Make copyFileLinked a bit more robustMatthew Pickering2021-05-192-11/+14
| | | | | Previously it only worked if the two files you were trying to symlink were already in the same directory.
* Remove useless {-# LANGUAGE CPP #-} pragmasSylvain Henry2021-05-121-2/+1
|
* Fully remove HsVersions.hSylvain Henry2021-05-121-2/+1
| | | | | | | | | | Replace uses of WARN macro with calls to: warnPprTrace :: Bool -> SDoc -> a -> a Remove the now unused HsVersions.h Bump haddock submodule
* Hadrian: Enable SMP on powerpc64{le}Peter Trommler2021-05-121-1/+10
| | | | Fixes #19825
* hadrian: Fix dynamic+debug flag combination for check-ppr executableMatthew Pickering2021-05-121-2/+2
|
* Hadrian: add comment to avoid surprisesSylvain Henry2021-05-111-2/+2
|
* hadrian: Don't always links against libffiMatthew Pickering2021-05-111-2/+1
| | | | | | | | | 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
* hadrian: Don't depend upon bash from PATHBen Gamari2021-05-064-7/+13
| | | | | | | | 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.
* Disable HLint coloursHécate Moonlight2021-05-031-2/+3
| | | | closes #19776
* Hadrian: build check-* with -Wall/-WerrorSylvain Henry2021-04-301-1/+1
| | | | Otherwise CI fails only with make build system.
* hadrian: Provide build rule for ghc-stage3 wrapperStefan Schulze Frielinghaus2021-04-131-0/+1
|
* Don't produce platformConstants fileSylvain Henry2021-04-103-13/+0
| | | | It isn't used for anything anymore
* Remove dynamic-by-default (#16782)Sylvain Henry2021-04-073-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.)
* hadrian: Don't try to build iserv-prof if we don't have profiled librariesMatthew Pickering2021-04-071-6/+19
| | | | Workaround for #19624
* hadrian: don't hardcode -fuse-ld=gold in hsc2hs wrapper #19514Adam Sandberg Ericsson2021-04-071-1/+1
|
* hadrian: Fix build-stack-nixBen Gamari2021-04-051-2/+2
| | | | | | | As noted by #19589, `stack` is not stateful and therefore must be passed `--nix` on every invocation. Do so. Fixes #19589.
* hadrian: Refactor hlint targetBen Gamari2021-04-051-26/+36
| | | | | | 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.
* Add -Wcompat to hadrianOleg Grenrus2021-03-311-0/+1
| | | | Update submodules haskeline and hpc
* Allocate Adjustors and mark them readable in two stepsMoritz Angermann2021-03-291-1/+1
| | | | | | | | | 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.