Skip to content
Snippets Groups Projects
  1. Apr 02, 2015
    • Sergei Trofimovich's avatar
      libffi: backport noexecstack fix for x86/win32.S · 56ecec49
      Sergei Trofimovich authored
      
      Got detected by gentoo's QA preinstall hook:
       * RWX --- --- usr/lib/ghc-7.10.1/rts/libffi.so.6.0.2
       * RWX --- --- usr/lib/ghc-7.10.1/rts/libffi.so
       * RWX --- --- usr/lib/ghc-7.10.1/rts/libffi.so.6
       * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi.a:win32.o
       * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_p.a:win32.o
       * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_l.a:win32.o
       * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_debug.a:win32.o
       * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr.a:win32.o
       * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr_debug.a:win32.o
       * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr_l.a:win32.o
       * !WX --- --- usr/lib/ghc-7.10.1/rts/libCffi_thr_p.a:win32.o
      
      Signed-off-by: default avatarSergei Trofimovich <siarheit@google.com>
      
      Test Plan: built ghc-7.10.1 binary and checked stacks as NX
      
      Reviewers: rwbarton, hvr, austin
      
      Reviewed By: austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D764
      
      GHC Trac Issues: #10208
      
      (cherry picked from commit 47f821a1)
      56ecec49
  2. Mar 19, 2015
    • Erik de Castro Lopo's avatar
      Use the gold linker for linux/ARM and android/ARM targets. · a86fe8a4
      Erik de Castro Lopo authored and thoughtpolice's avatar thoughtpolice committed
      Fixes #8976 and #9873 by making use of the Binutils ld.gold
      linker explicit whenever the target is linux/ARM or android/ARM.
      This does not affect iOS where Apple provides its own linker.
      
      In order to achieve this, we need to add `-fuse-ld=gold` to
      the SettingsCCompilerLinkFlags setting and set
      SettingsLdCommand to `ld.gold` (or `${target}-ld.gold` when
      cross-compiling). In addition, simplifying the use of
      `$(CONF_GCC_LINKER_OPTS_STAGEn)`.
      
      This patch was tested by ensuring that the following worked
      as expected:
      
        * Native builds on linux/x86_64 (nothing changed).
        * Native builds on linux/arm (and uses the gold linker).
        * Linux to linux/arm cross compiles (and uses the cross
          gold linker).
      
      Contributions by Ben Gamari, Joachim Breitner and Reid Barton.
      
      Reviewers: nomeata, bgamari, austin, rwbarton
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D715
      
      GHC Trac Issues: #8976 #9873
      
      (cherry picked from commit 71fcc4c0)
      a86fe8a4
  3. Dec 27, 2014
  4. Oct 25, 2014
  5. Sep 21, 2014
  6. Oct 01, 2013
  7. Jul 30, 2013
  8. Jul 03, 2013
    • Ian Lynagh's avatar
      Change the ranlib detection · c548fec4
      Ian Lynagh authored
      On Windows, the ranlib in the path may not be the right ranlib (it may
      be the 32bit ranlib when we are making a Win64 compiler, or vice-versa).
      Therefore we can't leave it up to libffi to detect the right ranlib, but
      need to tell it which ranlib to use. This means that we need to find
      ranlib even if we don't actually need it ourselves.
      c548fec4
  9. Jun 22, 2013
  10. May 09, 2013
    • Ian Lynagh's avatar
      Fix the name of libffi · ba00c33b
      Ian Lynagh authored
      On Windows, we need to keep the DLL called libffi-6.dll (rather than
      libffi.dll) or Windows can't find it.
      ba00c33b
  11. Nov 30, 2012
  12. May 26, 2012
  13. May 04, 2012
  14. Jan 30, 2012
  15. Dec 08, 2011
    • PHO's avatar
      Resurrect UseLibFFIForAdjustors from bitrot. · 616b6697
      PHO authored
      * Pass -Irts/dist/build to the C preprocessor to expose libffi headers (ffi.h and ffitarget.h) to foreign import wrappers during the building process of GHC itself.
      * Install libffi headers into $(ghcheaderdir) just like any other C headers. Otherwise an installed GHC can't find them when it wants to compile foreign import wrappers.
      * Include libffi headers in the bindist for the same reason.
      616b6697
  16. Dec 02, 2011
    • Ian Lynagh's avatar
      Use touchy rather than touch when building on Windows · 2694bb74
      Ian Lynagh authored
      With Windows 7 in a vitrual box VM on OS X, some very odd things happen
      with dates and time stamps when SSHing into cygwin. e.g. here the
      "Change" time is in the past:
      
      $ date; touch foo; stat foo
      Fri Dec  2 16:58:07 GMTST 2011
        File: `foo'
        Size: 0               Blocks: 0          IO Block: 65536  regular
      empty file
      Device: 540aba0bh/1409989131d   Inode: 562949953592977  Links: 1
      Access: (0644/-rw-r--r--)  Uid: ( 1000/     ian)   Gid: (  513/    None)
      Access: 2011-12-02 16:58:07.414457900 +0000
      Modify: 2011-12-02 16:58:07.414457900 +0000
      Change: 2011-12-02 16:58:03.495141800 +0000
       Birth: 2011-12-02 16:57:57.731469900 +0000
      
      And if we copy such a file, then the copy is older (as determined by the
      "Modify" time) than the original:
      
      $ date; touch foo; stat foo; cp foo bar; stat bar
      Fri Dec  2 16:59:10 GMTST 2011
        File: `foo'
        Size: 0               Blocks: 0          IO Block: 65536  regular
      empty file
      Device: 540aba0bh/1409989131d   Inode: 1407374883725128  Links: 1
      Access: (0644/-rw-r--r--)  Uid: ( 1000/     ian)   Gid: (  513/    None)
      Access: 2011-12-02 16:59:10.118457900 +0000
      Modify: 2011-12-02 16:59:10.118457900 +0000
      Change: 2011-12-02 16:59:06.189477700 +0000
       Birth: 2011-12-02 16:57:57.731469900 +0000
        File: `bar'
        Size: 0               Blocks: 0          IO Block: 65536  regular
      empty file
      Device: 540aba0bh/1409989131d   Inode: 281474976882512  Links: 1
      Access: (0644/-rw-r--r--)  Uid: ( 1000/     ian)   Gid: (  513/    None)
      Access: 2011-12-02 16:59:06.394555800 +0000
      Modify: 2011-12-02 16:59:06.394555800 +0000
      Change: 2011-12-02 16:59:06.395532400 +0000
       Birth: 2011-12-02 16:58:40.921899600 +0000
      
      This means that make thinks that things are out of date when it
      shouldn't, so reinvokes itself repeatedly until the MAKE_RESTARTS
      infinite-recursion test triggers.
      
      The touchy program, like most other programs, creates files with both
      Modify and Change in the past, which is still a little odd, but is
      consistent, so doesn't break make.
      2694bb74
  17. Nov 30, 2011
  18. Nov 19, 2011
    • Ian Lynagh's avatar
      Improve the way we call "rm" in the build system; fixes trac #4916 · 80e9070c
      Ian Lynagh authored
      We avoid calling "rm -rf" with no file arguments; this fixes cleaning
      on Solaris, where that fails.
      
      We also check for suspicious arguments: anything containing "..",
      starting "/", or containing a "*" (you need to call $(wildcard ...)
      yourself now if you really want globbing). This should make things
      a little safer.
      80e9070c
  19. Nov 09, 2011
  20. Nov 08, 2011
  21. Oct 16, 2011
  22. Oct 14, 2011
  23. Oct 06, 2011
  24. Apr 23, 2011
  25. Apr 22, 2011
    • Ian Lynagh's avatar
      Tweak build rules for libffi · 0d729992
      Ian Lynagh authored
      We were doing
          echo $(HOSTPLATFORM) | sed 's/i[567]86/i486/g'
      but the only x86 value HOSTPLATFORM can have is i386.
      
      We now tell libffi its build platform again, but we now tell it it's
      $(BUILDPLATFORM) rather than $(HOSTPLATFORM).
      0d729992
    • Mark Lentczner's avatar
      no need to set --build when configuring libffi · 928f2cca
      Mark Lentczner authored
      The value --build was set to broke cross-compilier builds, and isn't
      needed for regular builds.
      928f2cca
  26. Apr 02, 2011
  27. Jan 24, 2011
  28. Jan 17, 2011
  29. Jan 18, 2011
  30. Jan 15, 2011
    • Ian Lynagh's avatar
      Fix libffi build rules · eb675b52
      Ian Lynagh authored
      Fixes a rare race when both libHSffi.a and libHSffi_p.a were being built
      at the same time:
      
      "cp" libffi/dist-install/build/libffi.a libffi/dist-install/build/libHSffi.a
      "cp" libffi/dist-install/build/libffi.a libffi/dist-install/build/libHSffi.a
      "cp" libffi/dist-install/build/libffi.so libffi/dist-install/build/libHSffi-ghc7.1.20110115.so
      cp: cannot create regular file `libffi/dist-install/build/libHSffi.a': File exists
      eb675b52
  31. Feb 08, 2011
  32. Oct 24, 2010
  33. Oct 17, 2010
  34. Sep 18, 2010
Loading