summaryrefslogtreecommitdiff
path: root/settings.in
Commit message (Collapse)AuthorAgeFilesLines
* Use ar for -staticlibMoritz Angermann2017-09-131-0/+1
| | | | | | | | | | | | | | | | Hopefully we can get rid of libtool, by using ar only Depends on: D3579 Test Plan: validate Reviewers: austin, hvr, bgamari, erikd Reviewed By: bgamari Subscribers: rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D3721
* Clean up opt and llcMoritz Angermann2017-09-061-1/+2
| | | | | | | | | | | | | | | | | | | | | The LLVM backend shells out to LLVMs `opt` and `llc` tools. This clean up introduces a shared data structure to carry the arguments we pass to each tool so that corresponding flags are next to each other. It drops the hard coded data layouts in favor of using `-mtriple` and have LLVM infer them. Furthermore we add `clang` as a proper tool, so we don't rely on assuming that `clang` is called `clang` on the `PATH` when using `clang` as the assembler. Finally this diff also changes the type of `optLevel` from `Int` to `Word`, as we do not have negative optimization levels. Reviewers: erikd, hvr, austin, rwbarton, bgamari, kavon Reviewed By: kavon Subscribers: michalt, Ericson2314, ryantrinkle, dfeuer, carter, simonpj, kavon, simonmar, thomie, erikd, snowleopard Differential Revision: https://phabricator.haskell.org/D3352
* distrib/configure: Fail if we can't detect machine's word sizeBen Gamari2017-07-121-1/+1
| | | | | | | | | | | | | | | | | | This is a sure sign that something is terribly wrong. We also now verify that the word size that the binary distribution expects matches the word size produced by the local target toolchain. Finally we rename WordSize to TargetWordSize, since non-host/target qualified quantities are terribly confusing. Reviewers: austin, hvr, Phyx Reviewed By: Phyx Subscribers: Phyx, rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D3711
* Testsuite: Skip failing tests on PowerPC 64-bitPeter Trommler2016-12-271-0/+1
| | | | | | | | | | | | | | | | | | | The Power ISA says the result of a division by zero is undefined. So ignore stdout on PowerPC 64-bit systems. Disable ext-interp tests on 64-bit PowerPC. We don't have support for PowerPC 64-bit ELF in the RTS linker, which is needed for the external interpreter. Test Plan: ./validate Reviewers: austin, simonmar, hvr, erikd, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2782
* Pass -no-pie to GCCBen Gamari2016-11-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Certain distributions (e.g. Debian and Ubuntu) have enabled PIE be default in their GCC packaging. This breaks our abuse of GCC as a linker which requires that we pass -Wl,-r, which is incompatible with PIE (since the former implies that we are generating a relocatable object file and the latter an executable). This is a second attempt at D2691. This attempt constrasts with D2691 in that it preserves the "does gcc support -no-pie" flag in settings, allowing this to be reconfigured by `configure` during installation of a binary distribution. Thanks for @rwbarton for drawing attention to this issue. Test Plan: Validate Reviewers: austin, hvr, erikd Reviewed By: erikd Subscribers: thomie, rwbarton, erikd Differential Revision: https://phabricator.haskell.org/D2693 GHC Trac Issues: #12759
* LlvmCodeGen cross-compiling fixes (#9895)Erik de Castro Lopo2014-12-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: * Throw an error when cross-compiling without a target definition. When cross compiling via LLVM, a target 'datalayout' and 'triple' must be defined or LLVM will generate code for the compile host instead of the compile target. * Add aarch64-unknown-linux-gnu target. The datalayout and triple lines were found by using clang to compile a small C program and -emit-llvm to get the LLVM IR output. Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com> Test Plan: validate Reviewers: rwbarton, carter, hvr, bgamari, austin Reviewed By: austin Subscribers: carter, thomie, garious Differential Revision: https://phabricator.haskell.org/D585 GHC Trac Issues: #9895
* Control CPP through settings file (#8683)Carter Tazio Schonwald2014-07-021-0/+2
| | | | | | | | | | | | | | | | Summary: Allow the CPP program and flag choices for GHC be configured via the the ghc settings file Test Plan: ran validate yesterday Reviewers: hvr, austin, mzero, simonmar Reviewed By: austin, mzero, simonmar Subscribers: mzero, simonmar, relrod, carter Differential Revision: https://phabricator.haskell.org/D26
* Rework how iOS does linking (#8127)Austin Seipp2013-08-281-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | iOS has some particular constraints about how applications can be built: * We must generate a static library (.a) since XCode does the final link. * We need to carefully give the right set of arguments to libtool in the case we're generating an archive. * Dynamic linking isn't supported. * It can only be done on OS X. This patch cleans up all of the above. We add a new flag `-staticlib` (only supported on Darwin) that allows us to produce archive files using libtool, and a -pgmlibtool flag to control which 'libtool' executable to use. This fixes #8127. I believe this is the last piece missing from the iOS cross compiler. Authored-by: Luke Iannini <lukexi@me.com> Authored-by: Maxwell Swadling <maxwellswadling@gmail.com> Authored-by: Stephen Blackheath <...@blacksapphire.com> Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Add support for OSX ld's -filelist flagIan Lynagh2013-03-181-0/+1
| | | | | Without it, when linking the split objects for Language.Haskell.TH.Syntax, the commandline was too long when listing all the files directly.
* Split SettingsCCompilerFlags into non-link and link portionsGabor Greif2013-02-251-0/+1
| | | | | | | | | This fixes certain older GCCs which do not accept link options when assembling or compiling: ppc_85xx-gcc: --hash-size=31: linker input file unused because linking not done ppc_85xx-gcc: --reduce-memory-overheads: linker input file unused because linking not done and diagnose this to stderr.
* Tidy up cross-compilingSimon Marlow2013-01-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have two cases: 1. building a cross-compiler 2. compiling GHC to run on a foreign platform These two are done with almost the same setup: (1) is the stage 1 compiler, and (2) is the stage 2 compiler, when CrossCompiling=YES. The only difference between (1) and (2) is that you if you set up the build for (1), then it stops before stage 2 and you can 'make install' to install stage 1. Unfortunately, (2) didn't work, and the build system code needed some tidying up. Change to the way the build is set up: Before ------ To build a cross-compiler: ./configure --target=<..> To compile a foreign GHC: ./configure --host=<..> --target=<..> Now --- To build a cross-compiler: ./configure --target=<..> And set "Stage1Only=YES" in mk/build.mk To compile a foreign GHC: ./configure --target=<..>
* Add "Unregisterised" as a field in the settings fileIan Lynagh2012-08-071-0/+1
| | | | | | To explicitly choose whether you want an unregisterised build you now need to use the "--enable-unregisterised"/"--disable-unregisterised" configure flags.
* More more ld-related settings into the settings fileIan Lynagh2012-08-051-0/+3
| | | | Related to #4862
* Move linker flags into the settings file; fixes #4862Ian Lynagh2012-08-051-0/+1
| | | | They were getting baked into Config.hs before.
* Define "ar command" correctly in settings file on WindowsIan Lynagh2012-01-141-1/+1
| | | | | We want to use the inplace ar, rather than whichever ar the machine that we build on happens to have.
* Enable llvm tool paths to be set with ./configureDavid Terei2012-01-101-1/+3
| | | | Patch from Karel Gardas!
* Store the word size as determined by configure, in the settings file (#5735)Simon Marlow2012-01-041-0/+1
| | | | | Now target32bit works for all targets without any manual intervention, as it should do. #5735 was a portability regression.
* Detect cases where as(1) doesn't recognise .ident directive (#5408)PHO2011-12-081-0/+1
| | | | .ident directives are usually ignored by as(1), and in some cases (like Darwin/PPC) they even raise an error.
* Convert the HAVE_GNU_NONEXEC_STACK conditional into HaskellIan Lynagh2011-10-191-0/+1
|
* Add "have subsections via symbols" to the Platform typeIan Lynagh2011-10-191-1/+2
|
* Put the target platform in the settings fileIan Lynagh2011-10-191-1/+4
|
* Move more commands into the settings fileIan Lynagh2011-06-221-1/+4
|
* Move some Windows special-casing out of the compilerIan Lynagh2011-06-221-2/+2
| | | | | | 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.
* Add ar location and details to settings fileIan Lynagh2011-04-291-0/+3
|
* Add "C compiler flags" to settings fileIan Lynagh2011-04-291-0/+1
| | | | | | 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.
* "perl command" should be perl, not gcc!Ian Lynagh2011-04-231-1/+1
|
* 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-1/+3
| | | | They were hardcoded in Config.hs
* Rename "extra-gcc-opts" to "settings", and start generalising itIan Lynagh2011-04-211-0/+2