1. 29 Oct, 2018 1 commit
  2. 15 Oct, 2018 1 commit
  3. 25 Sep, 2018 1 commit
  4. 20 Sep, 2018 1 commit
  5. 28 Jul, 2018 1 commit
  6. 17 Jul, 2018 1 commit
  7. 16 Jul, 2018 1 commit
  8. 08 Jun, 2018 1 commit
  9. 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
  10. 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
  11. 27 Mar, 2018 1 commit
  12. 25 Mar, 2018 1 commit
  13. 19 Mar, 2018 1 commit
  14. 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
  15. 08 Mar, 2018 1 commit
  16. 02 Mar, 2018 1 commit
  17. 21 Feb, 2018 1 commit
  18. 15 Feb, 2018 1 commit
  19. 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
  20. 25 Dec, 2017 1 commit
  21. 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
  22. 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
  23. 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
  24. 26 Oct, 2017 1 commit
  25. 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
  26. 04 Oct, 2017 1 commit
  27. 29 Sep, 2017 1 commit
  28. 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
  29. 26 Sep, 2017 1 commit
  30. 25 Sep, 2017 2 commits
  31. 23 Sep, 2017 1 commit
  32. 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
  33. 13 Sep, 2017 1 commit
  34. 08 Sep, 2017 1 commit
  35. 06 Sep, 2017 1 commit
    • Moritz Angermann's avatar
      Clean up opt and llc · 22733532
      Moritz Angermann authored
      The LLVM backend shells out to LLVMs `opt` and `llc` tools. This clean
      up introduces a shared data structure to carry the arguments we pass to
      each tool so that corresponding flags are next to each other. It drops
      the hard coded data layouts in favor of using `-mtriple` and have LLVM
      infer them. Furthermore we add `clang` as a proper tool, so we don't
      rely on assuming that `clang` is called `clang` on the `PATH` when using
      `clang` as the assembler.  Finally this diff also changes the type of
      `optLevel` from `Int` to `Word`, as we do not have negative optimization
      levels.
      
      Reviewers: erikd, hvr, austin, rwbarton, bgamari, kavon
      
      Reviewed By: kavon
      
      Subscribers: michalt, Ericson2314, ryantrinkle, dfeuer, carter, simonpj,
      kavon, simonmar, thomie, erikd, snowleopard
      
      Differential Revision: https://phabricator.haskell.org/D3352
      22733532
  36. 29 Aug, 2017 1 commit
    • Tamar Christina's avatar
      Add gen-dll as replacement for dll-split · 5f6a8204
      Tamar Christina authored
      Summary:
      This tool can be used to generate dll's for any list of object files
      given to it. It will then repartition them automatically to fit within
      a dll and generates as many dll's as needed to do this. Cyclic dependencies
      between these generated dlls are handle automatically so there is no need
      to tell it how to partition.
      
      It is also a lot more general than `dll-split` as it is able to split any
      package not just `libGHC`. It also uses a trick using GNU style import libraries
      to hide the splitting from the rest of the pipeline. Which means come linking time
      you don't need to know which dll contains what symbol or how many split dlls were
      created.
      
      The import libraries are by default created with libtool. However since libtool is BFD
      based it is very slow. So if present and detected by configure the `genlib` tool
      from the msys2 project is used. This makes a difference of about ~45 minutes when compiling.
      
      To install `genlib` run `pacman -Sy mingw-w64-$(uname -m)-tools-git`.
      
      More detailed explaination of the process can be found here
      https://ghc.haskell.org/trac/ghc/wiki/WindowsDynamicLinking
      
      Test Plan: ./validate
      
      Reviewers: austin, hvr, bgamari, erikd, simonmar
      
      Reviewed By: bgamari
      
      Subscribers: snowleopard, rwbarton, thomie, erikd, #ghc_windows_task_force
      
      GHC Trac Issues: #5987
      
      Differential Revision: https://phabricator.haskell.org/D3883
      5f6a8204
  37. 28 Jul, 2017 1 commit