summaryrefslogtreecommitdiff
path: root/hadrian/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Hadrian: Add support for packages with C++ filesMatthew Pickering2021-02-059-4/+43
|
* hadrian: Introduce ghci-wrapper packageBen Gamari2021-01-302-15/+55
| | | | | This wraps the existing GHCi wrapper script (driver/ghci/ghci.c) in a cabal file and adds the package to Hadrian.
* Add missing .hi-boot dependencies with ghc -M (#14482)Sylvain Henry2021-01-291-1/+9
|
* Reduce default test verbosityMatthew Pickering2021-01-281-1/+8
|
* hadrian: Fix `lookupInPath` on Windows (#19249)Sebastian Graf2021-01-271-5/+7
| | | | | | By querying the PATH variable explicitly via `getSearchPath`, we can work around the special behavior of `findExecutable` on Windows, where it also searches in System32. Fixes #19249.
* hadrian: Introduce no_profiled_libs flavour transformerBen Gamari2021-01-171-0/+7
| | | | Per request of @AndreasK.
* Hadrian: fix flavour parserSylvain Henry2021-01-171-2/+3
| | | | | | Hadrian was silently using the "quick" flavour when "quick-debug" or "quick-validate" was used. This patch fixes the parser and ensures that the whole input is consumed.
* Hadrian: Pass -jshakethreads to Haddock invocationsalexbiehl2021-01-171-1/+3
|
* hadrian: Add missing dependenciesBen Gamari2021-01-091-1/+5
| | | | | | ghcconfig.h, which depends upon ghcautoconf.h, and is a runtime dependency of deriveConstants. This is essentially a continuation of #18290.
* Hadrian: show default ghc-bignum backend (fix #18912)Sylvain Henry2021-01-071-2/+2
|
* Implement Unique supply with Addr# atomic primopSylvain Henry2021-01-051-16/+0
| | | | | | | | Before this patch the compiler depended on the RTS way (threaded or not) to use atomic incrementation or not. This is wrong because the RTS is supposed to be switchable at link time, without recompilation. Now we always use atomic incrementation of the unique counter.
* hadrian: disable ghc package environments #18988Adam Sandberg Ericsson2020-12-221-0/+1
|
* hadrian: correctly copy the docs dir into the bindist #18669Adam Sandberg Ericsson2020-12-121-1/+9
|
* Hadrian: fix libffi tarball parsingSylvain Henry2020-12-111-1/+1
| | | | | | Fix parsing of "libffi-3.3.tar.gz". NB: switch to a newer libffi isn't done in this patch
* hadrian: build the _l and _thr_l rts flavours in the develN flavoursAdam Sandberg Ericsson2020-12-081-1/+1
| | | | | The ghc binary requires the eventlog rts since fc644b1a643128041cfec25db84e417851e28bab
* hadrian: fix ghc-pkg uses (#17601)Sylvain Henry2020-11-281-6/+24
| | | | | Make sure ghc-pkg doesn't read the compiler "settings" file by passing --no-user-package-db.
* Hadrian: fix detection of ghc-pkg for cross-compilersSylvain Henry2020-11-281-4/+12
|
* hadrian: Drop redundant flavour definitionsBen Gamari2020-11-224-64/+3
| | | | | Drop the profiled, LLVM, and ThreadSanitizer flavour definitions as these can now be realized with flavour transformers.
* hadrian: Add profiled_ghc and no_dynamic_ghc modifiersBen Gamari2020-11-221-0/+14
|
* hadrian: Add a viaLlvmBackend modifierBen Gamari2020-11-222-6/+8
| | | | | Note that this also slightly changes the semantics of these flavours as we only use LLVM for >= stage1 builds.
* hadrian: Introduce notion of flavour transformersBen Gamari2020-11-222-5/+60
| | | | This extends Hadrian's notion of "flavour", as described in #18942.
* hadrian: Dump STG when ticky is enabledBen Gamari2020-11-221-1/+7
| | | | | This changes the "ticky" modifier to enable dumping of final STG as this is generally needed to make sense of the ticky profiles.
* hadrian: Disable stripping when debug information is enabledBen Gamari2020-11-211-3/+5
|
* Merge remote-tracking branch 'origin/wip/tsan/all'Ben Gamari2020-11-083-2/+24
|\
| * testsuite: Mark setnumcapabilities001 as broken with TSANGHC GitLab CI2020-10-241-0/+1
| | | | | | | | Due to #18808.
| * rts: Infrastructure for testing with ThreadSanitizerBen Gamari2020-10-243-2/+23
| |
* | Hadrian: don't fail if ghc-tarballs dir doesn't existSylvain Henry2020-11-031-1/+1
| |
* | hadrian: Don't capture RunTest outputBen Gamari2020-11-021-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There are a few reasons why capturing the output of the RunTest builder is undesirable: * there is a large amount of output which then gets unnecessarily duplicated by Hadrian if the builder fails * the output may contain codepoints which are unrepresentable in the current codepage on Windows, causing Hadrian to crash * capturing the output causes the testsuite driver to disable its colorisation logic, making the output less legible.
* | testsuite: Add --top flag to driverGHC GitLab CI2020-11-021-1/+1
| | | | | | | | | | This allows us to make `config.top` a proper Path. Previously it was a str, which caused the Ghostscript detection logic to break.
* | hadrian: Don't quote metric baseline argumentBen Gamari2020-10-281-1/+1
| | | | | | Previously this was quoted inappropriately.
* | build system: Clean mingw tarballsBen Gamari2020-10-271-0/+5
| | | | | | | | | | | | Tamar noticed in !4293 that the build systems fail to clean up the mingw tarballs directory (`ghc-tarballs`). Fix this in both the make build system and Hadrian.
* | hadrian: Suppress xelatex output unless it failsBen Gamari2020-10-271-1/+15
|/ | | | | | | As noted in #18835, xelatex produces an absurd amount of output, nearly all of which is meaningless. Silence this. Fixes #18835.
* Don't get host RTS ways via settings (#18651)Sylvain Henry2020-10-171-3/+0
| | | | | | | | | | | | To correctly perform a linking hack for Windows we need to link with the RTS GHC is currently using. We used to query the RTS ways via the "settings" file but it is fragile (#18651). The hack hasn't been fixed to take into account all the ways (Tracing) and it makes linking of GHC with another RTS more difficult (we need to link with another RTS and to regenerate the settings file). So this patch uses the ways reported by the RTS itself (GHC.Platform.Ways.hostWays) instead of the "settings" file.
* Lint the compiler for extraneous LANGUAGE pragmasHécate2020-10-102-4/+34
|
* Hadrian: add quick-debug flavourSylvain Henry2020-10-092-1/+9
|
* hadrian: use stage0 linker to merge objects when done during the stage0Karel Gardas2020-10-071-0/+9
| | | | Fixes #18800.
* Bump Cabal, hsc2hs, directory, process submodulesBen Gamari2020-09-301-1/+1
| | | | Necessary for recent Win32 bump.
* Namespace the Hadrian linting rule for baseHécate2020-09-241-6/+6
|
* hadrian: Fail on Sphinx syntax errorsBen Gamari2020-09-191-0/+15
| | | | | | Specifically the "Inline literal start-string without end-string" warning, which typically means that the user neglected to separate an inline code block from suffix text with a backslash.
* Add quick-validate Hadrian flavour (quick + -Werror)Sylvain Henry2020-09-192-2/+12
|
* Bump Stack resolverSylvain Henry2020-09-191-0/+6
|
* Rename ghci flag into internal-interpreterSylvain Henry2020-09-161-7/+8
| | | | | "ghci" as a flag name was confusing because it really enables the internal-interpreter. Even the ghci library had a "ghci" flag...
* Don't quote argument to Hadrian's test-env flag (#18656)Ryan Scott2020-09-121-1/+1
| | | | | | | Doing so causes the name of the test environment to gain an extra set of double quotes, which changes the name entirely. Fixes #18656.
* hadrian: Pass input file to makeindexBen Gamari2020-09-121-1/+1
| | | | | | Strangely I find that on Alpine (and apparently only on Alpine) the latex makeindex command expects to be given a filename, lest it reads from stdin.
* Define TICKY_TICKY when compiling cmm RTS files.David Himmelstrup2020-09-111-1/+2
|
* hadrian: Don't include -fdiagnostics-color in argument hashGHC GitLab CI2020-09-102-1/+5
| | | | | | | Otherwise the input hash will vary with whether colors are requested, which changed with `isatty`. Fixes #18672.
* hadrian: Fix leakage of GHC in PATH into buildBen Gamari2020-09-091-1/+7
| | | | | | Previously hadrian would use GHC on PATH when configuring packages (or fail if there is no such GHC). Fix this. Unfortunately this runs into another bug in Cabal which we workaround.
* [macOS] improved runpath handlingMoritz Angermann2020-09-072-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In b592bd98ff25730bbe3c13d6f62a427df8c78e28 we started using -dead_strip_dylib on macOS when lining dynamic libraries and binaries. The underlying reason being the Load Command Size Limit in macOS Sierra (10.14) and later. GHC will produce @rpath/libHS... dependency entries together with a corresponding RPATH entry pointing to the location of the libHS... library. Thus for every library we produce two Load Commands. One to specify the dependent library, and one with the path where to find it. This makes relocating libraries and binaries easier, as we just need to update the RPATH entry with the install_name_tool. The dynamic linker will then subsitute each @rpath with the RPATH entries it finds in the libraries load commands or the environement, when looking up @rpath relative libraries. -dead_strip_dylibs intructs the linker to drop unused libraries. This in turn help us reduce the number of referenced libraries, and subsequently the size of the load commands. This however does not remove the RPATH entries. Subsequently we can end up (in extreme cases) with only a single @rpath/libHS... entry, but 100s or more RPATH entries in the Load Commands. This patch rectifies this (slighly unorthodox) by passing *no* -rpath arguments to the linker at link time, but -headerpad 8000. The headerpad argument is in hexadecimal and the maxium 32k of the load command size. This tells the linker to pad the load command section enough for us to inject the RPATHs later. We then proceed to link the library or binary with -dead_strip_dylibs, and *after* the linking inspect the library to find the left over (non-dead-stripped) dependencies (using otool). We find the corresponding RPATHs for each @rpath relative dependency, and inject them into the library or binary using the install_name_tool. Thus achieving a deadstripped dylib (and rpaths) build product. We can not do this in GHC, without starting to reimplement a dynamic linker as we do not know which symbols and subsequently libraries are necessary. Commissioned-by: Mercury Technologies, Inc. (mercury.com)
* configure: Avoid hard-coded ld path on WindowsGHC GitLab CI2020-09-041-1/+1
| | | | | | | The fix to #17962 ended up regressing on Windows as it failed to replicate the logic responsible for overriding the toolchain paths on Windows. This resulted in a hard-coded path to a directory that likely doesn't exist on the user's system (#18550).
* Hadrian: fix slow-validate flavour (#18586)Sylvain Henry2020-08-311-1/+6
|