summaryrefslogtreecommitdiff
path: root/aclocal.m4
Commit message (Collapse)AuthorAgeFilesLines
* configure: Search for LLVM executables with two-number versionsBen Gamari2019-08-041-2/+3
| | | | | | | Fedora uses the naming llc-7.0 while Debian uses llc-7. Ensure that both are found. Fixes #16990.
* Maintain separate flags for C++ compiler invocationsBen Gamari2019-06-131-0/+3
| | | | | | | Previously we would pass flags intended for the C compiler to the C++ compiler (see #16738). This would cause, for instance, `-std=gnu99` to be passed to the C++ compiler, causing spurious test failures. Fix this by maintaining a separate set of flags for C++ compilation invocations.
* Fix uses of #ifdef/#ifndefBen Gamari2019-06-121-6/+6
| | | | | The linter now enforces our preference for `#if defined()` and `#if !defined()`.
* Restore the --coerce option in 'happy' configurationVladislav Zavialov2019-05-141-2/+2
| | | | | | happy-1.19.10 has been released with a fix for --coerce in the presence of higher rank types. This should result in about 10% performance improvement in the parser.
* Generate settings by make/hadrian instead of configureJohn Ericson2019-04-301-10/+10
| | | | This allows it to eventually become stage-specific
* configure: Always use AC_LINK_ELSEIF when testing against assemblerBen Gamari2019-04-031-5/+33
| | | | | | | | | | This fixes #16440, where the build system incorrectly concluded that the `.subsections_via_symbols` assembler directive was supported on a Linux system. This was caused by the fact that gcc was invoked with `-flto`; when so-configured gcc does not call the assembler but rather simply serialises its AST for compilation during the final link. This is described in Note [autoconf assembler checks and -flto].
* Update Wiki URLs to point to GitLabTakenobu Tani2019-03-251-2/+2
| | | | | | | | | | | | | | | | | | | | | | | This moves all URL references to Trac Wiki to their corresponding GitLab counterparts. This substitution is classified as follows: 1. Automated substitution using sed with Ben's mapping rule [1] Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy... New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy... 2. Manual substitution for URLs containing `#` index Old: ghc.haskell.org/trac/ghc/wiki/XxxYyy...#Zzz New: gitlab.haskell.org/ghc/ghc/wikis/xxx-yyy...#zzz 3. Manual substitution for strings starting with `Commentary` Old: Commentary/XxxYyy... New: commentary/xxx-yyy... See also !539 [1]: https://gitlab.haskell.org/bgamari/gitlab-migration/blob/master/wiki-mapping.json
* Update Trac ticket URLs to point to GitLabRyan Scott2019-03-151-1/+1
| | | | | This moves all URL references to Trac tickets to their corresponding GitLab counterparts.
* Rip out object splittingBen Gamari2019-03-051-20/+0
| | | | | | | | | | | | | | | The splitter is an evil Perl script that processes assembler code. Its job can be done better by the linker's --gc-sections flag. GHC passes this flag to the linker whenever -split-sections is passed on the command line. This is based on @DemiMarie's D2768. Fixes Trac #11315 Fixes Trac #9832 Fixes Trac #8964 Fixes Trac #8685 Fixes Trac #8629
* Fix incorrectly named configure optionsAlec Theriault2019-01-271-2/+2
| | | | | | Although we should use 'AC_ARG_ENABLE' for boolean flags, it also means options get named '--enable-*', not '--with-*'. This should unbreak the --with-intree-gmp option.
* Hadrian: support in-tree GMPAlec Theriault2019-01-231-0/+14
| | | | | | | | | | | | | | | | | | | | | | Summary: This adds top-level configure flags '--with-intree-gmp' and '--with-framework-preferred', both of which are especially relevant on MacOS. Besides gaining two new flags, Hadrian also had to be taught what to do with the 'framework' in .cabal files. Test Plan: ./boot && ./configure --with-intree-gmp && ./hadrian/build.sh ./boot && ./configure --with-gmp-framework-preferred && ./hadrian/build.sh # on macos Reviewers: carter, snowleopard, alpmestan, hvr, goldfire, bgamari Subscribers: rwbarton, erikd GHC Trac Issues: #16001 Differential Revision: https://phabricator.haskell.org/D5417
* configure: introduce HAPPY and ALEX vars and deprecate --with-ghc in favour ↵Adam Sandberg Eriksson2019-01-011-9/+17
| | | | | | of the GHC var Also updates the windows gitlab ci to use the new configure variables.
* aclocal.m4: drop obsolete -fno-stack-protectorSergei Trofimovich2018-12-261-9/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Initially -fno-stack-protector was added for openbsd specifically for ghc-6.5: changeset:f638fdfe1d9de1307355c8074fbff9c28342c0ef (2006) and later it was extended to cover osx: changeset:c2cd83e7d85c11e6a33e1cde263eb2312566d535 (2009) None of the reports hint at exact breakage. I guess both happened in -fvia-C mode where GHC's Evil Mangler had a chance to mangle stack canaries generated by fstack-protector. ghc has no evil mangler anymore and the change is not needed at least for C codegen. validated the patch on OpenBSD-6.4. No new failures compared to clean master branch. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> Test Plan: validated on OpenBSD Reviewers: bgamari Subscribers: rwbarton, erikd, carter GHC Trac Issues: #16046 Differential Revision: https://phabricator.haskell.org/D5465
* configure: Disable LD_NO_GOLD logic when cross-compilingBen Gamari2018-12-121-1/+5
| | | | | | | | | | | This is generally terrible: see #16025. In short, we previously just blindly used an un-prefixed ld for LD_NO_GOLD. This is blatantly wrong. Ideally we would actually verify that ld.gold is indeed broken (by binutils #22266) before insisting on using another linker but sadly we cannot do so when cross-compiling since this would require running host code. For now we simply disable the LD_NO_GOLD logic when cross-compiling and hope that the user has verified that their ld.gold isn't affected by #22266.
* Remove warnings-silencing flags for code generated by AlexSimon Jakobi2018-11-221-8/+2
| | | | | | | | | | | | | | | | | | Current versions of Alex don't seem to produce as many warnings any more. In order to silence a warning and to avoid overlong lines, I've taken the liberty of refactoring 'tok_num'. Test Plan: ./validate Reviewers: bgamari, simonmar Reviewed By: simonmar Subscribers: erikd, rwbarton, carter Differential Revision: https://phabricator.haskell.org/D5319
* Correctly detect GIT in a subtreeSylvain Henry2018-10-291-1/+1
| | | | | | | When we use a git subtree, .git is a file, not a directory. The script was already fixed for the commit ID but not for its date. PR: https://github.com/ghc/ghc/pull/212/
* Fix test for GCC support for atomics in AutotoolsOndra Pelech2018-10-151-1/+1
| | | | PR: https://github.com/ghc/ghc/pull/198/
* aclocal.m4: fix shell comment syntax: '#', not '$'Sergei Trofimovich2018-09-251-1/+1
| | | | | | | | | | | | Summary: Reported-by: Evan Laforge Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> Reviewers: bgamari Subscribers: rwbarton, erikd, carter Differential Revision: https://phabricator.haskell.org/D5171
* Revert "adds -latomic to. ghc-prim"Ben Gamari2018-09-201-0/+18
| | | | | | | This commit was never properly justified and relies on the existence of libatomic, which doesn't appear to exist on Darwin. This reverts commit ec9aacf3eb2975fd302609163aaef429962ecd87.
* Fix Git commit ID detection in Git worktreesSylvain Henry2018-07-281-1/+1
| | | | | | | | | | | | Summary: When using a Git worktree, ".git" is a file, not a directory Reviewers: bgamari, monoidal Reviewed By: monoidal Subscribers: rwbarton, thomie, erikd, carter Differential Revision: https://phabricator.haskell.org/D5016
* aclocal.m4: narrow down 'riscv*' to 'riscv-*' and 'riscv32*'Sergei Trofimovich2018-07-171-3/+3
| | | | | | | | | | Two minor changes: - 32-bit CPU macro is called riscv32_HOST_ARCH (was riscv_HOST_ARCH) - shrink understood tuples from riscv* to riscv-* and riscv32*-* as a tiny safeguard against riscv128*- in future. Suggested-by: James Clarke <jrtc27@jrtc27.com> Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* aclocal.m4: allow riscv and riscv64 CPUSergei Trofimovich2018-07-161-1/+7
| | | | | | Tested on riscv64-unknown-linux-gnu tuple. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* Add support for FreeBSD armBen Gamari2018-06-071-0/+16
| | | | | | | | | | | | Test Plan: Tested on armv6, armv7 and aarch64 on FreeBSD 12-CURRENT. Reviewers: bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie, erikd, carter Differential Revision: https://phabricator.haskell.org/D4810
* configure: Use -Werror to check for existence of -no-pieBen Gamari2018-04-191-1/+1
| | | | | | | | | | | | | | | | | | | Clang throws a warning instead of an error when it is passed -no-pie, clang: warning: argument unused during compilation: '-nopie' [-Wunused-command-line-argument] Consequently configure concludes that it supports -no-pie. However, this will fail when used with -Werror. The solution is to simply use -Werror in the configure check. Thanks to @goldfire for reporting this. Reviewers: hvr Subscribers: thomie, carter, goldfire Differential Revision: https://phabricator.haskell.org/D4557
* Introduce a $tooldir variable for nicer toolchain detection on WindowsAlp Mestanogullari2018-04-171-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch affects several files that affect how we detect mingw and perl on Windows. The initial motivation is: https://github.com/snowleopard/hadrian/issues/564 where, with Hadrian building relocatable (non-inplace) GHCs, the current detection mechanism falls short by e.g only trying $topdir/../mingw. But in Hadrian, for reasons given in that issue, we would need to store e.g mingw under $topdir/../../mingw except for binary distributions, where we want to follow the existing structure, in which case $topdir/../mingw is correct. So we need to support both, which is what this patch hopefully implements. Test Plan: ./validate Reviewers: Phyx, hvr, bgamari, erikd Reviewed By: Phyx Subscribers: snowleopard, thomie, carter Differential Revision: https://phabricator.haskell.org/D4598
* configure: Throw error if OS is found to be msysBen Gamari2018-03-271-0/+3
| | | | | | | | | | | | | Test Plan: Try running configure on Windows with msys and mingw toolchains Reviewers: Phyx, hvr Reviewed By: Phyx Subscribers: rwbarton, thomie, erikd, carter Differential Revision: https://phabricator.haskell.org/D4526
* Support iOS variants elsewhere when configuringJohn Ericson2018-03-251-1/+1
| | | | | | | | | | Reviewers: hvr, bgamari, angerman Reviewed By: angerman Subscribers: rwbarton, thomie, erikd, carter, angerman Differential Revision: https://phabricator.haskell.org/D4513
* configure: Accept version suffix in solaris nameBen Gamari2018-03-191-1/+4
| | | | | | | | | | Summary: OpenIndiana apparently reports a triple of i386-pc-solaris2.11. Reviewers: hvr Subscribers: rwbarton, thomie, erikd, carter Differential Revision: https://phabricator.haskell.org/D4487
* aclocal.m4: add OSHurd (debian patch)Sergei Trofimovich2018-03-171-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | ghc treats OSUnknown (and GNU/Hurd) as non-ELF target. This causes panic in native codegenerator when trying to build PIC code: ``` ... -- all other platforms howToAccessLabel dflags _ _ _ _ _ | not (positionIndependent dflags) = AccessDirectly | otherwise = panic "howToAccessLabel: PIC not defined for this platform" ``` This change declares new 'OSHurd' and marks it as an ELF target. Fixes building ghc-stage2 on i686-unknown-gnu0.9. Patch provided by "Pino" via Samuel Thibault and taken from debian. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* aclocal.m4: allow more GNU/Hurd tuplesSergei Trofimovich2018-03-171-1/+4
| | | | | | | | | | | | Running plain ./configure fails on hurd because ./config.guess reports unrecognised tuple: $ ./config.guess i686-unknown-gnu0.9 The change makes the following target configure: $ ./configure --target=i686-unknown-gnu0.9 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* configure: Accept suffix in OpenBSD triple's OS nameBen Gamari2018-03-081-1/+4
| | | | | | | | Reviewers: hvr Subscribers: rwbarton, thomie, erikd, carter Differential Revision: https://phabricator.haskell.org/D4483
* configure: Enable LD_NO_GOLD is set in all codepathsBen Gamari2018-03-021-0/+4
| | | | | | | | | | | | | | Test Plan: `./configure --disable-ld-override; make; make install` Reviewers: trofi, hvr Reviewed By: trofi Subscribers: rwbarton, thomie, erikd, carter, simonmar GHC Trac Issues: #14675 Differential Revision: https://phabricator.haskell.org/D4448
* Don't use ld.gold when building libraries for GHCiSimon Marlow2018-02-211-3/+10
| | | | | | | | | | | | | | | | | | | Summary: ld.gold is buggy when using -r and a linker script. See upstream bug https://sourceware.org/bugzilla/show_bug.cgi?id=22266 This has been causing various brokenness for the GHC runtime linker, where we load these broken object files. Test Plan: Test program from #14675 Reviewers: bgamari, RyanGlScott, alpmestan, hvr, erikd Subscribers: rwbarton, thomie, erikd, carter GHC Trac Issues: #14328, #14675, #14291 Differential Revision: https://phabricator.haskell.org/D4431
* adds -latomic to. ghc-primMoritz Angermann2018-02-151-18/+0
| | | | | | | | | | Reviewers: bgamari, hvr Reviewed By: bgamari Subscribers: erikd, hvr, rwbarton, thomie, carter Differential Revision: https://phabricator.haskell.org/D4378
* ghc-prim: Emulate C11 atomics when not availableBen Gamari2018-02-031-2/+23
| | | | | | | | | | | | | | | | | | GCC's __sync primitives apparently "usually" imply a full barrier, meaning they can be used to emulate the more precise C11 atomics albeit with a loss of efficiency. This restores compatibility with GCC 4.4. This partially reverts commit 59de290928e6903337f31c1f8107ac8a98ea145d. Test Plan: Validate on Centos Reviewers: hvr, simonmar, trommler Subscribers: rwbarton, thomie, erikd, carter GHC Trac Issues: #14244 Differential Revision: https://phabricator.haskell.org/D4364
* aclocal.m4: add minimal support for nios2 architectureSergei Trofimovich2017-12-251-1/+4
| | | | | | | | | With this change unregisterised port can already produce minimal executables: ELF 32-bit LSB executable, Altera Nios II, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-nios2.so.1 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
* configure: Fix ar probed flagsBen Gamari2017-11-211-4/+8
| | | | | | | | | | | | | | | | | | | | | | FP_PROG_AR_ARGS appears to be probing for what flags to use to build an archive with an index. However, none of the flags that it probed previously were valid as they all started with `c`, which isn't a mode character. This went unnoticed until someone attempted to use LLVM ar since we have a special case for gnu ar. Additionally, we work around a bug in llvm-ar 5.0 where ar will exit with code 0 even if it fails to parse the command line. Silliness. I believe these should rather all be mode `q` however I'll need to test this on a few platforms to be certain. Test Plan: Validate on OS X, BSD, and Linux with binutils and llvm ar Reviewers: hvr Subscribers: rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D4214
* Adds rts/rts.cabal.in fileMoritz Angermann2017-11-151-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | This is in preparation for cabalification of the `rts`. To be actually able to parse this file, a rather recent Cabal is required. One after commit 357d49d of haskell/cabal. The relevant PR to support the new `asm-sources` and `cmm-sources` is haskell/cabal/pull/4857. Not that this does *not* allow cabal to build the RTS. It does however provide enough information such that cabal can `copy` and `register` the package properly in the package database, if all the build artifacts have been build properly. As such it does not require any custom handling of the `rts` package. As the rts as well as all the other packages built by the GHC built system are built outside of cabal anyway. Reviewers: bgamari, hvr, erikd, simonmar Reviewed By: bgamari Subscribers: rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D4174
* Update autoconf test for gcc to require 4.7 and upPeter Trommler2017-11-061-14/+2
| | | | | | | | | | | | | | | | | | | Fixing #14244 required the newer gcc atomic built-ins that are provided from 4.7 and up. This updates the test to check for minimum gcc version 4.7. The version tests for 3.4 (!), 4.4, and 4.6 are no longer needed and can be removed. This makes the build system simpler. Test Plan: validate Reviewers: austin, bgamari, hvr, simonmar Reviewed By: bgamari Subscribers: rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D4165
* configure: Add Alpine Linux to checkVendorTuncer Ayaz2017-10-261-1/+1
|
* configure: Fix CC version check on Apple compilersBen Gamari2017-10-161-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | It seems that some Apple LLVM wrappers emit multiple messages containing the string "version", which we previously used to find the version number. For instance, Configured with: --prefix=/Applications/Xcode.app/Contents/... Apple LLVM version 9.0.0 (clang-900.0.37) Target: x86_64-apple-darwin16.7.0 Thread model: posix InstalledDir: /Applications/Xcode.app/Contents/Developer/... Found CUDA installation: /usr/local/cuda, version 8.0 We now take care to only look at the first occurrence of this string. New `sed` command due to @merijn. Test Plan: Validate on all the compilers Reviewers: austin, hvr Subscribers: rwbarton, thomie, merijn, erikd Differential Revision: https://phabricator.haskell.org/D4069
* configure: Accept *-msys as a Windows OS in a tripleBen Gamari2017-10-041-1/+1
|
* Fix Raspberry Pi target nameMoritz Angermann2017-09-291-1/+1
| | | | | | | | | | | | | | Summary: For some reson, the `*`, that was supposed to be in D4031 got lost in the diff. Reviewers: bgamari, austin, hvr, dfeuer Reviewed By: dfeuer Subscribers: rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D4044
* configure: Make sure we try all possible linkersBen Gamari2017-09-271-18/+41
| | | | | | | | | | | | | | | | | | | | Previously if we had both ld.lld and ld.gold installed but a gcc which didn't support -fuse-ld=lld we would fail when trying ld.lld and fall immediately back to plain ld. Now we will try ld.gold as well. This was brought to light by #14280, where using ld.bfd resulted in a broken stage2 compiler. Test Plan: Configure Reviewers: angerman, hvr, austin Reviewed By: angerman Subscribers: rwbarton, thomie, erikd GHC Trac Issues: #14280 Differential Revision: https://phabricator.haskell.org/D4038
* GHC_LLVM_TARGET: Keep android OSMoritz Angermann2017-09-271-0/+8
| | | | | | | | | | | | | | | Summary: Our usual GHC_CONVERT_OS macro, will turn any andoird* into android. This however drops the essential androideabi part. As such for the GHC_LLVM_TARGET we only convert the VENDOR, not the OS. Reviewers: bgamari, austin, hvr Reviewed By: bgamari Subscribers: rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D4031
* configure: Catch case where LLVM tools can't be foundBen Gamari2017-09-251-1/+3
| | | | | | | | | | | | | | Previously we didn't specify the prog-not-found value passed to AC_CHECK_TOOLS. Reported by @snowleopard in https://github.com/snowleopard/hadrian/issues/415. Test Plan: validate Reviewers: austin, hvr Subscribers: rwbarton, thomie, snowleopard, erikd Differential Revision: https://phabricator.haskell.org/D3992
* Adds mingw64 to the valid GHC OSs.Moritz Angermann2017-09-261-0/+4
| | | | | | | | | | | | | | | Summary: This fixes hadrian#420 (https://github.com/snowleopard/hadrian/issues/420) specifically the "Unknown OS mingw64". Reviewers: austin, hvr, bgamari, Phyx Reviewed By: Phyx Subscribers: rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D4016
* Fix the searching of target AR toolTamar Christina2017-09-261-4/+12
| | | | | | | | | | | | | | | | | | | | Summary: Ar was being checked twice prior to D3883 where I removed one of the checks because the converted path was being overridden after the check because of the second check for Ar. However the one in configure.ac was a target check so I'm changing the path check to a target check now. Test Plan: ./configure Reviewers: angerman, austin, hvr, bgamari Reviewed By: bgamari Subscribers: rwbarton, thomie, erikd GHC Trac Issues: #14274 Differential Revision: https://phabricator.haskell.org/D4020
* Additional LLVM_TARGET logic.Moritz Angermann2017-09-231-2/+22
| | | | | | | | | | | | | | | | | | Summary: This should help resolve the compilcation that came up in Trac #14261 Test Plan: validate on various platforms Reviewers: trofi, bgamari, austin, hvr Reviewed By: trofi Subscribers: rwbarton, thomie, erikd GHC Trac Issues: #14261 Differential Revision: https://phabricator.haskell.org/D4004
* aclocal.m4: call cygpath on mingw32 onlySergei Trofimovich2017-09-201-2/+2
| | | | | | | | | | | | | | | | The only reason I noticed is warning these lines on linux: ``` $ ./configure --target=sparc-unknown-linux-gnu ... ./configure: line 9708: cygpath: command not found ./configure: line 9708: ArCmd: command not found ``` POSIX shell syntax requires no spaces in assignments. Fixed guarding condition while at it. Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>