summaryrefslogtreecommitdiff
path: root/distrib
Commit message (Collapse)AuthorAgeFilesLines
* autoconf: set CrossCompiling=YES in cross bindist configureCheng Shao2022-11-111-0/+8
| | | | | This patch fixes the bindist autoconf logic to properly set CrossCompiling=YES when it's a cross GHC bindist.
* Drop mk/{build,install,config}.mk.inBen Gamari2022-08-251-2/+1
|
* Drop hc-build scriptBen Gamari2022-08-251-112/+0
| | | | | This has not worked for many, many years and relied on the now-removed `make`-based build system.
* hadrian: Don't use mk/config.mk.inBen Gamari2022-08-071-1/+1
| | | | | | Ultimately we want to drop mk/config.mk so here I extract the bits needed by the Hadrian bindist installation logic into a Hadrian-specific file. While doing this I fixed binary distribution installation, #21901.
* hadrian: Fix binary distribution install attributesBen Gamari2022-08-071-0/+1
| | | | | | | | | Previously we would use plain `cp` to install various parts of the binary distribution. However, `cp`'s behavior w.r.t. file attributes is quite unclear; for this reason it is much better to rather use `install`. Fixes #21965.
* hadrian: Rename documentation directories for consistency with makeBen Gamari2022-07-171-5/+0
| | | | | | | * Rename `docs` to `doc` * Place pdf documentation in `doc/` instead of `doc/pdfs/` Fixes #21164.
* hadrian: Add --haddock-base-url option for specifying base-url when ↵Matthew Pickering2022-07-041-1/+1
| | | | | | | | | | | | | | | | | | | generating docs The motiviation for this flag is to be able to produce documentation which is suitable for uploading for hackage, ie, the cross-package links work correctly. There are basically three values you want to set this to: * off - default, base_url = ../%pkg% which works for local browsing * on - no argument , base_url = https:://hackage.haskell.org/package/%pkg%/docs - for hackage docs upload * on - argument, for example, base_url = http://localhost:8080/package/%pkg%/docs for testing the documentation. The `%pkg%` string is a template variable which is replaced with the package identifier for the relevant package. This is one step towards fixing #21749
* update READMEEric Lindblad2022-05-261-2/+4
|
* configure: Check CC_STAGE0 for --target supportBen Gamari2022-05-191-1/+2
| | | | | | | | | | | | | | We previously only checked the stage 1/2 compiler for --target support. We got away with this for quite a while but it eventually caught up with us in #21579, where `bytestring`'s new NEON implementation was unbuildable on Darwin due to Rosetta's seemingly random logic for determining which executable image to execute. This lead to a confusing failure to build `bytestring`'s cbits, when `clang` tried to compile NEON builtins while targetting x86-64. Fix this by checking CC_STAGE0 for --target support. Fixes #21579.
* Introduce package to capture dependency on C++ stdlibBen Gamari2022-05-171-0/+4
| | | | | | | | Here we introduce a new "virtual" package into the initial package database, `system-cxx-std-lib`. This gives users a convenient, platform agnostic way to link against C++ libraries, addressing #20010. Fixes #20010.
* driver: Introduce pgmcxxBen Gamari2022-05-171-0/+1
| | | | | | | | | | Here we introduce proper support for compilation of C++ objects. This includes: * logic in `configure` to detect the C++ toolchain and propagating this information into the `settings` file * logic in the driver to use the C++ toolchain when compiling C++ sources
* update INSTALLEric Lindblad2022-05-101-3/+3
|
* Build ar archives with -L when "joining" objectsBen Gamari2022-04-061-0/+1
| | | | Since there may be .o files which are in fact archives.
* Fix gen_contents_index logic for hadrian bindistMatthew Pickering2022-03-071-3/+8
|
* Make ambient MinGW support a proper settingsJohn Ericson2021-11-271-0/+7
| | | | | | | Get rid of `USE_INPLACE_MINGW_TOOLCHAIN` and use a settings file entry instead. The CPP setting was originally introduced in f065b6b012.
* Modularize autoconf platform detectionJohn Ericson2021-10-311-4/+21
| | | | | | | This will allow better reuse of it, such as in the upcoming RTS configure script. Progress towards #17191
* hadrian: Fix binary-dist support for cross-compilersBen Gamari2021-10-201-1/+1
| | | | | | | | | Previously the logic which called ghc-pkg failed to account for the fact that the executable name may be prefixed with a triple. Moreover, the call must occur before we delete the settings file as ghc-pkg needs the latter. Fixes #20267.
* distrib/configure: Add AC_CONFIG_MACRO_DIRSBen Gamari2021-10-131-0/+2
| | | | | Sadly, autoconf cannot warn when it encounters an undefined macro and therefore this bug went unnoticed for altogether far too long.
* configure: Add check for whether CC supports --targetBen Gamari2021-09-231-0/+4
|
* Link with libm dynamically (#19877)Sylvain Henry2021-09-221-0/+3
| | | | The compiler should be independent of the target.
* distrib: Drop FP_GMP from configure scriptBen Gamari2021-09-111-2/+0
| | | | | None of the configure options defined by `FP_GMP` are applicable to binary distributions.
* rts: Break up adjustor logicBen Gamari2021-07-271-0/+3
|
* llvmGen: Accept range of LLVM versionsBen Gamari2021-03-171-3/+4
| | | | | | | 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.
* mkDocs: address shellcheck issuesAdam Sandberg Ericsson2020-12-221-4/+4
|
* mkDocs: fix extraction of Win32 docs from hadrian bindistAdam Sandberg Ericsson2020-12-221-2/+6
|
* mkDocs: support hadrian bindists #18973Adam Sandberg Ericsson2020-12-121-1/+3
|
* Refactor handling of object mergingBen Gamari2020-08-051-0/+1
| | | | | | | | | Previously to merge a set of object files we would invoke the linker as usual, adding -r to the command-line. However, this can result in non-sensical command-lines which causes lld to balk (#17962). To avoid this we introduce a new tool setting into GHC, -pgmlm, which is the linker which we use to merge object files.
* Replace ghcWithNativeCodeGen with a proper Backend datatypeSylvain Henry2020-07-222-2/+0
| | | | | | | | | | | | | | | | * Represent backends with a `Backend` datatype in GHC.Driver.Backend * Don't detect the default backend to use for the target platform at compile time in Hadrian/make but at runtime. It makes "Settings" simpler and it is a step toward making GHC multi-target. * The latter change also fixes hadrian which has not been updated to take into account that the NCG now supports AIX and PPC64 (cf df26b95559fd467abc0a3a4151127c95cb5011b9 and d3c1dda60d0ec07fc7f593bfd83ec9457dfa7984) * Also we don't treat iOS specifically anymore (cf cb4878ffd18a3c70f98bdbb413cd3c4d1f054e1f)
* Kill wORDS_BIGENDIAN and replace it with platformByteOrder (#17957)Sylvain Henry2020-04-011-0/+11
| | | | | | Metric Decrease: T13035 T1969
* Rework handling of win32 toolchain tarballsBen Gamari2020-02-141-6/+0
|
* configure: Find Python3 for testsuiteBen Gamari2020-01-071-0/+3
| | | | | In addition, we prefer the Mingw64 Python distribution on Windows due to #17483.
* Fix typos, via a Levenshtein-style correctorBrian Wignall2020-01-041-1/+1
|
* configure: Add --with-libdw-{includes,libraries} flagsBen Gamari2019-11-061-0/+4
| | | | Fixing #17255.
* distrib: Fix binary distribution installationBen Gamari2019-10-291-2/+4
| | | | | This had silently regressed due to 81860281 and the variable renaming performed in b55ee979, as noted in #17374.
* Make sure all boolean settings entries use `YES` / `NO`John Ericson2019-09-051-2/+2
| | | | | | | | | Some where using `True` / `False`, a legacy of when they were in `Config.hs`. See #16914 / d238d3062a9858 for a similar problem. Also clean up the configure variables names for consistency and clarity while we're at it. "Target" makes clear we are talking about outputted code, not where GHC itself runs.
* Don't package settings in bindistBen Gamari2019-07-141-2/+3
| | | | | | | | | | | | Since !712 the `settings` file is produced by the build system instead of autoconf. However, this introduced a subtle bug where we would fail to rebuild the `settings` file with what we have learned from the install-time `configure` invocation. Fix this by not packaging `settings` in the bindist tarball. The build system will take care of the rest. Also fix a bug where the value of `UseLibdw` was not being persisted to the install time `configure`.
* distrib/configure.ac.in: remove mention to 'settings', since settings.in is goneAlp Mestanogullari2019-05-211-1/+1
| | | | | | | | Otherwise, when `./configure`ing a GHC bindist, produced by either Make or Hadrian, we would try to generate the `settings` file from the `settings.in` template that we used to have around but which has been gone since d37d91e9. That commit generates the settings file using the build systems instead, but forgot to remove this mention to the `settings` file.
* Generate settings by make/hadrian instead of configureJohn Ericson2019-04-301-1/+1
| | | | This allows it to eventually become stage-specific
* Remove unused remilestoning scriptÖmer Sinan Ağacan2019-04-111-119/+0
|
* Clean up URLs to point to GitLabTakenobu Tani2019-04-011-1/+1
| | | | | | | | | | | | This moves URL references to old Trac to their corresponding GitLab counterparts. This patch does not update the submodule library, such as libraries/Cabal. See also !539, !606, !618 [ci skip]
* Update Wiki URLs to point to GitLabTakenobu Tani2019-03-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | This moves all URL references to Trac Wiki to their corresponding GitLab counterparts. This substitution is classified as follows: 1. Automated substitution using sed with Ben's mapping rule [1] Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy... New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy... 2. Manual substitution for URLs containing `#` index Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy...#Zzz New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy...#zzz 3. Manual substitution for strings starting with `Commentary` Old: Commentary/XxxYyy... New: commentary/xxx-yyy... See also !539 [1]: https://gitlab.haskell.org/bgamari/gitlab-migration/blob/master/wiki-mapping.json
* Update Trac ticket URLs to point to GitLabRyan Scott2019-03-151-2/+2
| | | | | This moves all URL references to Trac tickets to their corresponding GitLab counterparts.
* Rip out perl dependencyBen Gamari2019-03-091-10/+0
| | | | | | The object splitter was the last major user of perl. There remain a few uses in nofib but we can just rely on the system's perl for this since it's not critical to the build.
* Rip out object splittingBen Gamari2019-03-052-2/+0
| | | | | | | | | | | | | | | The splitter is an evil Perl script that processes assembler code. Its job can be done better by the linker's --gc-sections flag. GHC passes this flag to the linker whenever -split-sections is passed on the command line. This is based on @DemiMarie's D2768. Fixes Trac #11315 Fixes Trac #9832 Fixes Trac #8964 Fixes Trac #8685 Fixes Trac #8629
* configure: Document CLANG, LLC, and OPT variablesBen Gamari2019-02-121-0/+2
|
* distrib/configure: Set RanlibCmdBen Gamari2018-11-231-0/+2
| | | | This fixes #15875.
* distrib: Remove mention of no-longer-existent make targetBen Gamari2018-10-031-3/+0
| | | | | | | | | | | | | | | Summary: `show-install-setup` used to be defined by `distrib/Makefile` which hasn't been used in a very long time and was removed from the tree in a1c008b30fc60a327afe098cf16bd14ca1e5e381. Reviewers: monoidal Reviewed By: monoidal Subscribers: rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5194
* Bump autoconf version bound to >= 2.69Ben Gamari2018-03-191-0/+3
| | | | | | | | | | Reviewers: hvr Subscribers: rwbarton, thomie, erikd, carter GHC Trac Issues: #14910 Differential Revision: https://phabricator.haskell.org/D4495
* configure: Various cleanupsJohn Ericson2018-01-151-28/+29
| | | | | | | | | | | | | | | | | Substitute RanlibCmd for consistency, and other configure cleanups that should have no effect The other commands are so substituted. Maybe we don't need ranlib at all, and the configure snippet can be removed all together, but that can always be done later. Reviewers: bgamari, hvr, angerman Reviewed By: bgamari, angerman Subscribers: rwbarton, thomie, erikd, carter Differential Revision: https://phabricator.haskell.org/D4286
* configure: Don't hard-code strip toolBen Gamari2017-09-251-0/+6
| | | | | | | | | | | | | | For reasons that I don't entirely understand we didn't previously detect `strip` using autoconf. This naturally broke during cross-compilation. How did this ever work? I have no idea. Test Plan: Try cross-compiling Reviewers: austin, hvr, angerman Subscribers: rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D4008