| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Rather than having a separate
foo_INSTALL_SHELL_WRAPPER
variable, we just use
foo_INSTALL && foo_SHELL_WRAPPER
|
| |
|
|
|
|
|
| |
These files contain the "+RTS -t --machin-readable" output, so that
we can spot performance regressions.
|
| |
|
|
|
|
|
|
|
|
|
| |
libraries/base/GHC/Base_HC_OPTS wasn't getting included, because we
were using libraries/base/./GHC/Base.lhs as the path, and the ./
meant we got the wrong filename.
I didn't use $(realpath ...) as the .hs file may be generated by hsc2hs
or similar, so may not exist when the HC_OPTS are constructed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
new file: ghc/ghc-cross.wrapper
new file: includes/mkDerivedConstants.cross.awk
new file: includes/mkSizeMacros.cross.awk
new file: rules/cross-compiling.mk
These are expected to sit quietly in the tree until
the rest of the machinery matures on an (upcoming)
branch. Reviews will begin to make sense as soon as
that has happened. Anyway, comments are welcome. See
<http://www.haskell.org/pipermail/cvs-ghc/2012-July/074456.html>
for background.
Disclaimer: these source files are not (yet) up to the
quality standards set by the rest of the tree.
Cleanups, move-arounds and rewrites (i.e. .awk -> .hs), as
well as additional comments and documentation will happen
as soon as the basic functionality of a cross-compiler is
working reliably.
|
|
|
|
|
| |
I don't think I completely understand what's going on here, but this
does seem to fix it, and morally it seems like the right thing.
|
| |
|
| |
|
|
|
|
|
| |
We also don't build DLLs for the dph-lifted-* packages as they depend
on ghc.
|
|
|
|
|
| |
The test isn't very pretty; it involves trawling through the
objdump -p output. I couldn't find an easier way, unfortuantely.
|
|\ |
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This change reduces the (default) verbosity of the build system.
This makes it easier to spot warnings in the output and, also, it
makes it easier to estimate how far along are we in the build process
by just glancing at the output.
To get the traditional fully verbose output, set V=1, like this:
make V=1
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Rename package database flags in both GHC and ghc-pkg so that they are
consistent with Cabal nomenclature.
Add a version check to the build system so that the correct set of
package db flags are used when the bootstrapping GHC has version < 7.5.
|
| | | |
|
| |/
|/|
| |
| |
| |
| | |
In particular, old-time assumes that mingw32_HOST_OS is set when
we are on Windows, and was going wrong on Win64 because it wasn't
defined.
|
|/
|
|
|
|
|
|
|
|
|
| |
This allows you to say things like
SRC_HC_WARNING_OPTS += -fno-warn-unsupported-calling-conventions
in mk/validate.mk.
Unfortunately, we can't just use SRC_HC_OPTS, as that gets put before
the more specific options (e.g. ghc-options in a .cabal file), many of
which include -Wall. So now we have:
ghc $(SRC_HC_OPTS) ... options from .cabal etc ... $(SRC_HC_WARNING_OPTS)
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
compiler/coreSyn/CoreLint.lhs
compiler/deSugar/DsBinds.lhs
compiler/hsSyn/HsTypes.lhs
compiler/iface/IfaceType.lhs
compiler/rename/RnHsSyn.lhs
compiler/rename/RnTypes.lhs
compiler/stgSyn/StgLint.lhs
compiler/typecheck/TcHsType.lhs
compiler/utils/ListSetOps.lhs
|
| | |
|
| | |
|
|\ \
| |/
| |
| |
| | |
Conflicts:
compiler/coreSyn/CoreLint.lhs
|
| |
| |
| |
| | |
Patchset from Stephen Blackheath <stephen.blackheath@ipwnstudios.com>
|
| |
| |
| |
| |
| |
| | |
We only use --with-alex / --with-happy if we know where alex / happy
are. In particular, we don't need them when building from a source
tarball.
|
|\ \
| |/ |
|
| |
| |
| |
| |
| | |
This is working towards being able to put ghcautoconf.h and
ghcplatform.h in includes/dist
|
|/ |
|
| |
|
|
|
|
|
| |
They made a dependency cycle in the rules used to build the touch
program on Windows.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With Windows 7 in a vitrual box VM on OS X, some very odd things happen
with dates and time stamps when SSHing into cygwin. e.g. here the
"Change" time is in the past:
$ date; touch foo; stat foo
Fri Dec 2 16:58:07 GMTST 2011
File: `foo'
Size: 0 Blocks: 0 IO Block: 65536 regular
empty file
Device: 540aba0bh/1409989131d Inode: 562949953592977 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ian) Gid: ( 513/ None)
Access: 2011-12-02 16:58:07.414457900 +0000
Modify: 2011-12-02 16:58:07.414457900 +0000
Change: 2011-12-02 16:58:03.495141800 +0000
Birth: 2011-12-02 16:57:57.731469900 +0000
And if we copy such a file, then the copy is older (as determined by the
"Modify" time) than the original:
$ date; touch foo; stat foo; cp foo bar; stat bar
Fri Dec 2 16:59:10 GMTST 2011
File: `foo'
Size: 0 Blocks: 0 IO Block: 65536 regular
empty file
Device: 540aba0bh/1409989131d Inode: 1407374883725128 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ian) Gid: ( 513/ None)
Access: 2011-12-02 16:59:10.118457900 +0000
Modify: 2011-12-02 16:59:10.118457900 +0000
Change: 2011-12-02 16:59:06.189477700 +0000
Birth: 2011-12-02 16:57:57.731469900 +0000
File: `bar'
Size: 0 Blocks: 0 IO Block: 65536 regular
empty file
Device: 540aba0bh/1409989131d Inode: 281474976882512 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ ian) Gid: ( 513/ None)
Access: 2011-12-02 16:59:06.394555800 +0000
Modify: 2011-12-02 16:59:06.394555800 +0000
Change: 2011-12-02 16:59:06.395532400 +0000
Birth: 2011-12-02 16:58:40.921899600 +0000
This means that make thinks that things are out of date when it
shouldn't, so reinvokes itself repeatedly until the MAKE_RESTARTS
infinite-recursion test triggers.
The touchy program, like most other programs, creates files with both
Modify and Change in the past, which is still a little odd, but is
consistent, so doesn't break make.
|
|
|
|
| |
These reduce the amount of memory that ld takes when linking.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Terminology cleanup: the type "Ticks" has been renamed "Time", which
is an StgWord64 in units of TIME_RESOLUTION (currently nanoseconds).
The terminology "tick" is now used consistently to mean the interval
between timer signals.
The ticker now always ticks in realtime (actually CLOCK_MONOTONIC if
we have it). Before it used CPU time in the non-threaded RTS and
realtime in the threaded RTS, but I've discovered that the CPU timer
has terrible resolution (at least on Linux) and isn't much use for
profiling. So now we always use realtime. This should also fix
The default tick interval is now 10ms, except when profiling where we
drop it to 1ms. This gives more accurate profiles without affecting
runtime too much (<1%).
Lots of cleanups - the resolution of Time is now in one place
only (Rts.h) rather than having calculations that depend on the
resolution scattered all over the RTS. I hope I found them all.
|
|
|
|
|
|
|
|
|
|
| |
We avoid calling "rm -rf" with no file arguments; this fixes cleaning
on Solaris, where that fails.
We also check for suspicious arguments: anything containing "..",
starting "/", or containing a "*" (you need to call $(wildcard ...)
yourself now if you really want globbing). This should make things
a little safer.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Add documentation describing all the variables that contain options
for Haskell compilations, what they mean and where they are (or can
be) defined.
In due course we should expand this to cover all the build system
variables, and move it to the wiki, but this is a start.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Every Haskell compilation in a package should depend on the
package-data.mk file for that package. Then, if a package's version
number is bumped, we will recompile all the modules in the package so
that their interface files get the new version number.
This should mean that a simple 'make' will succeed in a couple of
scenarios where it didn't before:
1. re-configuring bumps the version number of GHC, so everything
in the ghc package (stages 1 & 2) must be recompiled.
2. bumping the version of one of the boot packages does not require
a make clean any more.
I have tested (1) but not (2).
LAX_DEPENDENCIES=YES disabled these new dependencies too.
|
|
|
|
|
|
|
|
|
|
|
|
| |
There are a number of things which technically depend on GHC (e.g. if
ghc changes then Haskell files may be compiled differently, or Cabal
packages may be configured differently). However, in practice, having
a real dependency on GHC is just a pain: We normally don't want to
spend time recompiling other things while we're working on the
compiler, and even if we did, GHC will normally decide compilation
isn't needed anyway. So by default we use order-only dependencies on
GHC, i.e. GHC must exist, but if it's newer than other targets then
rebuilding is not necessary.
|
|
|
|
|
| |
source code to be compiled with the stage 0 compiler. (bug noticed by
David Terei - thanks!)
|
|
|
|
|
| |
files, so that it can refer to variables defined there. (necessary,
but perhaps not sufficient, to fix the DPH build bugs)
|
| |
|
|
|
|
| |
The change to the packages file format broke it
|
|
|
|
|
|
| |
having this meant we weren't getting -no-user-package-conf, which
caused a build failure for me due to locally-installed packages being
used instead of ones in the tree.
|
| |
|
|
|
|
| |
They can now be set in the settings file instead
|
| |
|
| |
|
| |
|
| |
|