- 26 Sep, 2017 1 commit
-
-
Ben Gamari authored
For reasons that I don't entirely understand we didn't previously detect `strip` using autoconf. This naturally broke during cross-compilation. How did this ever work? I have no idea. Test Plan: Try cross-compiling Reviewers: austin, hvr, angerman Subscribers: rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D4008
-
- 09 Sep, 2017 1 commit
-
-
Herbert Valerio Riedel authored
This isn't needed anymore as we don't support GHC < 8 anymore. This is a follow-up to 122f183d
-
- 06 Sep, 2017 1 commit
-
-
Moritz Angermann authored
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
-
- 13 Jul, 2017 1 commit
-
-
Tamar Christina authored
Summary: This temporarily disabled split-sections again on Windows because of the overhead in linking it introduces. Unfortunately because BFD is so slow a testsuite run gets almost 2x slower. Simply linking Hello World takes an unacceptable long time. So for now, it'll be disabled as we look into different linkers such as LLD. Test Plan: ./validate Reviewers: austin, bgamari Subscribers: rwbarton, thomie GHC Trac Issues: #12913 Differential Revision: https://phabricator.haskell.org/D3731
-
- 07 Jul, 2017 1 commit
-
-
Tamar Christina authored
Summary: Initial implementation of split-section on Windows. This also corrects section namings and uses the platform convention of `$` instead of `.` to separate sections. Implementation is based on @awson's patches to binutils. Binutils requires some extra help when compiling the libraries for GHCi usage. We drop the `-T` and use implicit scripts to amend the linker scripts instead of replacing it. Because of these very large GHCi object files, we need big-obj support, which will be added by another patch. Test Plan: ./validate Reviewers: awson, austin, bgamari Subscribers: dfeuer, rwbarton, thomie, snowleopard, #ghc_windows_task_force GHC Trac Issues: #12913 Differential Revision: https://phabricator.haskell.org/D3383
-
- 03 Jul, 2017 1 commit
-
-
Ben Gamari authored
terminfo no longer needs to be able to find the ncurses headers. See https://github.com/judah/terminfo/pull/22. Reviewers: austin, hvr Subscribers: rwbarton, thomie, erikd Differential Revision: https://phabricator.haskell.org/D3688
-
- 23 May, 2017 2 commits
-
-
Gabor Greif authored
-
Sergei Trofimovich authored
It's not a new behaviour. First it was introduced by 2d5372cf ("lower -O2 optimization down to -O1 on UNREG") to fix build failure on unregisterised powerpc64. This time I've noticed build failures on unregisterised ia64. The change was accidentally reverted by commit 14d0f7f1 ("Build system: Add stage specific SRC_HC_(WARNING_)OPTS) The revert happened due to the following code rearrangement: ifeq "$(GhcUnregisterised)" "YES" GhcStage1HcOpts= GhcStage2HcOpts= GhcStage3HcOpts= endif GhcUnregisterised=@Unregisterised@ As a result 'ifeq' part has no effect. The change moves 'ifeq' down to the very end of file and adds a note it depends on the 'GhcUnregisterised' variable. Signed-off-by:
Sergei Trofimovich <slyfox@gentoo.org>
-
- 21 Apr, 2017 1 commit
-
-
Fangrui Song authored
The change fixes case of installing cross-built GHC from bindist (BINDIST=YES) on TARGET. In this case we need to use TARGET tools in `INSTALLED_GHC{,_PKG}_REAL`. The original change is provided by Fangrui Song as pull request https://github.com/ghc/ghc/pull/34Signed-off-by:
Sergei Trofimovich <slyfox@gentoo.org>
-
- 12 Apr, 2017 1 commit
-
-
rwbarton authored
DYNAMIC_GHC_PROGRAMS and GhcDynamic both tried to control whether the ghc binary was built as a dynamic executable, with confusing results. In particular, setting GhcDynamic=NO has no effect on systems where DYNAMIC_GHC_PROGRAMS defaults to YES. DYNAMIC_GHC_PROGRAMS is more fully-featured (it ensures that the correct flavor of the libraries is built, for example) so let's keep it and remove GhcDynamic to reduce confusion. This effectively reverts commit 3c6190b0. Test Plan: tested locally; harbormaster Reviewers: simonmar, austin, bgamari Reviewed By: bgamari Subscribers: thomie, snowleopard Differential Revision: https://phabricator.haskell.org/D3428
-
- 06 Apr, 2017 3 commits
-
-
Sergei Trofimovich authored
HaveLibDL substitution was removed from configure.ac in 2014 with 9692393d commit. Noticed when scrolled through 'config.mk' which contained unsunstituted assignment after './configure' run: HaveLibDL = @HaveLibDL@ Signed-off-by:
Sergei Trofimovich <slyfox@gentoo.org>
-
Sergei Trofimovich authored
Suppose we are crossbuilding ghc (when ghc-stage2 is a normal compiler for $target): For this case 'make install' should install unprefixed stage2 'ghc' and not '$(CorssCompilePrefix)-ghc'. That way cross-built ghc is installable and usable on target as if it would be built natively on a target. Signed-off-by:
Sergei Trofimovich <slyfox@gentoo.org>
-
Sergei Trofimovich authored
$(CrossCompilePrefix) is used only in 'make install' target filenames in $(DESTDIR). None of inplace (or boot) files contain $(CrossCompilePrefix). Thus we don't need to worry about phases. Signed-off-by:
Sergei Trofimovich <slyfox@gentoo.org>
-
- 24 Mar, 2017 1 commit
-
-
Ben Gamari authored
Reviewers: austin, hvr, erikd Reviewed By: erikd Subscribers: rwbarton, thomie, erikd, snowleopard Differential Revision: https://phabricator.haskell.org/D3367
-
- 28 Feb, 2017 2 commits
-
-
Ben Gamari authored
Test Plan: Validate Reviewers: angerman, austin, rwbarton Subscribers: thomie, snowleopard Differential Revision: https://phabricator.haskell.org/D3242
-
Ben Gamari authored
This is a common thing that users who cross-compile must fight against. It turns out that it's pretty straightforward to make is convenient. Test Plan: Cross compile without a target `ncurses` available Reviewers: danharaj, hvr, erikd, austin, rwbarton Subscribers: rwbarton, thomie, snowleopard Differential Revision: https://phabricator.haskell.org/D3177
-
- 04 Feb, 2017 2 commits
-
-
Takenobu Tani authored
There ware some old file names (.lhs, ...) at comments. * mk/config.mk.in - compiler/hsSyn/HsExpr.lhs -> HsExpr.hs * utils/ghc-pkg/Main.hs - compiler/main/Packages.lhs -> Packages.hs * utils/genapply/Main.hs - CgRetConv.lhs -> * REMOVE THIS COMMENT (OLDER FILE THAN GHC6) * - Constants.lhs -> Constants.hs - compiler/codeGen/CgCallConv.lhs -> compiler/codeGen/StgCmmLayout.hs - Apply.hc -> Apply.cmm - HeapStackCheck.hc -> HeapStackCheck.cmm Reviewers: mpickering, austin, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D3077
-
rwbarton authored
Commit 266a9dc4 changed = to := in one place in mk/config.mk.in. This broke SupportsSplitSections because the variable LdIsGNULd that it depends on is not defined until later in the file. Test Plan: pushed to a wip/ branch for perf to build Reviewers: DemiMarie, austin, bgamari, mpickering Reviewed By: mpickering Subscribers: mpickering, thomie Differential Revision: https://phabricator.haskell.org/D3070 GHC Trac Issues: #13230
-
- 10 Jan, 2017 1 commit
-
-
dobenour authored
Test Plan: GHC CI Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D2879
-
- 27 Dec, 2016 1 commit
-
-
Peter Trommler authored
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
-
- 16 Dec, 2016 1 commit
-
-
olsner authored
On non-windows platforms with GNU ld, enable SplitSections in the GHC build by default. Reviewers: austin, bgamari Reviewed By: bgamari Subscribers: DemiMarie, thomie Differential Revision: https://phabricator.haskell.org/D1800 GHC Trac Issues: #11445
-
- 15 Dec, 2016 1 commit
-
-
Sergei Trofimovich authored
Before the change result of expression ArchSupportsSMP="$(if $(filter $(ARM_ISA),ARMv5 ARMv6),NO,YES)" to evaluate to ArchSupportsSMP="YES" After the change it's ArchSupportsSMP=YES Thanks to orion for the fix! Fixes Trac #12981Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
- 10 Nov, 2016 1 commit
-
-
Ben Gamari authored
Test Plan: Try `./configure HC_OPTS_STAGE0=-foobar` and watch it fail Reviewers: austin, hvr Subscribers: thomie, erikd Differential Revision: https://phabricator.haskell.org/D2674
-
- 01 Sep, 2016 1 commit
-
-
Ben Gamari authored
It was removed long ago in cf403b50. Thanks for @rwbarton for catching this. Updates nofib submodule. Test Plan: Validate Reviewers: austin, rwbarton Subscribers: thomie, rwbarton Differential Revision: https://phabricator.haskell.org/D2493 GHC Trac Issues: #12443
-
- 16 Jul, 2016 1 commit
-
-
Ben Gamari authored
Test Plan: Try it Reviewers: hvr, simonmar, austin, erikd Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1722 GHC Trac Issues: #11094
-
- 31 May, 2016 1 commit
-
-
Erik de Castro Lopo authored
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
-
- 24 May, 2016 1 commit
-
-
thomie authored
-
- 10 May, 2016 1 commit
-
-
Erik de Castro Lopo authored
[skip ci]
-
- 16 Apr, 2016 1 commit
-
-
Herbert Valerio Riedel authored
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
-
- 27 Mar, 2016 1 commit
-
-
Herbert Valerio Riedel authored
This was introduced in 109a1e53 but isn't needed anymore because by now we're bootstrapping with GHC versions which already provide "ld command" in `ghc --info` (that field was added in GHC 7.8)
-
- 24 Mar, 2016 1 commit
-
-
Herbert Valerio Riedel authored
This extends the previous work to revive the unregisterised GHC build for AIX/ppc32. Strictly speaking, AIX runs on POWER4 (and later) hardware, but the PPC32 instructions implemented in the PPC NCG represent a compatible subset of the POWER4 ISA. IBM AIX follows the PowerOpen ABI (and shares many similiarites with the Linux PPC64 ELF V1 NCG backend) but uses the rather limited XCOFF format (compared to ELF). This doesn't support dynamic libraries yet. A major limiting factor is that the AIX assembler does not support the `@ha`/`@l` relocation types nor the ha16()/lo16() functions Darwin's assembler supports. Therefore we need to avoid emitting those. In case of numeric literals we simply compute the functions ourselves, while for labels we have to use local TOCs and hope everything fits into a 16bit offset (for ppc32 this gives us at most 16384 entries per TOC section, which is enough to compile GHC). Another issue is that XCOFF doesn't seem to have a relocation type for label-differences, and therefore the label-differences placed into tables-next-to-code can't be relocated, but the linker may rearrange different sections, so we need to place all read-only sections into the same `.text[PR]` section to workaround this. Finally, the PowerOpen ABI distinguishes between function-descriptors and actualy entry-point addresses. For AIX we need to be specific when emitting assembler code whether we want the address of the function descriptor `printf`) or for the entry-point (`.printf`). So we let the asm pretty-printer prefix a dot to all emitted subroutine calls (i.e. `BL`) on AIX only. For now, STG routines' entry-point labels are not prefixed by a label and don't have any associated function-descriptor. Reviewers: austin, trommler, erikd, bgamari Reviewed By: trommler, erikd, bgamari Differential Revision: https://phabricator.haskell.org/D2019
-
- 05 Feb, 2016 1 commit
-
-
Ben Gamari authored
-9e is crazy expensive for very little pay-off. See http://smart-cactus.org/~ben/posts/2016-02-04-compression-comparison.html for details.
-
- 25 Jan, 2016 1 commit
-
-
Ben Gamari authored
We are unable to produce load/store barriers for pre-ARMv7 targets. Phab:D894 added dummy cases to SMP.h for these barriers to prevent the build from failing under the assumption that there are no SMP-capable devices of this vintage. However, #10433 points out that it is more correct to simply set NOSMP for such targets. Tested By: rwbarton Test Plan: Validate Reviewers: erikd, rwbarton, austin Reviewed By: rwbarton Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1704 GHC Trac Issues: #10433
-
- 18 Jan, 2016 1 commit
-
-
Edward Z. Yang authored
A small cosmetic change, but we have to do a bit of work to actually support it: - Cabal submodule update, so that Cabal passes us -this-unit-id when we ask for it. This includes a Cabal renaming to be consistent with Unit ID, which makes ghc-pkg a bit more scrutable. - Build system is updated to use -this-unit-id rather than -this-package-key, to avoid deprecation warnings. Needs a version test so I resurrected the old test we had (sorry rwbarton!) - I've *undeprecated* -package-name, so that we are in the same state as GHC 7.10, since the "correct" flag will have only entered circulation in GHC 8.0. - I removed -package-key. Since we didn't deprecate -package-id I think this should not cause any problems for users; they can just change their code to use -package-id. - The package database is indexed by UNIT IDs, not component IDs. I updated the naming here. - I dropped the signatures field from ExposedModule; nothing was using it, and instantiatedWith from the package database field. - ghc-pkg was updated to use unit ID nomenclature, I removed the -package-key flags but I decided not to add any new flags for now. Signed-off-by:
Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: austin, hvr, bgamari Reviewed By: bgamari Subscribers: 23Skidoo, thomie, erikd Differential Revision: https://phabricator.haskell.org/D1780
-
- 17 Jan, 2016 1 commit
-
-
Ben Gamari authored
Test Plan: validate, check that gz is used Reviewers: hvr, austin, thomie Reviewed By: thomie Differential Revision: https://phabricator.haskell.org/D1788 GHC Trac Issues: #11434
-
- 15 Jan, 2016 1 commit
-
-
Ben Gamari authored
Resolves #11434.
-
- 07 Jan, 2016 1 commit
-
-
Gabor Greif authored
-
- 01 Jan, 2016 1 commit
-
-
Sergei Trofimovich authored
There is CONF_CC_OPTS_STAGE$(N) but not CONF_CC_OPTS thus option does not work for a while. Signed-off-by:
Sergei Trofimovich <siarheit@google.com>
-
- 31 Dec, 2015 2 commits
-
-
Herbert Valerio Riedel authored
As we're requiring GHC >= 7.10 now, the conditional handling introduced in 9e133b9d for addressing #8182 can be made unconditional, and thus simplify the build-system a little bit.
-
Herbert Valerio Riedel authored
This code was introduced in 66218d15 to use `-package-name` for GHC 7.8, whereas GHC 7.10 needs the new `-this-package-key` flag.
-