1. 19 Dec, 2011 2 commits
  2. 25 Nov, 2011 1 commit
  3. 24 Nov, 2011 1 commit
  4. 22 Nov, 2011 6 commits
  5. 21 Nov, 2011 1 commit
  6. 18 Nov, 2011 1 commit
  7. 16 Nov, 2011 3 commits
    • Simon Marlow's avatar
    • Simon Marlow's avatar
    • Simon Marlow's avatar
      Generate the C main() function when linking a binary (fixes #5373) · 1df28a80
      Simon Marlow authored
      Rather than have main() be statically compiled as part of the RTS, we
      now generate it into the tiny C file that we compile when linking a
      binary.
      
      The main motivation is that we want to pass the settings for the
      -rtsotps and -with-rtsopts flags into the RTS, rather than relying on
      fragile linking semantics to override the defaults, which don't work
      with DLLs on Windows (#5373).  In order to do this, we need to extend
      the API for initialising the RTS, so now we have:
      
      void hs_init_ghc (int *argc, char **argv[],   // program arguments
                        RtsConfig rts_config);      // RTS configuration
      
      hs_init_ghc() can optionally be used instead of hs_init(), and allows
      passing in configuration options for the RTS.  RtsConfig is a struct,
      which currently has two fields:
      
      typedef struct {
          RtsOptsEnabledEnum rts_opts_enabled;
          const char *rts_opts;
      } RtsConfig;
      
      but might have more in the future.  There is a default value for the
      struct, defaultRtsConfig, the idea being that you start with this and
      override individual fields as necessary.
      
      In fact, main() was in a separate static library, libHSrtsmain.a.
      That's now gone.
      1df28a80
  8. 11 Nov, 2011 1 commit
  9. 20 Oct, 2011 1 commit
  10. 19 Oct, 2011 1 commit
  11. 13 Oct, 2011 1 commit
  12. 11 Oct, 2011 1 commit
  13. 06 Oct, 2011 2 commits
    • Ian Lynagh's avatar
      Use -no_compact_unwind on OS X x86 (as well as x86_64) · be6e231c
      Ian Lynagh authored
      Without it we get warnings like:
          ld: warning: could not create compact unwind for .LFB3: non-standard register 5 being saved in prolog
      be6e231c
    • Ian Lynagh's avatar
      Silence "text reloc" warnings on OS X / x86 · 20705dff
      Ian Lynagh authored
      ld gives loads of warnings like:
          ld: warning: text reloc in _base_GHCziArr_unsafeArray_info to _base_GHCziArr_unsafeArray_closure
      when linking any program. We're not sure whether this is something we
      ought to fix, but for now we use the -Wl,-read_only_relocs,suppress flag
      to silence them.
      20705dff
  14. 21 Aug, 2011 1 commit
  15. 10 Aug, 2011 2 commits
  16. 06 Aug, 2011 1 commit
  17. 03 Aug, 2011 1 commit
  18. 27 Jul, 2011 1 commit
  19. 20 Jul, 2011 1 commit
    • Simon Marlow's avatar
      Fix #481: use a safe recompilation check when Template Haskell is · 48bc81ad
      Simon Marlow authored
      being used.
      
      We now track whether a module used any TH splices in the ModIface (and
      at compile time in the TcGblEnv and ModGuts).  If a module used TH
      splices last time it was compiled, then we ignore the results of the
      normal recompilation check and recompile anyway, *unless* the module
      is "stable" - that is, none of its dependencies (direct or indirect)
      have changed.  The stability test is pretty important - otherwise ghc
      --make would always recompile TH modules even if nothing at all had
      changed, but it does require some extra plumbing to get this
      information from GhcMake into HscMain.
      
      test in driver/recomp009
      48bc81ad
  20. 15 Jul, 2011 2 commits
    • Ian Lynagh's avatar
      Remove more defaultTargetPlatform uses · ec7b7512
      Ian Lynagh authored
      ec7b7512
    • Sergei Trofimovich's avatar
      An example of failure: · 3b322660
      Sergei Trofimovich authored
      
      "inplace/bin/ghc-stage1"   -H32m -O    -package-name base-4.4.0.0 -hide-all-packages -i -ilibraries/base/. -ilibraries/base/dist-install/build -ilibraries/base/dist-install/build/autogen -Ilibraries/base/dist-install/build -Ilibraries/base/dist-install/build/autogen -Ilibraries/base/include   -optP-DOPTIMISE_INTEGER_GCD_LCM -optP-include -optPlibraries/base/dist-install/build/autogen/cabal_macros.h -package ghc-prim-0.2.0.0 -package integer-gmp-0.3.0.0 -package rts-1.0 -split-objs -package-name base -XHaskell98 -XCPP -O2 -no-user-package-conf -rtsopts     -odir libraries/base/dist-install/build -hidir libraries/base/dist-install/build -stubdir libraries/base/dist-install/build -hisuf hi -osuf  o -hcsuf hc -c libraries/base/./GHC/Int.hs -o libraries/base/dist-install/build/GHC/Int.o
      /usr/lib/gcc/sparc-unknown-linux-gnu/4.5.2/../../../../sparc-unknown-linux-gnu/bin/ld: --relax and -r may not be used together
      collect2: ld returned 1 exit status
      make[1]: *** [libraries/base/dist-install/build/GHC/Int.o] Error 1
      
      Or with '-v' param:
      /usr/bin/gcc -fno-stack-protector -nostdlib -nodefaultlibs -Wl,-r -Wl,--build-id=none -Wl,-x -o libraries/base/dist-install/build/GHC/Int.o /tmp/ghc45126_0/ghc45126_0.ldscript
      /usr/lib/gcc/sparc-unknown-linux-gnu/4.5.2/../../../../sparc-unknown-linux-gnu/bin/ld: --relax and -r may not be used together
      
      On SPARC gcc-4.5.2 has -mrelax in it's default specs, so we explicitly pass --no-relax
      for ld to make sure gcc's default does not affect us.
      Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
      3b322660
  21. 01 Jul, 2011 1 commit
  22. 30 Jun, 2011 1 commit
  23. 27 Jun, 2011 1 commit
  24. 18 Jun, 2011 2 commits
    • dterei's avatar
      SafeHaskell: Transitively check safety when compiling a module. · 77d85a4a
      dterei authored
      While we previously checked the safety of safe imported modules we
      didn't do this check transitively. This can be a problem when we depend
      on a trustworthy module in a package that is no longer trusted, so we
      should fail compilation. We already stored in an interface file the
      transitive list of packages a module depends on. Now we extend that list
      to include a flag saying if we depend on that package being trusted as
      well.
      77d85a4a
    • dterei's avatar
      SafeHaskell: Disable certain ghc extensions in Safe. · 45c64c1d
      dterei authored
      This patch disables the use of some GHC extensions in
      Safe mode and also the use of certain flags. Some
      are disabled completely while others are only allowed
      on the command line and not in source PRAGMAS.
      
      We also check that Safe imports are indeed importing
      a Safe or Trustworthy module.
      45c64c1d
  25. 31 May, 2011 1 commit
  26. 08 May, 2011 1 commit
  27. 07 May, 2011 2 commits