summaryrefslogtreecommitdiff
path: root/distrib/configure.ac.in
Commit message (Collapse)AuthorAgeFilesLines
* Fix detection and use of `USE_LIBDW`Erik de Castro Lopo2016-06-011-2/+2
| | | | | | | | | | | | Test Plan: Configure/build with and without --enable-libdw Reviewers: trofi, hvr, austin, simonmar, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2276
* Rework CC/CC_STAGE0 handling in `configure.ac`Herbert Valerio Riedel2016-04-161-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Rather than using the non-standard/idiomatic `--with-{gcc,clang}=...` scheme use the `CC=...` style scheme. The basic idea is to have Autoconf's CC/CFLAG/CPPFLAG apply to stage{1,2,3}, while having a separate _STAGE0 set of env-vars denote the bootstrap-toolchain flags/programs. This should be simpler, less confusing, and somewhat more in line with Autoconf's idioms (allowing us to reuse more of Autoconf rather than (re)inventing our own confusing non-standard m4 macros to do stuff that Autoconf could almost do already for us) Morever, expose CC_STAGE0 as a so-called "precious" variable. So now we can better control which bootstrapping gcc is used (by default the one used by the stage0 ghc, unless CC_STAGE0 is overriden) ``` Some influential environment variables: CC_STAGE0 C compiler command (bootstrap) CC C compiler command CFLAGS C compiler flags ... Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. ``` Test Plan: I've tested that cross-compiling with `--target=powerpc-linux-gnu` still works, and tried a few variants of settting `CC=` and `CC_STAGE0=`; `./validate` passed as well Reviewers: erikd, austin, bgamari, simonmar Reviewed By: simonmar Subscribers: Phyx, thomie Differential Revision: https://phabricator.haskell.org/D2078
* libdw: More precise version checkBen Gamari2016-04-161-2/+8
| | | | | | | | | | | | Test Plan: Try configure in an environment with older `libdw` Reviewers: hvr, austin Subscribers: thomie, erikd Differential Revision: https://phabricator.haskell.org/D2103 GHC Trac Issues: #11820
* Autoconf: detect and set CFLAGS/CPPFLAGS needed for C99 modeHerbert Valerio Riedel2016-03-281-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is the first phase of addressing #11757 which aims to make C99 support a base-line requirement for GHC and clean up the code-base to use C99 facilities when sensible. This patch exploits the logic/heuristic used by `AC_PROG_CC_C99` to determine the flags needed in case the C compiler isn't able to compile C99 code in its current mode. We can't use `AC_PROG_CC_C99` directly though because GHC's build-system expects CC to contain a filename without any flags, while `AC_PROG_CC_C99` would e.g. result in `CC="gcc -std=gnu99"`. Morever, we support different `CC`s for stage0/1/2, so we need a version of `AC_PROG_CC_C99` for which we can specify the `CC`/`CFLAGS` variables to operate on. This is what `FP_SET_CFLAGS_C99` does. Note that Clang has been defaulting to C99+ for a long time, while GCC 5 defaults to C99+ as well. So this has mostly an affect on older GCCs versions prior to 5.0 and possibly compilers other than GCC/Clang (which are not officially supported for building GHC anyway). Reviewers: kgardas, erikd, bgamari, austin Reviewed By: erikd Differential Revision: https://phabricator.haskell.org/D2045
* Build system: fix `pwd` issues on WindowsThomas Miedema2016-01-081-2/+3
| | | | | | | | | | | | | Some parts of the build system require that paths are what msys2 calls "mixed style": * forwards slashes * absolute paths starting with a drive letter followed by a colon (e.g. "C:") The removal of ghc-pwd in 4c56ad3 changed $(TOP) from mixed style to unix style, resulting in a broken Windows build for some. Differential Revision: https://phabricator.haskell.org/D1752
* Build system: delete ghc-pwdThomas Miedema2016-01-041-1/+0
| | | | | | | | | | | | | | | | On Windows, with msys2, `pwd` works (as can be seen by the use of `pwd` that slipped into the validate script), so there is really no need for `ghc-pwd` anymore. Test Plan: try it Reviewers: austin, bgamari, Phyx Reviewed By: Phyx Subscribers: Phyx, erikd Differential Revision: https://phabricator.haskell.org/D1731
* Libdw: Add libdw-based stack unwindingBen Gamari2015-10-171-0/+5
| | | | | | | | | | | | | | | | | | | | | This adds basic support to the RTS for DWARF-assisted unwinding of the Haskell and C stack via libdw. This only adds the infrastructure; consumers of this functionality will be introduced in future diffs. Currently we are carrying the initial register collection code in Libdw.c but this will eventually make its way upstream to libdw. Test Plan: See future patches Reviewers: Tarrasch, scpmw, austin, simonmar Reviewed By: austin, simonmar Subscribers: simonmar, thomie, erikd Differential Revision: https://phabricator.haskell.org/D1196 GHC Trac Issues: #10656
* configure : LLVM and LD detections improvements (#10234).Erik de Castro Lopo2015-04-111-2/+19
| | | | | | | | | | | | | | | | | | | | * distrib/configure.ac.in : Detect correct version of LLVM tools as was done for the top level configure.ac in 42448e3757. * aclocal.m4 : Add a FIND_LD macro that can be used in both configure scripts. * Use new FIND_LD macro in both configure scripts. Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com> Test Plan: validate on amd64-linux and armhf-linux. Reviewers: rwbarton, austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D828 GHC Trac Issues: #10234
* Remove RAWCPP_FLAGS (Task #9094)Thomas Miedema2015-02-171-0/+2
| | | | | | | | | | | | Reviewers: carter, austin Reviewed By: austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D648 GHC Trac Issues: #9094
* workaround Solaris 11 GNU C CPP issue by using GNU C 3.4 as CPPKarel Gardas2014-08-171-58/+2
| | | | | | | | | | | | | | | | | | | | | | | Summary: Solaris 11 distributed GNU C 4.5.x is configured in a way that its CPP is not working well while invoked from GHC. GHC runs it with -x assembler-with-cpp and in this particular configuration GNU C CPP does not provide any line-markers so GHC's output of errors or warnings is confusing since it points to preprocessed file in /tmp and not to the original Haskell file. Fortunately old GNU C 3.4.x is still provided by the OS and when installed it'll be used automatically as GHC CPP which is whole logic of this patch. So although we use modern GCC as a C compiler and assembler we use old GCC as a C preprocessor. Test Plan: validate Reviewers: austin Reviewed By: austin Subscribers: phaskell, simonmar, relrod, ezyang, carter Differential Revision: https://phabricator.haskell.org/D151
* Control CPP through settings file (#8683)Carter Tazio Schonwald2014-07-021-0/+59
| | | | | | | | | | | | | | | | 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
* add omitted FP_PROG_AR_SUPPORTS_ATFILE into the distribution configure.ac ↵Karel Gardas2014-02-191-0/+1
| | | | | | (fixes #8794) Signed-off-by: Austin Seipp <austin@well-typed.com>
* Detect linker information at runtime. Fixes Trac #6063Austin Seipp2013-06-161-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, we did ./configure time checks to see if 'GNU ld' supported certain options. If it does, we bake those options into the link step. See Trac #5240. Unfortunately, the linker we use at runtime can change for several reasons. One is that the user specifies -pgml 'foo'. The other is if /usr/bin/ld or whatnot changes from when GHC was built. Those options mentioned earlier are specific to GNU ld, but many systems support GNU gold too. This is Trac #6063. So we need to check at runtime what linker we're using. This is actually a little bit complicated because we normally use the C compiler as our linker. Windows and OS X are also special here. Finally, this patch also unconditionally gives '--hash-size=31' and '--reduce-memory-overheads' to the system linker if it's GNU ld. These options have been supported for 8+ years from what I can see, and there are probably a lot of other reasons why GHC would not work with such an ancient binutils, all things considered. See Note [Run-time linker info] in SysTools for details. There are plenty of comments as well in the surrounding code. 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.
* Finish removing BootingFromHcIan Lynagh2013-02-171-3/+0
|
* remove old cross-compilation stuffSimon Marlow2013-01-301-5/+2
|
* Remove unused FPTOOLS_SHEBANG_PERLIan Lynagh2012-11-131-1/+0
|
* Build the dynamic way by default on Linux/amd64Ian Lynagh2012-10-031-1/+1
| | | | | | | | | | | | | 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/...
* Set the value of Unregisterised in the bindist configure.acIan Lynagh2012-08-081-0/+3
| | | | | Now that it's included in settings, the bindist configure script needs to know it.
* Define LdCmd in the bindist configure.acIan Lynagh2012-08-061-0/+6
|
* More more ld-related settings into the settings fileIan Lynagh2012-08-051-0/+3
| | | | Related to #4862
* Validate fix: no cross compilation for bindistsSimon Marlow2012-01-301-1/+15
| | | | | | Maybe we could revisit whether we want to allow building bindists of cross-compilers later, but for now I'm fixing validate by setting all the cross-compilation settings to NO.
* Define "ar command" correctly in settings file on WindowsIan Lynagh2012-01-141-2/+2
| | | | | We want to use the inplace ar, rather than whichever ar the machine that we build on happens to have.
* Store the word size as determined by configure, in the settings file (#5735)Simon Marlow2012-01-041-0/+5
| | | | | Now target32bit works for all targets without any manual intervention, as it should do. #5735 was a portability regression.
* Test whether ld flags exist before using themIan Lynagh2011-11-271-0/+3
| | | | | Some platforms use linkers that don't support the --hash-size=31 and --reduce-memory-overheads flags.
* Put the target platform in the settings fileIan Lynagh2011-10-191-0/+5
|
* Refactor configure.ac's: Define FIND_GCC() in aclocal.m4Ian Lynagh2011-08-031-12/+1
|
* Refactor configure.ac's: Put XCODE_VERSION() in aclocal.m4Ian Lynagh2011-08-031-21/+1
|
* Os X: With Xcode 4, check for gcc-4.2 also in the setup for binary distributionsManuel M T Chakravarty2011-08-011-1/+30
|
* Share more code between configure.ac and distrib/configure.ac.inIan Lynagh2011-06-221-0/+2
|
* Rename FP_HAVE_GCC to FP_GCC_VERSIONIan Lynagh2011-04-221-1/+1
|
* Rename "extra-gcc-opts" to "settings", and start generalising itIan Lynagh2011-04-211-1/+1
|
* Fix platform detection in bindistsIan Lynagh2011-02-111-0/+3
| | | | | | | In a bindist, we generate files like the hsc2hs wrapper. This means we need to have the right values for the variables like CONF_GCC_LINKER_OPTS_STAGE1 which in turn means we need to know what platform we're on.
* Keep separate linker flags, for when we want to link with gcc or ldIan Lynagh2011-01-241-7/+14
|
* For bindists, build ghc-pwd with stage 1Ian Lynagh2010-11-211-0/+1
| | | | | | rather then the bootstrapping compiler. This fixes problems where the bootstrapping compiler dynamically links against libraries not on the target machine.
* Tweak the bindist configure.ac.inIan Lynagh2010-11-201-20/+7
|
* Set stage-specific CC/LD opts in the bindist configure.acIan Lynagh2010-07-241-4/+11
|
* Pass the location of gcc in the ghc wrapper script; partially fixes #3863Ian Lynagh2010-03-241-1/+6
| | | | This means we don't rely on baking a path to gcc into the executable
* Check for suitable versions of make in bindists; fixes trac #3860Ian Lynagh2010-02-201-0/+19
| | | | | We already had a check in configure of the actual build. This patch adds it to the configure of the bindists too.
* Put README and INSTALL into bindistsIan Lynagh2009-12-091-0/+87
Also tidied up the way configure.ac gets into bindists