| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
Compl Yue noticed that the linker was dumping the link map on SmartOS. This is
because Smartos uses the Solaris linker, which uses the `-64` flag, not
`-m64` like Gnu ld, to indicate that it should link for 64-bits. Fix the
configure script to handle the Solaris linker correctly.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
In addition, we prefer the Mingw64 Python distribution on Windows due
to #17483.
|
|
|
|
|
|
|
|
|
|
|
| |
Also refactor FP_GCC_EXTRA_FLAGS in a few ways:
* We no longer support compilers which lack support for -fno-builtin
and -fwrapv so remove the condition on GccVersion
* These flags are only necessary when using the via-C backend
so make them conditional on Unregisterised.
Fixes #15742.
|
| |
|
|
|
|
| |
tested with `bash` and `zsh`.
|
|
|
|
|
| |
This reverts commit aa31ceaf7568802590f73a740ffbc8b800096342 as
suggested in #17392.
|
|
|
|
|
| |
Not only is it now unused but we generally can't assume that we are
compiling with GCC, so it really shouldn't be used.
|
|
|
|
|
| |
GCC 4.6 was released 7 years ago. I think we can finally assume that
it's available. This is a simplification prompted by #15742.
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
FreeBSD does not support GNU libc, so it makes no sense to use this
triple. Most likely previous builds were just using the FreeBSD libc
instead of gnueabihf. To fix this, we should just use
armv6-unknown-freebsd and armv7-unknown-freebsd triples. Note that
both of these are actually "soft-float", not "hard-float". FreeBSD has
never officially released hard-float arm32:
https://wiki.freebsd.org/ARMTier1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
|
| |
This was done in Nixpkgs, but never upstreamed. Musl is pretty much
the same as gnu, but with a different libc. I’ve used the same values
for everything.
|
| |
|
|
|
|
|
|
| |
This fixes #16860 by verifying that the generated sources don't already
exist before asserting that the `alex` executable was found. This
replicates the logic already used for `happy` in the case of `alex`.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Fedora uses the naming llc-7.0 while Debian uses llc-7. Ensure that both
are found.
Fixes #16990.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The linter now enforces our preference for `#if defined()` and
`#if !defined()`.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
This allows it to eventually become stage-specific
|
|
|
|
|
|
|
|
|
|
| |
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].
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
This moves all URL references to Trac tickets to their corresponding
GitLab counterparts.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
of the GHC var
Also updates the windows gitlab ci to use the new configure variables.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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/
|
|
|
|
| |
PR: https://github.com/ghc/ghc/pull/198/
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Tested on riscv64-unknown-linux-gnu tuple.
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
Reviewers: hvr, bgamari, angerman
Reviewed By: angerman
Subscribers: rwbarton, thomie, erikd, carter, angerman
Differential Revision: https://phabricator.haskell.org/D4513
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|