summaryrefslogtreecommitdiff
path: root/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* Refactor handling of object mergingBen Gamari2020-08-051-2/+1
| | | | | | | | | Previously to merge a set of object files we would invoke the linker as usual, adding -r to the command-line. However, this can result in non-sensical command-lines which causes lld to balk (#17962). To avoid this we introduce a new tool setting into GHC, -pgmlm, which is the linker which we use to merge object files.
* Require SMP support in order to build a threaded stage1Stefan Schulze Frielinghaus2020-07-251-1/+5
| | | | Fixes 18266
* winio: Add new io-manager cmdline optionsTamar Christina2020-07-151-0/+12
|
* hadrian: make hadrian/ghci use the bootstrap compiler from configure #18190Adam Sandberg Ericsson2020-07-071-0/+1
|
* hadrian/make: Detect makeindexBen Gamari2020-06-251-1/+2
| | | | | | Previously we would simply assume that makeindex was available. Now we correctly detect it in `configure` and respect this conclusion in hadrian and make.
* Enable large address space optimization on windows.Andreas Klebinger2020-06-251-5/+9
| | | | | | | | | | | Starting with Win 8.1/Server 2012 windows no longer preallocates page tables for reserverd memory eagerly, which prevented us from using this approach in the past. We also try to allocate the heap high in the memory space. Hopefully this makes it easier to allocate things in the low 4GB of memory that need to be there. Like jump islands for the linker.
* winio: Add Atomic Exchange PrimOp and implement Atomic Ptr exchanges.Tamar Christina2020-06-141-0/+2
| | | | | | | The initial version was rewritten by Tamar Christina. It was rewritten in large parts by Andreas Klebinger. Co-authored-by: Andreas Klebinger <klebinger.andreas@gmx.at>
* rts: Teach getNumProcessors to return available processorsBen Gamari2020-05-301-1/+1
| | | | | | | | | | | | Previously we would report the number of physical processors, which can be quite wrong in a containerized setting. Now we rather return how many processors are in our affinity mask when possible. I also refactored the code to prefer platform-specific since this will report logical CPUs instead of physical (using `machdep.cpu.thread_count` on Darwin and `cpuset_getaffinity` on FreeBSD). Fixes #14781.
* Build a threaded stage 1 if the bootstrapping GHC supports it.Travis Whitaker2020-05-291-0/+15
|
* Kill wORDS_BIGENDIAN and replace it with platformByteOrder (#17957)Sylvain Henry2020-04-011-0/+4
| | | | | | Metric Decrease: T13035 T1969
* Require GHC 8.8 as the minimum compiler for bootstrappingRyan Scott2020-03-311-2/+2
| | | | | | | | This allows us to remove several bits of CPP that are either always true or no longer reachable. As an added bonus, we no longer need to worry about importing `Control.Monad.Fail.fail` qualified to avoid clashing with `Control.Monad.fail`, since the latter is now the same as the former.
* Don't use non-portable operator "==" in configure.acPHO2020-03-171-1/+1
| | | | | The test operator "==" is a Bash extension and produces a wrong result if /bin/sh is not Bash.
* Use AC_ARG_VAR for LD_STAGE0 and AR_STAGE0.Judah Jacobson2020-03-141-1/+4
|
* Allow overriding LD_STAGE0 and AR_STAGE0 in the configure script.Judah Jacobson2020-03-141-3/+7
| | | | | | | | | Previously it was possible to override the stage0 C compiler via `CC_STAGE0`, but you couldn't override `ld` or `ar` in stage0. This change allows overriding them by setting `LD_STAGE0` or `AR_STAGE0`, respectively. Our team uses this feature internally to take more control of our GHC build and make it run more hermetically.
* Use configure script to detect that we should use in-tree GMP on WindowsSylvain Henry2020-03-021-0/+7
|
* configure: correctly generate LIBRARY_template_haskell_VERSIONAdam Sandberg Ericsson2020-02-271-2/+4
|
* hadrian: Allow libnuma library path to be specifiedBen Gamari2020-02-261-1/+32
|
* show gcc linker options in configure summaryAdam Sandberg Ericsson2020-02-231-0/+1
|
* configure: Fix sphinx version testBen Gamari2020-02-141-1/+1
| | | | The check for the "v" prefix is redundant.
* Rework handling of win32 toolchain tarballsBen Gamari2020-02-141-2/+2
|
* Fix more typos, via an improved Levenshtein-style correctorBrian Wignall2020-01-121-2/+2
|
* Remove `parallel` check from configure.acSylvain Henry2020-01-071-1/+0
| | | | `parallel` is no longer a submodule since 3cb063c805ec841ca33b8371ef8aba9329221b6c
* configure: Find Python3 for testsuiteBen Gamari2020-01-071-0/+3
| | | | | In addition, we prefer the Mingw64 Python distribution on Windows due to #17483.
* use shell variable CcLlvmBackend for testGabor Greif2019-12-271-1/+1
| | | Previously we used `AC_DEFINE`d variable `CC_LLVM_BACKEND` which has an empty shell expansion.
* while at it rename XCode to the official XcodeGabor Greif2019-12-271-1/+1
|
* Fix comment about minimal gcc versionGabor Greif2019-12-251-1/+1
| | | to be consistent what FP_GCC_VERSION requires
* Fix copy-paste error in commentGabor Greif2019-12-251-1/+1
|
* configure.ac: make cross-compiler detection stricterSergei Trofimovich2019-12-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Be more precise at detecting cross-compilation case. Before the change configuration $ ./configure --host=x86_64-pc-linux-gnu --target=x86_64-gentoo-linux-musl was not considered a cross-target. Even though libcs are different (`glibc` vs. `musl`). Without this patch build fails as: ``` "inplace/bin/ghc-cabal" check libraries/integer-gmp "inplace/bin/ghc-cabal" configure libraries/integer-gmp dist-install \ --with-ghc="/home/slyfox/dev/git/ghc/inplace/bin/ghc-stage1" \ --with-ghc-pkg="/home/slyfox/dev/git/ghc/inplace/bin/ghc-pkg" \ --disable-library-for-ghci --enable-library-vanilla --enable-library-for-ghci \ --enable-library-profiling --enable-shared --with-hscolour="/usr/bin/HsColour" \ --configure-option=CFLAGS="-Wall \ -Werror=unused-but-set-variable -Wno-error=inline \ -iquote /home/slyfox/dev/git/ghc/libraries/integer-gmp" \ --configure-option=LDFLAGS=" " --configure-option=CPPFLAGS=" \ " --gcc-options="-Wall -Werror=unused-but-set-variable -Wno-error=inline -iquote /home/slyfox/dev/git/ghc/libraries/integer-gmp \ " --with-gcc="x86_64-gentoo-linux-musl-gcc" --with-ld="x86_64-gentoo-linux-musl-ld.gold" --with-ar="x86_64-gentoo-linux-musl-ar" \ --with-alex="/usr/bin/alex" --with-happy="/usr/bin/happy" Configuring integer-gmp-1.0.2.0... configure: WARNING: unrecognized options: --with-compiler checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking target system type... x86_64-pc-linux-gnu checking for gcc... /usr/lib/ccache/bin/x86_64-gentoo-linux-musl-gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... configure: error: in `/home/slyfox/dev/git/ghc/libraries/integer-gmp/dist-install/build': configure: error: cannot run C compiled programs. If you meant to cross compile, use `--host'. See `config.log' for more details make[1]: *** [libraries/integer-gmp/ghc.mk:5: libraries/integer-gmp/dist-install/package-data.mk] Error 1 make: *** [Makefile:126: all] Error 2 ``` Note: here `ghc-stage1` is assumed to target `musl` target but is passed `glibc` toolchain. It happens because initial ./configure phase did not detect host/target as different. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* configure: Fix HAVE_C11_ATOMICS macroBen Gamari2019-11-241-1/+3
| | | | | | | | Previously we were using AC_DEFINE instead of AC_DEFINE_UNQUOTED, resulted in the variable not being interpolated. Fixes #17505.
* Bump ghc version to 8.11Ben Gamari2019-11-231-1/+1
|
* Bump version to 8.10.0Ben Gamari2019-11-171-1/+1
| | | | Bumps haddock submodule.
* Bump supported LLVM version to 9.0Ben Gamari2019-11-151-1/+1
|
* configure: Modify ERROR to WARN for sphinx's python checkTakenobu Tani2019-11-071-1/+2
| | | | | | | | | | | | If sphinx's python version check failed, many people prefer to build without documents instead of stopping on the error. So this commit fixes the following: * Modify AC_MSG_ERROR to AC_MSG_WARN * Add clearing of SPHINXBUILD variable when check fails See also !2016.
* configure: Add checking python3-sphinxTakenobu Tani2019-11-061-0/+5
| | | | | | | | | | | | | | | This checks the configuration about python3-sphinx. We need python3-sphinx instead of python2-sphinx to build documentation. The approach is as follows: * Check python3 version with custom `conf.py` invoked from sphinx-build` executable * Place custom `conf.py` into new `utils/check-sphinx` directory If sphinx is for python2 not python3, it's treated as config ERROR instead of WARN. See also #17346 and #17356.
* configure: Add --with-libdw-{includes,libraries} flagsBen Gamari2019-11-061-1/+32
| | | | Fixing #17255.
* distrib: Fix binary distribution installationBen Gamari2019-10-291-1/+0
| | | | | This had silently regressed due to 81860281 and the variable renaming performed in b55ee979, as noted in #17374.
* Implement s390x LLVM backend.Stefan Schulze Frielinghaus2019-10-221-3/+3
| | | | | | This patch adds support for the s390x architecture for the LLVM code generator. The patch includes a register mapping of STG registers onto s390x machine registers which enables a registerised build.
* Windows: Update tarballs to GCC 9.2 and remove MAX_PATH limit.Tamar Christina2019-10-201-1/+1
|
* Simplify Configure in a few waysJohn Ericson2019-10-121-38/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - No need to distinguish between gcc-llvm and clang. First of all, gcc-llvm is quite old and surely unmaintained by now. Second of all, none of the code actually care about that distinction! Now, it does make sense to consider C multiple frontends for LLVMs in the form of clang vs clang-cl (same clang, yes, but tweaked interface). But this is better handled in terms of "gccish vs mvscish" and "is LLVM", yielding 4 combinations. Therefore, I don't think it is useful saving the existing code for that. - Get the remaining CC_LLVM_BACKEND, and also TABLES_NEXT_TO_CODE in mk/config.h the normal way, rather than hacking it post-hoc. No point keeping these special cases around for now reason. - Get rid of hand-rolled `die` function and just use `AC_MSG_ERROR`. - Abstract check + flag override for unregisterised and tables next to code. Oh, and as part of the above I also renamed/combined some variables where it felt appropriate. - GccIsClang -> CcLlvmBackend. This is for `AC_SUBST`, like the other Camal case ones. It was never about gcc-llvm, or Apple's renamed clang, to be clear. - llvm_CC_FLAVOR -> CC_LLVM_BACKEND. This is for `AC_DEFINE`, like the other all-caps snake case ones. llvm_CC_FLAVOR was just silly indirection *and* an odd name to boot.
* Remove GhcLibsWithUnixJohn Ericson2019-10-071-8/+0
| | | | | d679ca43e7477284d733b94ff542be5363be3353 meant to remove it but did not finish the job.
* Get rid of GHC_PACKAGE_DB_FLAGJohn Ericson2019-10-071-3/+0
| | | | | We no longer support booting from older GHC since 527bcc41630918977c73584d99125ff164400695.
* Keep OSTYPE local to configure.acJohn Ericson2019-10-071-4/+0
| | | | Unused outside it since b6be81b841e34ca45b3549c4c79e886a8761e59a.
* Remove CONFIGURE_ARGS from configure.acJohn Ericson2019-10-071-2/+0
| | | | | It looks like it's been unused since at least 34cc75e1a62638f2833815746ebce0a9114dc26b.
* configure: Determine library versions of template-haskell, et al.Ben Gamari2019-10-071-0/+6
| | | | These are needed by the user guide documentation. Fixes #17260.
* Raise minimum GHC version to 8.6Daniel Gröber2019-09-271-2/+2
| | | | | commit 795986aaf33e ("Remove unneeded CPP now that GHC 8.6 is the minimum") broke the 8.4 build.
* detect makeinfo in configure(.ac)Björn Gohla2019-09-231-1/+12
|
* Make sure all boolean settings entries use `YES` / `NO`John Ericson2019-09-051-3/+3
| | | | | | | | | Some where using `True` / `False`, a legacy of when they were in `Config.hs`. See #16914 / d238d3062a9858 for a similar problem. Also clean up the configure variables names for consistency and clarity while we're at it. "Target" makes clear we are talking about outputted code, not where GHC itself runs.
* configure.ac: add --enable-numa switchSergei Trofimovich2019-08-301-2/+13
| | | | | | | | | | | | | Before the change ./configure detected numa support automatically withoun a nice way to disable autodetection. The change adds `--enable-numa` / `--disable-numa` switch to override the default. If `--enable-numa` is passed and `libnuma` is not present then configure will fail. Reported-by: Sergey Alirzaev Bug: https://github.com/gentoo-haskell/gentoo-haskell/issues/955 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* configure.ac: fix '--disable-dwarf-debug'Sergei Trofimovich2019-08-231-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before the change ./configure --disable-dwarf-debug enabled DWARF debugging unconditionally. This happened due to use of 5-argument form of `AC_ARG_ENABLE` without actually checking the passed `$enableval` parameter: ``` AC_ARG_ENABLE(dwarf-unwind, [AC_HELP_STRING([--enable-dwarf-unwind], [Enable DWARF unwinding support in the runtime system via elfutils' libdw [default=no]])], [AC_CHECK_LIB(dw, dwfl_attach_state, [UseLibdw=YES], [AC_MSG_ERROR([Cannot find system libdw (required by --enable-dwarf-unwind)])])] [UseLibdw=NO] ) ``` Note: - `[UseLibdw=NO]` is called when `--{enable,disable}-dwarf-unwind` is not passed at all as a parameter (ok). - `[AC_CHECK_LIB(dw, dwfl_attach_state, [UseLibdw=YES],` is called for both: * `--enable-dwarf-unwind` being passed: `$enableval = "yes"` (ok). * --disable-dwarf-unwind` being passed: `$enableval = "no"` (bad). The change is to use 3-argument `AC_ARG_ENABLE` and check for passed value as `"$enable_dwarf_unwind" = "yes"`. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Consolidate `TablesNextToCode` and `GhcUnreigsterised` in configure (#15548)Joachim Breitner2019-08-101-6/+50
| | | | | | | | | | | | | | | | | | | | `TablesNextToCode` is now a substituted by configure, where it has the correct defaults and error handling. Nowhere else needs to duplicate that, though we may want the compiler to to guard against bogus settings files. I renamed it from `GhcEnableTablesNextToCode` to `TablesNextToCode` to: - Help me guard against any unfixed usages - Remove any lingering connotation that this flag needs to be combined with `GhcUnreigsterised`. Original reviewers: Original subscribers: TerrorJack, rwbarton, carter Original Differential Revision: https://phabricator.haskell.org/D5082