1. 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
  2. 01 Jan, 2019 1 commit
  3. 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
  4. 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
  5. 22 Nov, 2018 1 commit
  6. 29 Oct, 2018 1 commit
  7. 15 Oct, 2018 1 commit
  8. 25 Sep, 2018 1 commit
  9. 20 Sep, 2018 1 commit
  10. 28 Jul, 2018 1 commit
  11. 17 Jul, 2018 1 commit
  12. 16 Jul, 2018 1 commit
  13. 08 Jun, 2018 1 commit
  14. 19 Apr, 2018 1 commit
    • Ben Gamari's avatar
      configure: Use -Werror to check for existence of -no-pie · cbd73bbb
      Ben Gamari authored
      Clang throws a warning instead of an error when it is passed -no-pie,
      
          clang: warning: argument unused during compilation: '-nopie'
          [-Wunused-command-line-argument]
      
      Consequently configure concludes that it supports -no-pie. However, this
      will fail when used with -Werror. The solution is to simply use -Werror
      in the configure check.
      
      Thanks to @goldfire for reporting this.
      
      Reviewers: hvr
      
      Subscribers: thomie, carter, goldfire
      
      Differential Revision: https://phabricator.haskell.org/D4557
      cbd73bbb
  15. 17 Apr, 2018 1 commit
    • Alp Mestanogullari's avatar
      Introduce a $tooldir variable for nicer toolchain detection on Windows · 5d768464
      Alp Mestanogullari authored
      Summary:
      This patch affects several files that affect how we detect mingw and perl
      on Windows. The initial motivation is:
      
          https://github.com/snowleopard/hadrian/issues/564
      
      where, with Hadrian building relocatable (non-inplace) GHCs, the current
      detection mechanism falls short by e.g only trying $topdir/../mingw. But
      in Hadrian, for reasons given in that issue, we would need to store e.g mingw
      under $topdir/../../mingw except for binary distributions, where we want
      to follow the existing structure, in which case $topdir/../mingw is correct. So
      we need to support both, which is what this patch hopefully implements.
      
      Test Plan: ./validate
      
      Reviewers: Phyx, hvr, bgamari, erikd
      
      Reviewed By: Phyx
      
      Subscribers: snowleopard, thomie, carter
      
      Differential Revision: https://phabricator.haskell.org/D4598
      5d768464
  16. 27 Mar, 2018 1 commit
  17. 25 Mar, 2018 1 commit
  18. 19 Mar, 2018 1 commit
  19. 17 Mar, 2018 2 commits
    • Sergei Trofimovich's avatar
      aclocal.m4: add OSHurd (debian patch) · 0693b0b0
      Sergei Trofimovich authored
      ghc treats OSUnknown (and GNU/Hurd) as non-ELF target.
      This causes panic in native codegenerator when trying
      to build PIC code:
      
      ```
        ...
        -- all other platforms
        howToAccessLabel dflags _ _ _ _ _
              | not (positionIndependent dflags)
              = AccessDirectly
              | otherwise
              = panic "howToAccessLabel: PIC not defined for this platform"
      ```
      
      This change declares new 'OSHurd' and marks it as an
      ELF target. Fixes building ghc-stage2 on i686-unknown-gnu0.9.
      
      Patch provided by "Pino" via Samuel Thibault and taken from
      debian.
      Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
      0693b0b0
    • Sergei Trofimovich's avatar
      aclocal.m4: allow more GNU/Hurd tuples · 1522cf05
      Sergei Trofimovich authored
      Running plain ./configure fails on hurd because
      ./config.guess reports unrecognised tuple:
          $ ./config.guess
          i686-unknown-gnu0.9
      
      The change makes the following target configure:
      $ ./configure --target=i686-unknown-gnu0.9
      Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
      1522cf05
  20. 08 Mar, 2018 1 commit
  21. 02 Mar, 2018 1 commit
  22. 21 Feb, 2018 1 commit
  23. 15 Feb, 2018 1 commit
  24. 03 Feb, 2018 1 commit
    • Ben Gamari's avatar
      ghc-prim: Emulate C11 atomics when not available · 217e4170
      Ben Gamari authored
      GCC's __sync primitives apparently "usually" imply a full barrier,
      meaning they can be used to emulate the more precise C11 atomics albeit
      with a loss of efficiency. This restores compatibility with GCC 4.4.
      
      This partially reverts commit 59de2909.
      
      Test Plan: Validate on Centos
      
      Reviewers: hvr, simonmar, trommler
      
      Subscribers: rwbarton, thomie, erikd, carter
      
      GHC Trac Issues: #14244
      
      Differential Revision: https://phabricator.haskell.org/D4364
      217e4170
  25. 25 Dec, 2017 1 commit
  26. 21 Nov, 2017 1 commit
    • Ben Gamari's avatar
      configure: Fix ar probed flags · 66d17995
      Ben Gamari authored
      FP_PROG_AR_ARGS appears to be probing for what flags to use to build an
      archive with an index. However, none of the flags that it probed
      previously were valid as they all started with `c`, which isn't a mode
      character. This went unnoticed until someone attempted to use LLVM ar
      since we have a special case for gnu ar.
      
      Additionally, we work around a bug in llvm-ar 5.0 where ar will exit
      with code 0 even if it fails to parse the command line. Silliness.
      
      I believe these should rather all be mode `q` however I'll need to test
      this on a few platforms to be certain.
      
      Test Plan: Validate on OS X, BSD, and Linux with binutils and llvm ar
      
      Reviewers: hvr
      
      Subscribers: rwbarton, thomie, erikd
      
      Differential Revision: https://phabricator.haskell.org/D4214
      66d17995
  27. 15 Nov, 2017 1 commit
    • Moritz Angermann's avatar
      Adds rts/rts.cabal.in file · 5dea62fb
      Moritz Angermann authored
      This is in preparation for cabalification of the `rts`. To be actually
      able to parse this file, a rather recent Cabal is required. One after
      commit 357d49d of haskell/cabal. The relevant PR to support the new
      `asm-sources` and `cmm-sources` is haskell/cabal/pull/4857.
      
      Not that this does *not* allow cabal to build the RTS. It does however
      provide enough information such that cabal can `copy` and `register`
      the package properly in the package database, if all the build
      artifacts have been build properly.
      
      As such it does not require any custom handling of the `rts` package.
      As the rts as well as all the other packages built by the GHC built
      system are built outside of cabal anyway.
      
      Reviewers: bgamari, hvr, erikd, simonmar
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie, erikd
      
      Differential Revision: https://phabricator.haskell.org/D4174
      5dea62fb
  28. 06 Nov, 2017 1 commit
    • Peter Trommler's avatar
      Update autoconf test for gcc to require 4.7 and up · 59de2909
      Peter Trommler authored
      Fixing #14244 required the newer gcc atomic built-ins that are provided
      from 4.7 and up. This updates the test to check for minimum gcc version
      4.7.
      
      The version tests for 3.4 (!), 4.4, and 4.6 are no longer needed and can
      be removed. This makes the build system simpler.
      
      Test Plan: validate
      
      Reviewers: austin, bgamari, hvr, simonmar
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie, erikd
      
      Differential Revision: https://phabricator.haskell.org/D4165
      59de2909
  29. 26 Oct, 2017 1 commit
  30. 16 Oct, 2017 1 commit
    • Ben Gamari's avatar
      configure: Fix CC version check on Apple compilers · 71a42356
      Ben Gamari authored
      It seems that some Apple LLVM wrappers emit multiple messages containing
      the string "version", which we previously used to find the version
      number.  For instance,
      
          Configured with: --prefix=/Applications/Xcode.app/Contents/...
          Apple LLVM version 9.0.0 (clang-900.0.37)
          Target: x86_64-apple-darwin16.7.0
          Thread model: posix
          InstalledDir: /Applications/Xcode.app/Contents/Developer/...
          Found CUDA installation: /usr/local/cuda, version 8.0
      
      We now take care to only look at the first occurrence of this string.
      
      New `sed` command due to @merijn.
      
      Test Plan: Validate on all the compilers
      
      Reviewers: austin, hvr
      
      Subscribers: rwbarton, thomie, merijn, erikd
      
      Differential Revision: https://phabricator.haskell.org/D4069
      71a42356
  31. 04 Oct, 2017 1 commit
  32. 29 Sep, 2017 1 commit
  33. 27 Sep, 2017 2 commits
    • Ben Gamari's avatar
      configure: Make sure we try all possible linkers · a10729f0
      Ben Gamari authored
      Previously if we had both ld.lld and ld.gold installed but a gcc which
      didn't support -fuse-ld=lld we would fail when trying ld.lld and fall
      immediately back to plain ld. Now we will try ld.gold as well. This was
      brought to light by #14280, where using ld.bfd resulted in a broken
      stage2 compiler.
      
      Test Plan: Configure
      
      Reviewers: angerman, hvr, austin
      
      Reviewed By: angerman
      
      Subscribers: rwbarton, thomie, erikd
      
      GHC Trac Issues: #14280
      
      Differential Revision: https://phabricator.haskell.org/D4038
      a10729f0
    • Moritz Angermann's avatar
      GHC_LLVM_TARGET: Keep android OS · 07ddeaf7
      Moritz Angermann authored
      Summary:
      Our usual GHC_CONVERT_OS macro, will turn any andoird* into android.
      This however drops the essential androideabi part. As such for the
      GHC_LLVM_TARGET we only convert the VENDOR, not the OS.
      
      Reviewers: bgamari, austin, hvr
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie, erikd
      
      Differential Revision: https://phabricator.haskell.org/D4031
      07ddeaf7
  34. 26 Sep, 2017 1 commit
  35. 25 Sep, 2017 2 commits
  36. 23 Sep, 2017 1 commit
  37. 20 Sep, 2017 1 commit
    • Sergei Trofimovich's avatar
      aclocal.m4: call cygpath on mingw32 only · d7705f2f
      Sergei Trofimovich authored
      The only reason I noticed is warning these lines on linux:
      
      ```
      $ ./configure --target=sparc-unknown-linux-gnu
      ...
      ./configure: line 9708: cygpath: command not found
      ./configure: line 9708: ArCmd: command not found
      ```
      
      POSIX shell syntax requires no spaces in assignments.
      Fixed guarding condition while at it.
      Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
      d7705f2f