summaryrefslogtreecommitdiff
path: root/compiler/main/DriverPipeline.hs
Commit message (Collapse)AuthorAgeFilesLines
...
* Some alpha renamingIan Lynagh2012-10-161-29/+29
| | | | | Mostly d -> g (matching DynFlag -> GeneralFlag). Also renamed if* to when*, matching the Haskell if/when names
* When dynamic-by-default, don't use the GHCi linkerIan Lynagh2012-10-131-167/+6
| | | | We instead link objects into a temporary DLL and dlopen that
* Fix the recompilation check for dynamic librariesIan Lynagh2012-10-031-4/+6
| | | | | I've put mkSOName in HscTypes for now; I'm not sure what the best place for it is.
* Build the dynamic way by default on Linux/amd64Ian Lynagh2012-10-031-3/+4
| | | | | | | | | | | | | This required various build system changes to get the build to go through. In the inplace shell wrappers, we set LD_LIBRARY_PATH to allow programs to find their libraries. In the future, we might change the inplace tree to be the same shape as an installed tree instead. However, this would mean changing the way we do installation, as currently we use cabal's installation methods to install the libraries, but that only works if the libraries are under libraries/foo/dist-install/build/..., rather than in inplace/lib/...
* Add a flag to tell ghc to use $ORIGIN when linking program dynamicallyIan Lynagh2012-10-021-2/+12
|
* Remove some more CPPIan Lynagh2012-09-101-127/+136
|
* Move ldInputs into DynFlagsIan Lynagh2012-09-031-5/+4
|
* Make the ways dynamicIan Lynagh2012-09-031-7/+7
|
* Refactor the ways code a bitIan Lynagh2012-09-031-7/+5
| | | | | | | | We used to use a list lookup that couldn't fail. Now we just use functions. There were 3 overlapping entries for WayPar; I've commented out the ones that were shadowed for now.
* Emit a warning for -rtsopts -shared, as well as -rtsopts -no-hs-mainSimon Marlow2012-08-231-7/+13
| | | | | -rtsopts has no effect with -shared, so we should emit a warning. See #5373 and #7177.
* Don't pass -Wimplicit to the C++ compiler.Austin Seipp2012-08-131-1/+6
| | | | | | | Supresses an ugly warning from gcc 4.6+ saying this is a C/ObjC flag only. Signed-off-by: Austin Seipp <mad.one@gmail.com>
* More more ld-related settings into the settings fileIan Lynagh2012-08-051-10/+10
| | | | Related to #4862
* Remove LD_X; it's no longer usedIan Lynagh2012-08-051-8/+0
|
* Move linker flags into the settings file; fixes #4862Ian Lynagh2012-08-051-3/+1
| | | | They were getting baked into Config.hs before.
* Make -fPIC a dynamic flagIan Lynagh2012-07-161-3/+3
| | | | | | Hopefully I've kept the logic the same, and we now generate warnings if the user does -fno-PIC but we ignore them (e.g. because they're on OS X amd64).
* Make a picPOpts functionIan Lynagh2012-07-161-1/+1
| | | | | We now handle the preprocessor options the same way as the gcc options (picCCOpts).
* Simplify some codeIan Lynagh2012-06-141-2/+1
| | | | We were pointlessly going from String to SDoc and back again
* Pass DynFlags down to showSDocIan Lynagh2012-06-121-3/+3
|
* Pass DynFlags down to mk_err_msgIan Lynagh2012-06-121-3/+3
|
* Pass DynFlags to the LogActionIan Lynagh2012-06-111-1/+1
| | | | | | | A side-effect is that we can no longer use the LogAction in defaultErrorHandler, as we don't have DynFlags at that point. But all that defaultErrorHandler did is to print Strings as SevFatal, so now it takes a 'FatalMessager' instead.
* Remove some more stdout/stderr usesIan Lynagh2012-05-291-2/+3
|
* add support for ARM hard-float ABI (fixes #5914)Karel Gardas2012-04-271-4/+12
| | | | | | | This patch enhances Platform's ArchARM to include ARM ABI value. It also tweaks configure machinery to detect hard-float ABI and to set it wherever needed. Finally when hard-float ABI is in use, pass appropriate compiler option to the LLVM's llc. Fixes #5914.
* Get correct options when calling 'clang' inplace of 'as' (#5903)David Terei2012-03-061-5/+8
|
* Replace createDirectoryHierarchy with createDirectoryIfMissing TrueTakano Akio2012-02-271-3/+3
| | | | | | createDirectoryHierarchy consisted of an existence test followed by createDirectory, which failed if that directory was creted just after the test. createDirectoryifMissing does not have this problem.
* Compile link .note section separately from main.cNathan Howell2012-02-161-26/+31
| | | | | | Fixes gas errors when -g is enabled: Error: can't resolve `.debug-ghc-link-info' {.debug-ghc-link-info section} - `.Ltext0' {.text section}
* Only use TBAA when LLVM > 2.8. (#5782)David Terei2012-01-171-2/+8
|
* Switch to using the time package, rather than old-timeIan Lynagh2012-01-141-6/+6
|
* Add '-fllvm-tbaa' flag for controlling LLVM TBAA opt.David Terei2012-01-121-10/+17
|
* Add a class HasDynFlags(getDynFlags)Ian Lynagh2011-12-191-2/+2
| | | | | | | | We no longer have many separate, clashing getDynFlags functions I've given each GhcMonad its own HasDynFlags instance, rather than using UndecidableInstances to make a GhcMonad m => HasDynFlags m instance.
* Remove an old hack for bad FilePath behaviourIan Lynagh2011-12-191-9/+2
| | | | We now require GHC >= 7.0, which has the behaviour we want.
* Fixes for NetBSDIan Lynagh2011-11-251-1/+1
| | | | | Based on a patch from Arnaud Degroote <degroote@NetBSD.org> in trac #5480.
* Fix the filename passed to unlit (see comment for details)Simon Marlow2011-11-241-3/+14
|
* Add '-dno-llvm-mangler' flag for debugging purposesDavid Terei2011-11-221-2/+8
|
* Show LLVM mangler and code gen passes at v2David Terei2011-11-221-1/+1
|
* Tabs -> Spaces + cleaningDavid Terei2011-11-221-8/+0
|
* Enable '-split-objs' with llvm backendDavid Terei2011-11-221-3/+4
|
* Better document the driver pipeline.David Terei2011-11-221-15/+18
|
* Don't add the -x flag to ld when joining object filesSimon Marlow2011-11-221-3/+8
|
* Fix #5636: Use clang as assembler on OSX when LLVM >= 3.0David Terei2011-11-211-2/+16
| | | | | | LLVM doesn't support the OS X system assembler anymore so we must use their assembler through clang. Also improved error messages when various LLVM tools can't be run.
* The "Linking" message should go through compilationProgressMessageSimon Marlow2011-11-181-2/+2
| | | | | Currently it is appearing on stderr, whereas the rest of the messages from --make go to stdout, this change fixes that.
* Give a warning when -rtsopts/-with-rtsopts are used with -no-hs-mainSimon Marlow2011-11-161-0/+9
|
* Create parent directories when touching the object file (#5584)Simon Marlow2011-11-161-4/+8
|
* Generate the C main() function when linking a binary (fixes #5373)Simon Marlow2011-11-161-24/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* add comment noting when we can remove a hackSimon Marlow2011-11-111-3/+5
|
* Some CPP removalIan Lynagh2011-10-201-42/+59
|
* FIX BUILD on OS X 10.5: Check whether ld understands -no_compact_unwindThorkil Naur2011-10-191-1/+2
|
* Include -optc options in mkExtraCObj (#5528)Simon Marlow2011-10-131-2/+3
|
* Always define rtsOptsEnabled in the "extra object" when linkingIan Lynagh2011-10-111-7/+2
| | | | | | Now that we always link in an extra object, we may as well always define rtsOptsEnabled in it, rather than having a default value in rts/hooks/RtsOptsEnabled.c.
* Use -no_compact_unwind on OS X x86 (as well as x86_64)Ian Lynagh2011-10-061-4/+8
| | | | | Without it we get warnings like: ld: warning: could not create compact unwind for .LFB3: non-standard register 5 being saved in prolog
* Silence "text reloc" warnings on OS X / x86Ian Lynagh2011-10-061-0/+11
| | | | | | | | 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.