summaryrefslogtreecommitdiff
path: root/compiler/main/SysTools.lhs
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix #5636: Use clang as assembler on OSX when LLVM >= 3.0David Terei2011-11-211-3/+24
| | | | | | 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.
* Convert the HAVE_GNU_NONEXEC_STACK conditional into HaskellIan Lynagh2011-10-191-0/+2
|
* Add "have subsections via symbols" to the Platform typeIan Lynagh2011-10-191-1/+3
|
* Put the target platform in the settings fileIan Lynagh2011-10-191-0/+13
|
* With -v, we now print the commandlines that get run by askCcIan Lynagh2011-08-061-7/+13
|
* Fix #5289 (loading libstdc++.so in GHCi), and also fix some otherSimon Marlow2011-08-031-25/+59
| | | | | | | | | | | | | linking scenarios. We weren't searching for .a archives to satisfy -lfoo options on the GHCi command line, for example. I've tidied up the code in this module so that dealing with -l options on the command line is consistent with the handling of extra-libraries for packages. While I was here I moved some stuff out of Linker.hs that didn't seem to belong here: dataConInfoPtrToName (now in new module DebuggerUtils) and lessUnsafeCoerce (now in DynamicLoading, next to its only use)
* -optm is now deprecatedIan Lynagh2011-07-031-1/+0
|
* Warn if LLVM tools aren't installed (#5169)David Terei2011-06-291-1/+3
|
* Move more commands into the settings fileIan Lynagh2011-06-221-17/+7
|
* Move some Windows special-casing out of the compilerIan Lynagh2011-06-221-5/+10
| | | | | | This is a little cleaner, and removes a barrier to cross-compiling to/from Windows. There are a few more tools that still need to be handled in the same way.
* Fix some validation errorsDavid Terei2011-05-311-2/+1
|
* LLVM: Figure out llvm version we are callingDavid Terei2011-05-301-0/+40
|
* deprecate the -n option (#5180)Simon Marlow2011-05-251-6/+2
|
* Unicode fixes, taking into account PEP383 supportMax Bolingbroke2011-05-141-9/+10
|
* LLVM: Support LLVM 2.9 (#5103)David Terei2011-05-041-1/+1
| | | | | Instead of using the GNU As subsection feature on Linux/Windows for TNTC we now use the LLVM Mangler on all platforms.
* Add "C compiler flags" to settings fileIan Lynagh2011-04-291-6/+13
| | | | | | I've made cpp_args include gcc_args. It effectively didn't before, but seeing as gcc_args sometimes has -D flags in, I think doing so is the right thing to do.
* Rename "GCC command" to "C compiler command"Ian Lynagh2011-04-231-1/+1
| | | | | Makes it consistent with the existing "C compiler flags" field.
* Move gcc's and perl's location to the settings fileIan Lynagh2011-04-221-13/+15
| | | | They were hardcoded in Config.hs
* Move the opt* fields from DynFlags into the Settings typeIan Lynagh2011-04-221-1/+15
| | | | The pgm* fields are already in Settings
* Split off a Settings type from DynFlagsIan Lynagh2011-04-221-28/+25
|
* Rename "extra-gcc-opts" to "settings", and start generalising itIan Lynagh2011-04-211-6/+15
|
* tweak to cleanTempFilesExceptSimon Marlow2011-04-111-1/+1
|
* Force re-linking if the options have changed (#4451)Simon Marlow2011-04-081-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A common sequence of commands (at least for me) is this: $ ghc hello 1 of 1] Compiling Main ( hello.hs, hello.o ) Linking hello ... $ ./hello +RTS -s hello: Most RTS options are disabled. Link with -rtsopts to enable them. $ ghc hello -rtsopts $ grr, nothing happened. I could use -fforce-recomp, but if this was a large program I probably don't want to recompile it all again, so: $ rm hello removed `hello' $ ghc hello -rtsopts Linking hello ... $ ./hello +RTS -s ./hello +RTS -s Hello World! 51,264 bytes allocated in the heap 2,904 bytes copied during GC 43,808 bytes maximum residency (1 sample(s)) 17,632 bytes maximum slop etc. With this patch, GHC notices when the options have changed and forces a relink, so you don't need to rm the binary or use -fforce-recomp. This is done by adding the pertinent stuff to the binary in a special section called ".debug-ghc-link-info": $ readelf -p .debug-ghc-link-info ./hello String dump of section 'ghc-linker-opts': [ 0] (["-lHSbase-4.3.1.0","-lHSinteger-gmp-0.2.0.2","-lgmp","-lHSghc-prim-0.2.0.0","-lHSrts","-lm","-lrt","-ldl","-u","ghczmprim_GHCziTypes_Izh_static_info","-u","ghczmprim_GHCziTypes_Czh_static_info","-u","ghczmprim_GHCziTypes_Fzh_static_info","-u","ghczmprim_GHCziTypes_Dzh_static_info","-u","base_GHCziPtr_Ptr_static_info","-u","base_GHCziWord_Wzh_static_info","-u","base_GHCziInt_I8zh_static_info","-u","base_GHCziInt_I16zh_static_info","-u","base_GHCziInt_I32zh_static_info","-u","base_GHCziInt_I64zh_static_info","-u","base_GHCziWord_W8zh_static_info","-u","base_GHCziWord_W16zh_static_info","-u","base_GHCziWord_W32zh_static_info","-u","base_GHCziWord_W64zh_static_info","-u","base_GHCziStable_StablePtr_static_info","-u","ghczmprim_GHCziTypes_Izh_con_info","-u","ghczmprim_GHCziTypes_Czh_con_info","-u","ghczmprim_GHCziTypes_Fzh_con_info","-u","ghczmprim_GHCziTypes_Dzh_con_info","-u","base_GHCziPtr_Ptr_con_info","-u","base_GHCziPtr_FunPtr_con_info","-u","base_GHCziStable_StablePtr_con_info","-u","ghczmprim_GHCziTypes_False_closure","-u","ghczmprim_GHCziTypes_True_closure","-u","base_GHCziPack_unpackCString_closure","-u","base_GHCziIOziException_stackOverflow_closure","-u","base_GHCziIOziException_heapOverflow_closure","-u","base_ControlziExceptionziBase_nonTermination_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnMVar_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnSTM_closure","-u","base_ControlziExceptionziBase_nestedAtomically_closure","-u","base_GHCziWeak_runFinalizzerBatch_closure","-u","base_GHCziTopHandler_runIO_closure","-u","base_GHCziTopHandler_runNonIO_closure","-u","base_GHCziConcziIO_ensureIOManagerIsRunning_closure","-u","base_GHCziConcziSync_runSparks_closure","-u","base_GHCziConcziSignal_runHandlers_closure","-lHSffi"],Nothing,RtsOptsAll,False,[],[]) And GHC itself uses the readelf command to extract it when deciding whether to relink. The reason for the name ".debug-ghc-link-info" is that sections beginning with ".debug" are removed automatically by strip. This currently only works on Linux; Windows and OS X still have the old behaviour.
* Remove dead code, now that -fvia-c is a no-opIan Lynagh2011-04-041-13/+3
|
* Replace uses of the old catch function with the new oneIan Lynagh2010-12-181-5/+5
|
* Use showCommandForUser when showing tracing commandsIan Lynagh2010-09-281-2/+7
|
* Remove (most of) the FiniteMap wrapperIan Lynagh2010-09-141-5/+5
| | | | | | | | We still have insertList, insertListWith, deleteList which aren't in Data.Map, and foldRightWithKey which works around the fold(r)WithKey addition and deprecation.
* Remove LlvmAs phase as the llvm opt tool now handles this phaseDavid Terei2010-06-221-9/+1
| | | | | | | This phase originally invoked the llvm-as tool that turns a textual llvm assembly file into a bit code file for the rest of llvm to deal with. Now the llvm opt tool can do this itself, so we don't need to use llvm-as anymore.
* Add new LLVM code generator to GHC. (Version 2)David Terei2010-06-151-1/+27
| | | | | | | | | | | | | | | | | | This was done as part of an honours thesis at UNSW, the paper describing the work and results can be found at: http://www.cse.unsw.edu.au/~pls/thesis/davidt-thesis.pdf A Homepage for the backend can be found at: http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM Quick summary of performance is that for the 'nofib' benchmark suite, runtimes are within 5% slower than the NCG and generally better than the C code generator. For some code though, such as the DPH projects benchmark, the LLVM code generator outperforms the NCG and C code generator by about a 25% reduction in run times.
* Change another / to </> to avoid building paths containing \/Ian Lynagh2010-05-181-1/+1
| | | | This will hopefully fix #2889.
* Use </> rather than ++ "/"Ian Lynagh2010-03-251-1/+1
| | | | | | This stops us generating paths like c:\foo\/ghc460_0/ghc460_0.o which windres doesn't understand.
* Use the ghc-perl tarball on Windows, instead of the msys oneIan Lynagh2009-11-201-1/+2
|
* Make a mingw tree from mingw tarballsIan Lynagh2009-10-231-1/+1
|
* Fix invoking windres in a directory containing spacesIan Lynagh2009-09-271-3/+17
|
* Change the representation of the package databaseSimon Marlow2009-09-101-7/+1
| | | | | | | | | | | | | | | | | | | | | | | | | - the package DB is a directory containing one file per package instance (#723) - there is a binary cache of the database (#593, #2089) - the binary package is now a boot package - there is a new package, bin-package-db, containing the Binary instance of InstalledPackageInfo for the binary cache. Also included in this patch - Use colour in 'ghc-pkg list' to indicate broken or hidden packages Broken packages are red, hidden packages are Colour support comes from the terminfo package, and is only used when - not --simple-output - stdout is a TTY - the terminal type has colour capability - Fix the bug that 'ghc-pkg list --user' shows everything as broken
* Remove GHC's haskell98 dependencyIan Lynagh2009-07-241-1/+1
|
* Move showOpt into DynFlagsIan Lynagh2009-07-161-4/+0
|
* Remove unused importsIan Lynagh2009-07-071-1/+0
|
* Support for -fwarn-unused-do-bind and -fwarn-wrong-do-bind, as per #3263Max Bolingbroke2009-07-011-2/+2
|
* copyFileWithHeader: use binary HandlesSimon Marlow2009-06-151-6/+7
| | | | Fixes failure when Haddocking Data.Monoid in libraries/base
* GHC new build system megapatchIan Lynagh2009-04-261-142/+58
|
* Don't put a trailing / on the mingw include pathIan Lynagh2009-03-101-1/+1
|
* If we are given -Werror, then pass -Werror to cppIan Lynagh2009-02-261-2/+5
|
* SysTools no longer needs -fno-cseIan Lynagh2008-12-111-3/+0
|
* Make the lists of files and directories to be cleaned-up non-globalIan Lynagh2008-12-111-16/+16
| | | | | They still need to be stored in IORefs, as the exception handler needs to know what they all are.
* Perform case-insensitive matching of path components in getBaseDir on ↵Neil Mitchell2008-11-051-3/+4
| | | | Windows (Fixes bug 2743)
* Make the matching of the filename ghc.exe case insensitive, fixes bug #2603Neil Mitchell2008-09-161-1/+1
|
* When passing gcc -B, also tell it where the mingw include directory isIan Lynagh2008-09-181-2/+3
|
* Follow extensible exception changesIan Lynagh2008-07-301-6/+6
|
* update the comments about how we find $topdirSimon Marlow2008-07-251-33/+22
|