summaryrefslogtreecommitdiff
path: root/mk
Commit message (Collapse)AuthorAgeFilesLines
* Remove external coreAustin Seipp2014-05-031-19/+0
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* Remove -fno-warn-amp sledgehammers for validateAustin Seipp2014-04-201-2/+0
| | | | | | | | GHC should now fully compliant with respect to the Applicative Monad proposal (including all upstream libraries), and does not need to suppress this warning anymore. Signed-off-by: Austin Seipp <austin@well-typed.com>
* add --with-ar and --with-ranlib configure parametersKarel Gardas2014-03-221-0/+1
| | | | | | | | Both --with-ar and --with-ranlib are usable on non-GNU/Linux systems where GNU tools are usually installed (or possible to install), but not into standard location nor with standard name. Tested on Solaris 10. Signed-off-by: Austin Seipp <austin@well-typed.com>
* config.mk.in: ARM now supports dynamic linking with the LLVM backendBen Gamari2014-03-131-2/+1
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* disable shared libs on sparc (linux/solaris) (fixes #8857)Karel Gardas2014-03-131-1/+3
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* fix SHELL makefile variable to be set by the configure script (fixes #8783)Karel Gardas2014-03-131-1/+1
| | | | | | The patch provided by Christian Maeder <Christian.Maeder@dfki.de> Signed-off-by: Karel Gardas <karel.gardas@centrum.cz> Signed-off-by: Austin Seipp <austin@well-typed.com>
* Fix copy-paste error in build system commentJohan Tibell2014-03-101-2/+2
|
* Add "bench" build flavour to build systemJohan Tibell2014-03-101-0/+64
| | | | | | | This build generates the same code as the "perf" build and is thus good for compiling benchmarks and inspecting the generated code. However, it compiles the stage2 compiler faster at the expense of compiler user programs more slowly.
* binary-dist: when using xz, use extreme compression.Austin Seipp2014-02-281-1/+1
| | | | | | | | | | | | When building a binary distribution with TAR_COMP=xz, using the -9e flag (extremely high compression) results in substantial savings: for the Mavericks builds, bzip2 scores in at about 120mb, while xz at level 9 scores about 60mb - a huge reduction! This of course takes significantly longer - but it does not affect decompression speed for end users, so it's certainly worth it. Signed-off-by: Austin Seipp <austin@well-typed.com>
* Follow-up to 32f41c79Herbert Valerio Riedel2014-02-261-2/+2
| | | | | | | These parts were forgotten to be committed together with the rest of 32f41c79960ffc1d04c4573acb37756109d279a5 Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* Make distribution tarball compression format configurableHerbert Valerio Riedel2014-02-261-0/+18
| | | | | | | | | | | | | By default, bzip2 compression is selected (which is what has been used till now). Additionally, by setting the TAR_COMP make variable to one of the values "bzip2", "gzip", or "xz", an explicit compression format can be requested for the distribution tarballs. For instance, invoking make TAR_COMP=xz sdist-ghc will result in a tarball `./sdistprep/ghc-7.9.20140226-src.tar.xz` Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
* mk/config.mk.in: lower -O2 optimization down to -O1 on UNREGSergei Trofimovich2014-02-171-0/+10
| | | | | | | | | | | | | Disable -O2 optimization. Otherwise amount of generated C code makes things very slow to compile (~5 minutes on core-i7 for 'compiler/hsSyn/HsExpr.lhs') And sometimes not compile at all (powerpc64 overflows something on 'compiler/hsSyn/HsExpr.lhs'). Issue #8748 Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org> Signed-off-by: Austin Seipp <austin@well-typed.com>
* Add a perf-cross build setting.Luke Iannini2014-01-301-0/+26
| | | | | | | This is for building performance-optimized cross compilers (e.g. the iOS target.) Signed-off-by: Austin Seipp <austin@well-typed.com>
* build.mk.sample: Don't disable dynamic linking for LLVM flavoursBen Gamari2014-01-271-6/+0
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* Re-enable DYNAMIC_GHC_PROGRAMS for FreeBSD.Gabor Pali2014-01-171-4/+0
| | | | | All actively supported releases (8.4-RELEASE, 9.2-RELEASE and the upcoming 10.0-RELEASE) now support resolution of $ORIGIN properly.
* Disable -dynamic-too on WindowsAustin Seipp2014-01-141-0/+1
| | | | Signed-off-by: Austin Seipp <austin@well-typed.com>
* Add Windows to NoSharedLibsPlatformListAustin Seipp2014-01-131-15/+4
| | | | | | | | | | We're punting on full -dynamic and -dynamic-too support for Windows right now, since it's still unstable. Also, ensure "Support dynamic-too" in `ghc --info` is set to "NO" for Cabal. See issues #7134, #8228, and #5987 Signed-off-by: Austin Seipp <austin@well-typed.com>
* Lower unfolding threshold for windows (again.)Austin Seipp2014-01-071-1/+1
| | | | | | | | We creeped back up again past the symbol threshold on my test x86_64 win2k8 test machine. This brings it down to 60600 symbols in split windows DLL. Signed-off-by: Austin Seipp <austin@well-typed.com>
* Temporarily lower unfolding threshold on WindowsAustin Seipp2013-11-221-0/+14
| | | | | | | | | | | | | | | | | This is a very temporary, very unsatisfactory hack to fix #5987 (for now.) The included comments essentially say it all: we lower the unfolding threshold to minimize some amount of exported symbols from the GHC stage2 DLL. I unfortunately had to lower it quite substantially for the dynamic stage2 build to pass. As of this writing, the DLL split between ghc.dll and ghc-0.dll is something like 26,000 vs 63,000 exported symbols, respectively. So we're still quite in danger of tripping it, but I think we will be OK at this exact moment. Signed-off-by: Austin Seipp <austin@well-typed.com>
* Add build.mk.sample entry for Cross CompilationAustin Seipp2013-10-251-0/+24
| | | | | | | This is suitable e.g. for iOS. Authored-by: Authored-by: Luke Iannini <lukexi@me.com> Signed-off-by: Austin Seipp <austin@well-typed.com>
* Globally replace "hackage.haskell.org" with "ghc.haskell.org"Simon Marlow2013-10-011-2/+2
|
* Implement the AMP warning (#8004)Austin Seipp2013-09-111-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | This patch implements a warning when definitions conflict with the Applicative-Monad Proposal (AMP), described in #8004. Namely, this will cause a warning iff: * You have an instance of Monad, but not Applicative * You have an instance of MonadPlus, but not Alternative * You locally defined a function named join, <*>, or pure. In GHC 7.10, these warnings will actually be enforced with superclass constraints through changes in base, so programs will fail to compile then. This warning is enabled by default. Unfortunately, not all of our upstream libraries have accepted the appropriate patches. So we temporarily fix ./validate by ignoring the AMP warning. Dan Rosén made an initial implementation of this change, and the remaining work was finished off by David Luposchainsky. I finally made some minor refactorings. Authored-by: Dan Rosén <danr@chalmers.se> Authored-by: David Luposchainsky <dluposchainsky@gmail.com> Signed-off-by: Austin Seipp <austin@well-typed.com>
* Make sure -fcmm-sink is passed to Parser properlyAustin Seipp2013-09-041-0/+2
| | | | | | | | | | | | | | | | | | | Parser.hs needs to be compiled with -fcmm-sink on x86 platforms, so the register allocator doesn't run out of stack slots. Previously, we had to do some CPP hacks in order to emit an #ifdef into the file - this is because we preprocess it once up front, and run the preprocessor again when we compile it. There's two cases: the boostrap compiler is > 7.8, and the stage1 parser needs the flag, or the stage1 compiler is compiling the stage2 Parser.hs, and needs the flag.. The previous approach was super fragile with Clang. The more principled fix is to instead do this through the build system. This fixes #8182. Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Hack-fix build breakage on Linux/GCC from fc4856f9Herbert Valerio Riedel2013-09-041-1/+1
| | | | | | | | For some reason, the new `GccIsClang` variable introduced via fc4856f9e811d9a23ae9212f43a09ddf5ef12b26 for addressing #8148 isn't set explicitly to `NO`; so this simply changes the test `ifeq $(GccIsClang) NO` to `ifneq $(GccIsClang) YES` which should fix the build with and w/o Clang.
* Make validate play nice with clang (for Xcode 5 command line tools)Manuel M T Chakravarty2013-09-042-0/+10
| | | | * This partially fixes #8148. However, --with-ghc-4.8 will still not work given the rather dubious m4 macros and the failures in the test suite due to '-nodefaultlibs' still need to be fixed.
* Patch by lukexi.Gabor Greif2013-09-031-1/+1
| | | | Fixing #8217 for the unix(-like) case.
* Delete trailing whitespace in mk/config.mk.inAustin Seipp2013-08-241-12/+12
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Add support for iOS simulator (issue #8152).Austin Seipp2013-08-241-2/+2
| | | | | | | | The iOS simulator is essentially an iOS target but for an x86 machine instead. It doesn't support the native code generator either, though. Authored-by: Stephen Blackheath <...@blacksapphire.com> Signed-off-by: Austin Seipp <aseipp@pobox.com>
* iOS: generate archive files when compiling.Austin Seipp2013-08-141-5/+5
| | | | | | | | | | | When cross compiling to iOS, we generate archive files which are linked into the final executable. We already *did* generate archive files - just with the wrong suffix. Fixes #8125. Authored-by: Stephen Blackheath <...@blacksapphire.com> Signed-off-by: Austin Seipp <aseipp@pobox.com>
* mk/config.mk.in : Add powerpc-unknown-linux to NoSharedLibsPlatformList.Erik de Castro Lopo2013-08-051-1/+1
| | | | | Dynamic libraries on powerpc linux are currently broken. See: http://hackage.haskell.org/trac/ghc/ticket/8024
* Merge branch 'master' of http://darcs.haskell.org/ghcIan Lynagh2013-07-031-4/+0
|\
| * Do not build dynamic libraries with the perf-llvm BuildFlavour.Geoffrey Mainland2013-07-021-4/+0
| |
* | Change the ranlib detectionIan Lynagh2013-07-031-1/+2
|/ | | | | | | | On Windows, the ranlib in the path may not be the right ranlib (it may be the 32bit ranlib when we are making a Win64 compiler, or vice-versa). Therefore we can't leave it up to libffi to detect the right ranlib, but need to tell it which ranlib to use. This means that we need to find ranlib even if we don't actually need it ourselves.
* Suppress some more warnings from Clang.Austin Seipp2013-06-181-1/+1
| | | | | | | | | | | | | | | | It likes to think lambdas a la: foo $ \u -> ... represent a kind of unicode extended literal. It also gets confused when you have things like: ... thing ... {- comment ... (???) -} where the (???) is mistaken as a trigraph. Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Add some missing clang bits to the build system.Austin Seipp2013-06-172-1/+7
| | | | Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Cleaning fixes, and other build system tweaks; part of #7941Ian Lynagh2013-06-141-1/+0
|
* Change how we check that we have a suitable 'make'Ian Lynagh2013-06-091-6/+0
| | | | We now check in the same way that the testsuite does.
* Build statically when using LLVM.Geoffrey Mainland2013-05-311-0/+6
| | | | The LLVM back end does not yet work when building dynamically.
* add arm-unknown-linux to platforms which do not support shared libsKarel Gardas2013-05-301-1/+1
| | | | | | | | | This patch disables shared libs support on arm-unknown-linux platform. It unbreaks ghc-stage2 on this platform after recent Ian's changes in dynamic/shared libs domain. The reason why ghc-stage2 fails when linked with shared libs is still unknown so this is just a workaround at the moment, but it at least recovers previous "correct" behavior of ghc-stage2 on ARM/Linux
* set DYNAMIC_GHC_PROGRAMS to NO if platform does not support shared libsKarel Gardas2013-05-301-0/+2
|
* Reorganize mk/build.mk.sample a little.Austin Seipp2013-05-041-21/+23
| | | | | | | People are probably more likely to notice some useful variables if they're located closer to the top (like V=0 and stage=2.) Signed-off-by: Austin Seipp <aseipp@pobox.com>
* Set DYNAMIC_GHC_PROGRAMS=NO for FreeBSD because $ORIGIN is not resolvedGabor Pali2013-04-271-0/+4
| | | | properly (see #7819)
* pass the correct -Dxxx_HOST_ARCH and -Dxxx_HOST_OS to hsc2hs; Fixes #7761.Ian Lynagh2013-04-211-0/+3
| | | | Patch from Stephen Blackheath.
* Use different exeext variables for each stage; fixes #7709Ian Lynagh2013-04-201-1/+4
| | | | | Currently they are all set to the same value, but when cross-compiling they could be set to different values.
* Remove the Windows installerIan Lynagh2013-04-201-7/+0
| | | | We now leave making installers to the Haskell Platform.
* Some build system refactoringIan Lynagh2013-04-201-9/+3
|
* In build.mk.sample, include v in GhcLibWays even if DYNAMIC_GHC_PROGRAMS is setIan Lynagh2013-04-031-1/+1
| | | | | Although it's not technically needed, it's less confusing if the vanilla way works when people use the sample build.mk.
* ticky enhancementsNicolas Frisby2013-03-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * the new StgCmmArgRep module breaks a dependency cycle; I also untabified it, but made no real changes * updated the documentation in the wiki and change the user guide to point there * moved the allocation enters for ticky and CCS to after the heap check * I left LDV where it was, which was before the heap check at least once, since I have no idea what it is * standardized all (active?) ticky alloc totals to bytes * in order to avoid double counting StgCmmLayout.adjustHpBackwards no longer bumps ALLOC_HEAP_ctr * I resurrected the SLOW_CALL counters * the new module StgCmmArgRep breaks cyclic dependency between Layout and Ticky (which the SLOW_CALL counters cause) * renamed them SLOW_CALL_fast_<pattern> and VERY_SLOW_CALL * added ALLOC_RTS_ctr and _tot ticky counters * eg allocation by Storage.c:allocate or a BUILD_PAP in stg_ap_*_info * resurrected ticky counters for ALLOC_THK, ALLOC_PAP, and ALLOC_PRIM * added -ticky and -DTICKY_TICKY in ways.mk for debug ways * added a ticky counter for total LNE entries * new flags for ticky: -ticky-allocd -ticky-dyn-thunk -ticky-LNE * all off by default * -ticky-allocd: tracks allocation *of* closure in addition to allocation *by* that closure * -ticky-dyn-thunk tracks dynamic thunks as if they were functions * -ticky-LNE tracks LNEs as if they were functions * updated the ticky report format, including making the argument categories (more?) accurate again * the printed name for things in the report include the unique of their ticky parent as well as if they are not top-level
* Fix build with non-Linux ELF OSesIan Lynagh2013-03-201-1/+7
| | | | | | | We were only setting an RPATH for the RTS DLL on Linux, but as far as I can see we should be doing it for all ELF OSes. Hopefully this will fix the problem where the installed ghc-pkg can't find libffi.dll on FreeBSD.
* Be more optimistic about which platforms support shared librariesIan Lynagh2013-03-191-12/+6
| | | | | Pretty much everything does now, so list those that don't instead instead of listing those that do.