summaryrefslogtreecommitdiff
path: root/compiler/main/DriverPipeline.hs
Commit message (Collapse)AuthorAgeFilesLines
...
* iOS: generate archive files when compiling.Austin Seipp2013-08-141-5/+6
| | | | | | | | | | | When cross compiling to iOS, we generate archive files which are linked into the final executable. We already *did* generate archive files - just with the wrong suffix. Fixes #8125. Authored-by: Stephen Blackheath <...@blacksapphire.com> Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Rename doDynamicToo to dynamicTooMkDynamicDynFlagsIan Lynagh2013-07-301-2/+2
| | | | | Makes it look less likely that people will confuse what it is for (e.g. #8104).
* Disable executable stack for the linker note, fixing #703 (again)Edward Z. Yang2013-07-091-1/+11
| | | | Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
* Always have LLVM optimize globalsPeter Wortmann2013-07-051-2/+2
| | | | | | | | This pass is pretty cheap and eliminates the aliases generated by the LLVM backend. This in turn is required for dynamic linking to work correctly, as LLVM fails to properly attribute calls to aliased addresses. Signed-off-by: David Terei <davidterei@gmail.com>
* Fix many ASSERT uses under Clang.Austin Seipp2013-06-181-1/+1
| | | | | | Clang doesn't like whitespace between macro and arguments. Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Use assembler-with-cpp mode when running CPP.Austin Seipp2013-06-181-4/+8
| | | | | | | | | | | | | | | | This is needed because Clang is very strict about C99 macro rules, which dictate that '#' in a body must have a token immediately following it for string-ification. In practice we break this all the time, because we do very weird stuff like: #define FOOBAR(xyz) \ {-# SOME PRAGMA #-} \ baz :: (xyz) \ baz = ... where the leading '#' in in the macro body clearly breaks this rule. Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Handle -opt<blah> options more consistently (#7909)Simon Marlow2013-05-211-45/+19
| | | | | Now these are always added by the run<blah> functions in SysTools, so we never miss any out. Several cleanups resulted.
* Update a comment; spotted by Carter SchonwaldIan Lynagh2013-05-181-1/+1
|
* Don't use getPackageLinkOpts on iOS; fixes #7720.Ian Lynagh2013-04-271-1/+7
| | | | | On iOS, binaries are really static libraries, so we don't want to use flags like -lm when linking them.
* Remove extCoreName from DynFlagsIan Lynagh2013-04-261-25/+19
| | | | We now just pass the filename as an argument
* Remove DynFlags's hscOutName fieldIan Lynagh2013-04-261-8/+4
| | | | We now just pass the output filename as an argument instead
* Fix "-dynamic-too --make"; fixes #7864Ian Lynagh2013-04-261-26/+27
|
* We need to setModLocation in the HscOut phase, not the Hsc phaseIan Lynagh2013-04-261-2/+2
| | | | | The output location needs to be different for the vanilla and dynamic ways when doing -dynamic-too. Fixes dynamicToo003.
* Add support for OSX ld's -filelist flagIan Lynagh2013-03-181-0/+6
| | | | | Without it, when linking the split objects for Language.Haskell.TH.Syntax, the commandline was too long when listing all the files directly.
* Fix -dynamic-too: Outputt to the dyn file when output_spec is SpecificFileIan Lynagh2013-03-091-14/+13
|
* Change how -dynamic-too worksIan Lynagh2013-03-091-20/+11
| | | | | We now run the tail of the pipeline twice, rather than trying to do both ways in lockstep.
* Split the Hsc phase into two subphasesIan Lynagh2013-03-091-86/+118
| | | | | The goal is that the second subphase will be run twice when using -dynamic-too
* A couple more small refactoringsIan Lynagh2013-03-091-26/+24
|
* Fix #7722: iOS runtime loader quirk.David Terei2013-03-071-3/+6
| | | | Patch from Stephen Blackheath!
* Refactor the pipeline/hsc interactionIan Lynagh2013-03-071-107/+125
| | | | | It would probably still benefit from some tidying up, but it's now much more opaque, with the control flow easier to understand.
* Make codeOutput and friends return the filename that they have createdIan Lynagh2013-03-021-8/+19
|
* Simplify the definition of getOutputFilenameIan Lynagh2013-03-021-44/+41
|
* Don't redundantly set hscTarget to the same value it already wasIan Lynagh2013-03-021-7/+4
|
* Add OSiOS, and define and use platformUsesFrameworks; part of #7720Ian Lynagh2013-03-021-37/+28
|
* Small refactoring: Move the end-of-pipeline move into pipeLoopIan Lynagh2013-02-281-27/+31
|
* Small refactoring: Don't pass redundant stop_phase to runPipelineIan Lynagh2013-02-281-6/+6
|
* Small refactoring: Don't pass a redundant output_spec aroundIan Lynagh2013-02-281-6/+5
|
* Inline get_output_fnIan Lynagh2013-02-281-5/+2
| | | | It's now only used once
* Small refactoringIan Lynagh2013-02-281-5/+4
| | | | | pipeLoop now returns the final dflags, rather than having runPipeline' extract it from the end state.
* Some -dynamic-too fixesIan Lynagh2013-02-211-3/+15
|
* Define __GLASGOW_HASKELL_LLVM__ when using the LLVM back end.Geoffrey Mainland2013-02-011-0/+11
| | | | | | When compiling via LLVM, GHC now defines the CPP symbol __GLASGOW_HASKELL_LLVM__ to the version of LLVM used, e.g., __GLASGOW_HASKELL_LLVM__ is defined to be 30 for LLVM version 3.0.
* Use throwGhcExceptionIO rather than throwGhcException in main/DriverPipeline.hsIan Lynagh2013-01-301-4/+4
|
* Improve LLVM options for ARMv6Simon Marlow2013-01-251-3/+6
| | | | | | | - -float-abi=hard also works for arm v6 - pass -mattr=+vfp2 if we have VFP2 Submitted by: Karel Gardas <karel.gardas@centrum.cz>
* do not use -rpath-link linker option on Solaris.David Terei2013-01-241-1/+10
| | | | Patch from Karel Gardas <karel.gardas@centrum.cz>.
* Add support for nto-qnx (BlackBerry 10)Simon Marlow2013-01-231-1/+1
| | | | Submitted by: Stephen Paul Weber <singpolyma@singpolyma.net>
* Fix llvm backend when 32bit build on 64bit OSX. (#7617)David Terei2013-01-221-8/+8
|
* If -msse is specified, pass it to the LLVM backendJohan Tibell2013-01-171-1/+6
|
* Merge branch 'master' of https://github.com/ghc/ghcJohan Tibell2013-01-111-54/+81
|\
| * Make "happensBefore" take account of whether we are unregisterisedIan Lynagh2013-01-111-5/+6
| | | | | | | | | | If we are not unregisterised then we skip the HCc phase. Fixes #7563.
| * dynamic-too progressIan Lynagh2013-01-111-6/+28
| |
| * Refactoring: No functional changeIan Lynagh2013-01-101-49/+53
| | | | | | | | Moved some code from runPipeline' into runPipeline.
* | Add preprocessor defines when SSE is enabledJohan Tibell2013-01-101-0/+8
|/ | | | | | | | | | | This will add the following preprocessor defines when Haskell source files are compiled: * __SSE__ - If any version of SSE is enabled * __SSE2__ - If SSE2 or greater is enabled * __SSE4_2_ - If SSE4.2 is enabled Note that SSE2 is enabled by default on x86-64.
* Support the MergeStub phase when building with dynamic-tooIan Lynagh2013-01-101-0/+6
|
* Call gcc with '-x assembler-with-cpp' instead of '-x assembler'.Erik de Castro Lopo2012-12-161-1/+1
| | | | | | On x86 and powerpc, the second form above was ignoring all the CPP lines and hence trying to compile x86 asm on powerpc and powerpc asm on x86.
* Implement the slow mode of -dynamic-tooIan Lynagh2012-12-141-2/+23
| | | | | I'm not sure if making an entirely new HscEnv is too large a hammer, but it works for now.
* Add a commentIan Lynagh2012-12-121-1/+2
|
* Implement the -dynamic-too optimised path for the NCGIan Lynagh2012-12-111-4/+11
| | | | | | | | We don't yet have the slow path, for when we have to fall back to separate compilation. We also only currently handle the case qhere we're compiling Haskell code with the NCG.
* Use a MonadIO instance instead of an 'io' functionIan Lynagh2012-12-051-62/+66
|
* Replace all uses of ghcError with throwGhcException and purge ghcError.Erik de Castro Lopo2012-11-301-3/+3
|
* Fix building on Sparc/Solaris with non-GNU linker; fixes #5407Ian Lynagh2012-11-231-1/+3
| | | | Patch from maeder.