summaryrefslogtreecommitdiff
path: root/hadrian
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* hadrian: build ghc-stageN wrapper when building the stageN:exe:ghc-bin targetAdam Sandberg Ericsson2021-03-261-0/+6
|
* Add compiler linting to CIHécate2021-03-251-19/+33
| | | | | This commit adds the `lint:compiler` Hadrian target to the CI runner. It does also fixes hints in the compiler/ and libraries/base/ codebases.
* hadrian: remove alex and happy from build-toolsAdam Sandberg Ericsson2021-03-241-2/+0
| | | | | | | | | Hadrian doesn't actually depend on them as built-tools and normal usage where you want to compile GHC will pick up the tools before you run hadrian via the ./configure script. Not building an extra copy of alex and happy might also improve overall build-times when building from scratch.
* GHC Exactprint main commitAlan Zimmerman2021-03-204-19/+27
| | | | | | | | Metric Increase: T10370 parsing001 Updates haddock submodule
* llvmGen: Accept range of LLVM versionsBen Gamari2021-03-172-1/+5
| | | | | | | Previously we would support only one LLVM major version. Here we generalize this to accept a range, taking this range to be LLVM 10 to 11, as 11 is necessary for Apple M1 support. We also accept 12, as that is what apple ships with BigSur on the M1.
* Add a distclean command to hadrian.Andreas Klebinger2021-03-092-3/+13
| | | | | | | | | Hadrian should behave well and not delete files created by configure with the clean command. With this patch hadrian now deletes the fs/mingw tarballs only with distclean. This fixes #19320. The main impact being that validate won't have to redownload the tarballs when re-run.
* Require GHC 8.10 as the minimum compiler for bootstrappingRyan Scott2021-03-094-18/+16
| | | | | | | Now that GHC 9.0.1 is released, it is time to drop support for bootstrapping with GHC 8.8, as we only support building with the previous two major GHC releases. As an added bonus, this allows us to remove several bits of CPP that are either always true or no longer reachable.
* Hadrian: Add powerpc64[le] to supported arch listPeter Trommler2021-03-081-1/+2
| | | | Fixes #19409
* hadrian: Pass -fno-use-rpaths to GHC while linkingBen Gamari2021-03-061-0/+4
| | | | | | | This mirrors the make build system and ensures that we don't end up with references to the build directory in the final executable. Fixes #19485.
* Implement riscv64 LLVM backendAndreas Schwab2021-03-051-1/+1
| | | | This enables a registerised build for the riscv64 architecture.
* Update bounds/hadrian to fix bootstrapping with 9.0.Andreas Klebinger2021-03-054-8/+10
| | | | | | | | | | This fixes #19484. In detail we: * Bump the index-state of hackage. * Require alex-3.2.6, as alex-3.2.5 doesn't build with 9.0. * Allow Cabal-3.4 as 3.2 doesn't build with ghc 9.0. * Allow a newer QuickCheck version that accepts the new base version. * Some code changes to account for Cabal changes.
* Hadrian: Enable -ticky-dyn-thunk in ticky_ghc transformerMatthew Pickering2021-03-041-0/+1
| | | | | | | | | This produces much more detailed ticky profiles which include names of constructors. Related !3340 !2098 Fixes #19403
* Build event logging rts in all flavours except GhcinGhci.Andreas Klebinger2021-03-032-2/+2
| | | | This applies the fix for #19033 to all the other flavours as well.
* hadrian: Fix profiled flavour transformerBen Gamari2021-03-031-1/+9
| | | | | Previously the profiled flavour transformer failed to add the profiled ways to the library and RTS ways lists, resulting in link failures.
* Fix array and cleanup conversion primops (#19026)Sylvain Henry2021-03-033-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The first change makes the array ones use the proper fixed-size types, which also means that just like before, they can be used without explicit conversions with the boxed sized types. (Before, it was Int# / Word# on both sides, now it is fixed sized on both sides). For the second change, don't use "extend" or "narrow" in some of the user-facing primops names for conversions. - Names like `narrowInt32#` are misleading when `Int` is 32-bits. - Names like `extendInt64#` are flat-out wrong when `Int is 32-bits. - `narrow{Int,Word}<N>#` however map a type to itself, and so don't suffer from this problem. They are left as-is. These changes are batched together because Alex happend to use the array ops. We can only use released versions of Alex at this time, sadly, and I don't want to have to have a release thatwon't work for the final GHC 9.2. So by combining these we get all the changes for Alex done at once. Bump hackage state in a few places, and also make that workflow slightly easier for the future. Bump minimum Alex version Bump Cabal, array, bytestring, containers, text, and binary submodules
* Fix Windows build with autoconf >=2.70 (#19189)Sylvain Henry2021-02-271-1/+1
|
* hadrian: ticky_ghc should build all things with -ticky (#19405) [skip ci]Sebastian Graf2021-02-261-3/+2
| | | | | | | With this patch, everything built by the stage1 compiler (in a `ticky_ghc`-transformed flavour) will be built with `-ticky`. Fixes #19405.