1. 25 Jan, 2020 1 commit
  2. 20 Jan, 2020 1 commit
  3. 13 Jan, 2020 1 commit
  4. 07 Jan, 2020 2 commits
    • Ben Gamari's avatar
      configure: Find Python3 for testsuite · 34bc02c7
      Ben Gamari authored
      In addition, we prefer the Mingw64 Python distribution on Windows due
      to #17483.
      34bc02c7
    • Ben Gamari's avatar
      configure: Only check GCC version if CC is GCC · 7aa4a061
      Ben Gamari authored
      Also refactor FP_GCC_EXTRA_FLAGS in a few ways:
      
       * We no longer support compilers which lack support for -fno-builtin
         and -fwrapv so remove the condition on GccVersion
       * These flags are only necessary when using the via-C backend
         so make them conditional on Unregisterised.
      
      Fixes #15742.
      7aa4a061
  5. 27 Dec, 2019 2 commits
  6. 29 Oct, 2019 2 commits
  7. 25 Oct, 2019 2 commits
  8. 22 Oct, 2019 2 commits
    • Stefan Schulze Frielinghaus's avatar
      Implement s390x LLVM backend. · fd8b666a
      Stefan Schulze Frielinghaus authored
      This patch adds support for the s390x architecture for the LLVM code
      generator. The patch includes a register mapping of STG registers onto
      s390x machine registers which enables a registerised build.
      fd8b666a
    • matthewbauer's avatar
      Replace freebsd-gnueabihf with freebsd · aa31ceaf
      matthewbauer authored
      FreeBSD does not support GNU libc, so it makes no sense to use this
      triple. Most likely previous builds were just using the FreeBSD libc
      instead of gnueabihf. To fix this, we should just use
      armv6-unknown-freebsd and armv7-unknown-freebsd triples. Note that
      both of these are actually "soft-float", not "hard-float". FreeBSD has
      never officially released hard-float arm32:
      
      https://wiki.freebsd.org/ARMTier1
      aa31ceaf
  9. 12 Oct, 2019 1 commit
    • John Ericson's avatar
      Simplify Configure in a few ways · c2290596
      John Ericson authored
       - No need to distinguish between gcc-llvm and clang. First of all,
         gcc-llvm is quite old and surely unmaintained by now. Second of all,
         none of the code actually care about that distinction!
      
         Now, it does make sense to consider C multiple frontends for LLVMs in
         the form of clang vs clang-cl (same clang, yes, but tweaked
         interface). But this is better handled in terms of "gccish vs
         mvscish" and "is LLVM", yielding 4 combinations. Therefore, I don't
         think it is useful saving the existing code for that.
      
       - Get the remaining CC_LLVM_BACKEND, and also TABLES_NEXT_TO_CODE in
         mk/config.h the normal way, rather than hacking it post-hoc. No point
         keeping these special cases around for now reason.
      
       - Get rid of hand-rolled `die` function and just use `AC_MSG_ERROR`.
      
       - Abstract check + flag override for unregisterised and tables next to
         code.
      
      Oh, and as part of the above I also renamed/combined some variables
      where it felt appropriate.
      
       - GccIsClang -> CcLlvmBackend. This is for `AC_SUBST`, like the other
       Camal case ones. It was never about gcc-llvm, or Apple's renamed clang,
       to be clear.
      
       - llvm_CC_FLAVOR -> CC_LLVM_BACKEND. This is for `AC_DEFINE`, like the
       other all-caps snake case ones. llvm_CC_FLAVOR was just silly
       indirection *and* an odd name to boot.
      c2290596
  10. 05 Oct, 2019 2 commits
  11. 28 Sep, 2019 1 commit
  12. 05 Sep, 2019 1 commit
    • John Ericson's avatar
      Make sure all boolean settings entries use `YES` / `NO` · b55ee979
      John Ericson authored
      Some where using `True` / `False`, a legacy of when they were in
      `Config.hs`. See #16914 / d238d306 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.
      b55ee979
  13. 04 Aug, 2019 1 commit
  14. 14 Jun, 2019 1 commit
    • Ben Gamari's avatar
      Maintain separate flags for C++ compiler invocations · 7bc5d6c6
      Ben Gamari authored
      Previously we would pass flags intended for the C compiler to the C++
      compiler (see #16738). This would cause, for instance, `-std=gnu99` to
      be passed to the C++ compiler, causing spurious test failures. Fix this
      by maintaining a separate set of flags for C++ compilation invocations.
      7bc5d6c6
  15. 12 Jun, 2019 1 commit
  16. 14 May, 2019 1 commit
  17. 01 May, 2019 1 commit
  18. 03 Apr, 2019 1 commit
    • Ben Gamari's avatar
      configure: Always use AC_LINK_ELSEIF when testing against assembler · 7b090b53
      Ben Gamari authored
      This fixes #16440, where the build system incorrectly concluded that the
      `.subsections_via_symbols` assembler directive was supported on a Linux
      system. This was caused by the fact that gcc was invoked with `-flto`;
      when so-configured gcc does not call the assembler but rather simply
      serialises its AST for compilation during the final link.
      
      This is described in Note [autoconf assembler checks and -flto].
      7b090b53
  19. 25 Mar, 2019 1 commit
    • Takenobu Tani's avatar
      Update Wiki URLs to point to GitLab · 3769e3a8
      Takenobu Tani authored
      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
      3769e3a8
  20. 15 Mar, 2019 1 commit
  21. 06 Mar, 2019 1 commit
    • Ben Gamari's avatar
      Rip out object splitting · 37f257af
      Ben Gamari authored
      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
      37f257af
  22. 28 Jan, 2019 1 commit
    • Alec Theriault's avatar
      Fix incorrectly named configure options · b89b6e71
      Alec Theriault authored
      Although we should use 'AC_ARG_ENABLE' for boolean flags, it also
      means options get named '--enable-*', not '--with-*'. This should
      unbreak the --with-intree-gmp option.
      b89b6e71
  23. 23 Jan, 2019 1 commit
    • Alec Theriault's avatar
      Hadrian: support in-tree GMP · efc95841
      Alec Theriault authored
      Summary:
      This adds top-level configure flags '--with-intree-gmp' and
      '--with-framework-preferred', both of which are especially relevant
      on MacOS.
      
      Besides gaining two new flags, Hadrian also had to be taught what to
      do with the 'framework' in .cabal files.
      
      Test Plan:
      ./boot && ./configure --with-intree-gmp && ./hadrian/build.sh
      ./boot && ./configure --with-gmp-framework-preferred && ./hadrian/build.sh # on macos
      
      Reviewers: carter, snowleopard, alpmestan, hvr, goldfire, bgamari
      
      Subscribers: rwbarton, erikd
      
      GHC Trac Issues: #16001
      
      Differential Revision: https://phabricator.haskell.org/D5417
      efc95841
  24. 01 Jan, 2019 1 commit
  25. 26 Dec, 2018 1 commit
    • Sergei Trofimovich's avatar
      aclocal.m4: drop obsolete -fno-stack-protector · 29ecb520
      Sergei Trofimovich authored
      Summary:
      Initially -fno-stack-protector was added for openbsd specifically for ghc-6.5:
          changeset:f638fdfe (2006)
      and later it was extended to cover osx:
          changeset:c2cd83e7 (2009)
      
      None of the reports hint at exact breakage. I guess both happened
      in -fvia-C mode where GHC's Evil Mangler had a chance to mangle
      stack canaries generated by fstack-protector.
      
      ghc has no evil mangler anymore and the change is not needed
      at least for C codegen.
      
      validated the patch on OpenBSD-6.4. No new failures compared to
      clean master branch.
      Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
      
      Test Plan: validated on OpenBSD
      
      Reviewers: bgamari
      
      Subscribers: rwbarton, erikd, carter
      
      GHC Trac Issues: #16046
      
      Differential Revision: https://phabricator.haskell.org/D5465
      29ecb520
  26. 13 Dec, 2018 1 commit
    • Ben Gamari's avatar
      configure: Disable LD_NO_GOLD logic when cross-compiling · 0d7fb471
      Ben Gamari authored
      This is generally terrible: see #16025. In short, we previously just blindly
      used an un-prefixed ld for LD_NO_GOLD. This is blatantly wrong. Ideally we would
      actually verify that ld.gold is indeed broken (by binutils #22266) before
      insisting on using another linker but sadly we cannot do so when cross-compiling
      since this would require running host code.
      
      For now we simply disable the LD_NO_GOLD logic when cross-compiling and hope
      that the user has verified that their ld.gold isn't affected by #22266.
      0d7fb471
  27. 22 Nov, 2018 1 commit
  28. 29 Oct, 2018 1 commit
  29. 15 Oct, 2018 1 commit
  30. 25 Sep, 2018 1 commit
  31. 20 Sep, 2018 1 commit
  32. 28 Jul, 2018 1 commit
  33. 17 Jul, 2018 1 commit
  34. 16 Jul, 2018 1 commit