1. 06 Dec, 2015 1 commit
    • Herbert Valerio Riedel's avatar
      Tweak use of AC_USE_SYSTEM_EXTENSIONS · 8b422142
      Herbert Valerio Riedel authored
      This makes sure that `AC_USE_SYSTEM_EXTENSIONS` (which
      implies `AC_PROG_CC`) is called after the
      `AC_ARG_WITH([cc],,)` invocation, so that the proper
      CC setting is in scope. Otherwise this can break cross-compilation.
      This also needs to pull in a submodule update for `unix`
      This is a follow-up commit to
      which hopefully fixes #11168
  2. 04 Dec, 2015 1 commit
    • Herbert Valerio Riedel's avatar
      Use Autoconf's AC_USE_SYSTEM_EXTENSIONS · 7af29da0
      Herbert Valerio Riedel authored
      This takes care of setting feature test macros (i.e. let Autoconf decide when
      those can be set safely) to allow subsequent Autoconf tests to better detect
      available OS features.
      This also includes a submodule update of unix which enables the use of
      `AC_USE_SYSTEM_EXTENSIONS` in there as well.
      Specifically, this takes care of setting `_GNU_SOURCE` (which allows to remove
      two occurences where it's set manually) and `_ALL_SOURCE` (which fixes issues
      on AIX).
      See also
      for details.
      At some point we may want to reconsider the purpose of "rts/PosixSource.h" and
      rely more on Autoconf instead.
  3. 18 Feb, 2015 1 commit
    • PHO's avatar
      Do not clobber CPPFLAGS nor LDFLAGS, fixes #10093 · 9caf71a8
      PHO authored
      Summary: Append -I/-L flags to CPPFLAGS/LDFLAGS instead of clobbering.
      Test Plan: Install libiconv into /some/non-standard/path. Set CONF_GCC_LINKER_OPTS_STAGE{0,1,2} to -Wl,-rpath,/some/non-standard/path/lib. And then run ./configure with arguments --with-iconv-includes=/some/non-standard/path/include and --with-iconv-libraries=/some/non-standard/path/lib
      Reviewers: hvr, austin
      Reviewed By: austin
      Subscribers: thomie, PHO
      Differential Revision: https://phabricator.haskell.org/D663
      GHC Trac Issues: #10093
  4. 07 Oct, 2014 1 commit
    • Yuras's avatar
      configure in base: add msys to windows check · 1f924208
      Yuras authored
      I'm building ghc on windows x86 under msys2, and found that libraries/base/configure isn't able to detect msys as windows platform.
      I'm not 100% sure it is the right solution. Probably I have local misconfiguration somewhere. So feel free to reject.
      Test Plan: not necessary
      Reviewers: austin
      Reviewed By: austin
      Subscribers: simonmar, ezyang, carter, thomie
      Projects: #ghc
      Differential Revision: https://phabricator.haskell.org/D305
  5. 09 Dec, 2013 1 commit
  6. 15 Jun, 2013 1 commit
  7. 06 May, 2013 1 commit
    • AndreasVoellmy's avatar
      Update parallel IO manager to handle the invalid files in the same way as previous IO manager. · c5a4de9d
      AndreasVoellmy authored
      This patch affects the IO manager using kqueue. See issue #7773. If the kqueue backend cannot wait for events on a file, it will simply call the registered callback for the file immediately. This is the behavior of the previous IO manager. This is not ideal, but it is an initial step toward dealing with the problem properly. Ideally, we would use a non-kqueue mechanism for waiting on files (select seems most reliable) that cannot be waited on with kqueue.
  8. 14 Feb, 2013 1 commit
  9. 04 Oct, 2012 1 commit
  10. 16 Apr, 2012 1 commit
  11. 25 Sep, 2011 1 commit
  12. 11 Jul, 2011 1 commit
    • Simon Marlow's avatar
      Typeable overhaul (see #5275) · e0b63e02
      Simon Marlow authored
      Instances of Typeable used to call mkTyCon:
        mkTyCon :: String -> TyCon
      which internally kept a table mapping Strings to Ints, so that each
      TyCon could be given a unique Int for fast comparison.  This meant the
      String has to be unique across all types in the program.  However,
      derived instances of typeable used the qualified original
      name (e.g. "GHC.Types.Int") which is not necessarily unique, is
      non-portable, and exposes implementation details.
      The String passed to mkTyCon is returned by
        tyConString :: TyCon -> String
      which let the user get at this non-portable representation (also the
      Show instance returns this String).
      Now we store three Strings in TyCon.  The internal representation is
      data TyCon = TyCon {
         tyConHash    :: {-# UNPACK #-} !Fingerprint,
         tyConPackage :: String,
         tyConModule  :: String,
         tyConName    :: String
      (internal representations are now provided by Data.Typeable.Internal)
      The fields of TyCon are not exposed via the public API.  Together the
      three fields tyConPackage, tyConModule and tyConName uniquely identify
      a TyCon, and the Fingerprint is a hash of the concatenation of these
      three Strings (so no more internal cache to map strings to unique
      Ids). tyConString now returns the value of tyConName only, so is
      therefore portable (but the String returned does not uniquely
      identify the TyCon).
      I've measured the performance impact of this change, and performance
      seems to be uniformly better.  This should improve things for SYB in
      particular.  Also, the size of the code generated for deriving
      Typeable is less than half as much as before.
      == API changes ==
      === mkTyCon is DEPRECATED ==
      mkTyCon is used by some hand-written instances of Typeable.  It still
      works as before, but is deprecated in favour of...
      === Add mkTyCon3 ===
        mkTyCon3 :: String -> String -> String -> TyCon
      mkTyCon3 takes the package, module, and name of the TyCon respectively.
      Most users can just derive Typeable, there's no need to use mkTyCon3.
      In due course we can rename mkTyCon3 back to mkTyCon.
      === typeRepKey changed ===
      Previously we had
        typeRepKey :: TypeRep -> IO Int
      but since we don't assign unique Ints to TypeReps any more, this is
      difficult to implement.  Instead we provide an abstract key type which
      is an instance of Eq and Ord, and internally is implemented by the
        data TypeRepKey -- abstract, instance of Eq, Ord
        typeRepKey :: TypeRep -> IO TypeRepKey
      typeRepKey is still in the IO monad, because the Ord instance is
  13. 12 Jun, 2011 4 commits
  14. 11 Jun, 2011 2 commits
    • Ian Lynagh's avatar
      Remove wint_t configure test · 7c85f707
      Ian Lynagh authored
      We didn't actually use the result, and my Linux box doesn't have
    • altaic's avatar
      Add Haskell types for C types useconds_t and suseconds_t, which are... · b8e0de63
      altaic authored
      Add Haskell types for C types useconds_t and suseconds_t, which are respectively CUSeconds and CSUSeconds.
      The tv_usec field of struct timeval was incorrectly used as C type time_t; the actual C type is suseconds_t. On OS X, time_t is longer than suseconds_t, which caused garbage bits to be copied as reported in trac #4247 and #4970. This patch is part 1 of 4 to fix those tickets.
  15. 12 Mar, 2011 1 commit
    • Ian Lynagh's avatar
      Never use epoll_create1; fixes trac #5005 · 04f4b124
      Ian Lynagh authored
      There is little benefit to using epoll_create1 (especially if we still
      have the epoll_create code too), and it cuases problems if people build
      a GHC binary on one machine and try to use it on another.
  16. 10 Aug, 2010 1 commit
  17. 19 May, 2010 1 commit
  18. 26 Aug, 2009 1 commit
  19. 25 Jun, 2009 3 commits
  20. 24 Jun, 2009 1 commit
    • Ian Lynagh's avatar
      Fix iconv detection on OpenBSD · 6664b785
      Ian Lynagh authored
      Matthias Kilian discovered that iconv_open is #define'd to something
      else on OpenBSD, so the test needs to include the iconv header.
  21. 23 Jun, 2009 1 commit
  22. 15 Jun, 2009 1 commit
    • Ian Lynagh's avatar
      Remove AC_C_CONST · 28d13213
      Ian Lynagh authored
      It was breaking the build on Windows. The problem was that we included
      stdio.h which gave a prototype for some functions (e.g. remove), then
      the AC_C_CONST meant that we did
          /* Define to empty if `const' does not conform to ANSI C. */
          #define const /**/
      and then we included io.h which gave prototypes that, due to const
      being removed, conflicted with the earlier prototypes.
  23. 12 Jun, 2009 1 commit
  24. 09 Jul, 2008 1 commit
  25. 19 Aug, 2007 1 commit
  26. 29 May, 2007 1 commit
  27. 25 May, 2007 1 commit
  28. 23 May, 2007 1 commit
  29. 19 May, 2007 1 commit
  30. 15 Apr, 2007 1 commit
  31. 06 Apr, 2007 1 commit
  32. 25 Aug, 2006 1 commit
  33. 24 Aug, 2006 1 commit
  34. 15 Aug, 2006 1 commit