- 02 Dec, 2011 2 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
When they existed, they were getting included in the includes_H_FILES variable (as it uses wildcard to find all header files). But the .depends files for the programs that generate the headers depend on $(includes_H_FILES), so the .depends files looked out-of-date once the headers had been created. This caused unnecessary make reinvocations. So now we put them in dist* directories, where they ought to be anyway.
-
- 19 Nov, 2011 1 commit
-
-
Ian Lynagh authored
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.
-
- 07 Oct, 2011 1 commit
-
-
dmp authored
This patch adds support to the autoconf scripts to detect when we are using a C compiler that uses an LLVM back end. An LLVM back end does not support all of the extensions use by GCC, so we need to perform some conditional compilation in the runtime, particularly for handling thread local storage and global register variables. The changes here will set the CC_LLVM_BACKEND in the autoconf scripts if we detect an llvm-based compiler. We use this variable to define the llvm_CC_FLAVOR variable that we can use in the runtime code to conditionally compile for LLVM.
-
- 16 Mar, 2011 1 commit
-
-
Ian Lynagh authored
This isn't important, but it stops us getting [...]/./[...] in the paths in bindists.
-
- 23 Jan, 2011 1 commit
-
-
Ian Lynagh authored
Note that some things depending on the rts/includes header files now depend on more files: They used to include depend on includes/*.h, but now they also depend on header files in subdirectories. As far as I can see this was a bug.
-
- 11 Jan, 2011 1 commit
-
-
Ian Lynagh authored
-
- 09 Jan, 2011 1 commit
-
-
Ian Lynagh authored
They're a little nicer now, and a regression in the cygwin build is fixed (the $i in the destination wasn't surviving being passed through cygpath).
-
- 06 Jan, 2011 1 commit
-
-
Ian Lynagh authored
cygwin's /bin/install doesn't set file modes correctly if the destination path is a C: style path: $ /bin/install -c -m 644 foo /cygdrive/c/cygwin/home/ian/foo2 $ /bin/install -c -m 644 foo c:/cygwin/home/ian/foo3 $ ls -l foo* -rw-r--r-- 1 ian None 0 2011-01-06 18:28 foo -rw-r--r-- 1 ian None 0 2011-01-06 18:29 foo2 -rwxrwxrwx 1 ian None 0 2011-01-06 18:29 foo3 This causes problems for bindisttest/checkBinaries.sh which then thinks that e.g. the userguide HTML files are binaries. We therefore use a /cygdrive path if we are on cygwin
-
- 06 Dec, 2010 1 commit
-
-
Ian Lynagh authored
-
- 17 Jul, 2010 1 commit
-
-
Ian Lynagh authored
This way it gets the defines for the right platform when cross-compiling
-
- 16 Jul, 2010 1 commit
-
-
Ian Lynagh authored
Now that we are trying to support cross compilation, we can't use "$(TARGETPLATFORM)" != "$(HOSTPLATFORM)" as a test for HC-porting.
-
- 09 Dec, 2009 1 commit
-
-
Ian Lynagh authored
We now just call gcc to get the dependencies directly
-
- 05 Nov, 2009 1 commit
-
-
Ian Lynagh authored
This means we can remove some conditional stuff from the Makefiles, and means the testsuite doesn't have to work out whether or not it's on Windows.
-
- 10 Sep, 2009 1 commit
-
-
Simon Marlow authored
-
- 02 Aug, 2009 1 commit
-
-
Simon Marlow authored
The first phase of this tidyup is focussed on the header files, and in particular making sure we are exposinng publicly exactly what we need to, and no more. - Rts.h now includes everything that the RTS exposes publicly, rather than a random subset of it. - Most of the public header files have moved into subdirectories, and many of them have been renamed. But clients should not need to include any of the other headers directly, just #include the main public headers: Rts.h, HsFFI.h, RtsAPI.h. - All the headers needed for via-C compilation have moved into the stg subdirectory, which is self-contained. Most of the headers for the rest of the RTS APIs have moved into the rts subdirectory. - I left MachDeps.h where it is, because it is so widely used in Haskell code. - I left a deprecated stub for RtsFlags.h in place. The flag structures are now exposed by Rts.h. - Various internal APIs are no longer exposed by public header files. - Various bits of dead code and declarations have been removed - More gcc warnings are turned on, and the RTS code is more warning-clean. - More source files #include "PosixSource.h", and hence only use standard POSIX (1003.1c-1995) interfaces. There is a lot more tidying up still to do, this is just the first pass. I also intend to standardise the names for external RTS APIs (e.g use the rts_ prefix consistently), and declare the internal APIs as hidden for shared libraries.
-
- 13 Jun, 2009 1 commit
-
-
Duncan Coutts authored
Nothing from gmp is used in the rts anymore.
-
- 30 May, 2009 1 commit
-
-
Ian Lynagh authored
I've also added some missing $s to some makefiles. These aren't technically necessary, but it's nice to be consistent.
-
- 19 May, 2009 1 commit
-
-
Simon Marlow authored
-
- 28 Apr, 2009 1 commit
-
-
Simon Marlow authored
# ----------------------------------------------------------------------------- # # (c) 2009 The University of Glasgow # # This file is part of the GHC build system. # # To understand how the build system works and how to modify it, see # http://hackage.haskell.org/trac/ghc/wiki/Building/Architecture # http://hackage.haskell.org/trac/ghc/wiki/Building/Modifying # # -----------------------------------------------------------------------------
-
- 26 Apr, 2009 1 commit
-
-
Ian Lynagh authored
-
- 06 Feb, 2009 1 commit
-
-
Simon Marlow authored
-
- 10 Aug, 2008 1 commit
-
-
Ian Lynagh authored
-
- 28 Aug, 2007 1 commit
-
-
Ian Lynagh authored
-
- 15 Aug, 2007 1 commit
-
-
Ian Lynagh authored
-
- 13 Aug, 2007 1 commit
-
-
gwright@antiope.com authored
ghc fails to build if you use an external gmp library. This is because ghc requires the header file gmp.h, which used to be provided by the internal gmp source code. The file gmp.h is no longer part of the gmp source code, but is generated as part of the build procedure. If an external gmp is specified, the internal gmp is not build and the gmp.h file never gets generated. Of course, it was a bad idea anyway to use a header file from a potentially different version of the library. The patch sets HAVE_LIB_GMP if the gmp library is found during configuration and conditionalizes including the library header file on it.
-
- 05 Jul, 2007 1 commit
-
-
Ian Lynagh authored
gmp is now in a top-level directory and we only have the tarball in the darcs repo. It gets untarred if it is needed.
-
- 05 Jun, 2007 1 commit
-
-
Ian Lynagh authored
-
- 26 Mar, 2007 2 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
-
- 17 Oct, 2006 1 commit
-
-
Simon Marlow authored
A GHC binary can generally build either registerised or unregisterised code, unless it is unregisterised only. The previous changes broke this, but I think I've now restored it.
-
- 12 Oct, 2006 1 commit
-
-
Ian Lynagh authored
We were constructing info tables designed for TABLES_NEXT_TO_CODE, but were building without TABLES_NEXT_TO_CODE. This patch also fixes a bug when we are unregisterised on amd64 and have code with an address above 2^32.
-
- 25 Aug, 2006 1 commit
-
-
Ian Lynagh authored
-
- 07 Apr, 2006 1 commit
-
-
Simon Marlow authored
Most of the other users of the fptools build system have migrated to Cabal, and with the move to darcs we can now flatten the source tree without losing history, so here goes. The main change is that the ghc/ subdir is gone, and most of what it contained is now at the top level. The build system now makes no pretense at being multi-project, it is just the GHC build system. No doubt this will break many things, and there will be a period of instability while we fix the dependencies. A straightforward build should work, but I haven't yet fixed binary/source distributions. Changes to the Building Guide will follow, too.
-
- 24 Mar, 2006 1 commit
-
-
duncan.coutts@worc.ox.ac.uk authored
I think this missing dep is what broke my parallel build I used make -j2 with ghc-6.4.2.20060323 and got: ------------------------------------------------------------------------ ==fptools== make boot -wr --jobserver-fds=3,11 -j; in /var/tmp/portage/ghc-6.4.2_pre20060323/work/ghc-6.4.2.20060323/ghc/includes ------------------------------------------------------------------------ Creating ghcplatform.h... Done. gcc -O -O2 -march=k8 -pipe -Wa,--noexecstack -c mkDerivedConstants.c -o mkDerivedConstants.o In file included from ghcconfig.h:5, from Stg.h:42, from Rts.h:19, from mkDerivedConstants.c:20: ghcplatform.h:1:1: unterminated #ifndef Done. With this patch applied I can no longer repoduce this build bug. So I think this patch should be applied to the cvs ghc-6-4-branch too.
-
- 21 Oct, 2005 1 commit
-
-
simonmar authored
Big re-hash of the threaded/SMP runtime This is a significant reworking of the threaded and SMP parts of the runtime. There are two overall goals here: - To push down the scheduler lock, reducing contention and allowing more parts of the system to run without locks. In particular, the scheduler does not require a lock any more in the common case. - To improve affinity, so that running Haskell threads stick to the same OS threads as much as possible. At this point we have the basic structure working, but there are some pieces missing. I believe it's reasonably stable - the important parts of the testsuite pass in all the (normal,threaded,SMP) ways. In more detail: - Each capability now has a run queue, instead of one global run queue. The Capability and Task APIs have been completely rewritten; see Capability.h and Task.h for the details. - Each capability has its own pool of worker Tasks. Hence, Haskell threads on a Capability's run queue will run on the same worker Task(s). As long as the OS is doing something reasonable, this should mean they usually stick to the same CPU. Another way to look at this is that we're assuming each Capability is associated with a fixed CPU. - What used to be StgMainThread is now part of the Task structure. Every OS thread in the runtime has an associated Task, and it can ask for its current Task at any time with myTask(). - removed RTS_SUPPORTS_THREADS symbol, use THREADED_RTS instead (it is now defined for SMP too). - The RtsAPI has had to change; we must explicitly pass a Capability around now. The previous interface assumed some global state. SchedAPI has also changed a lot. - The OSThreads API now supports thread-local storage, used to implement myTask(), although it could be done more efficiently using gcc's __thread extension when available. - I've moved some POSIX-specific stuff into the posix subdirectory, moving in the direction of separating out platform-specific implementations. - lots of lock-debugging and assertions in the runtime. In particular, when DEBUG is on, we catch multiple ACQUIRE_LOCK()s, and there is also an ASSERT_LOCK_HELD() call. What's missing so far: - I have almost certainly broken the Win32 build, will fix soon. - any kind of thread migration or load balancing. This is high up the agenda, though. - various performance tweaks to do - throwTo and forkProcess still do not work in SMP mode
-
- 17 Oct, 2005 1 commit
-
-
simonmar authored
if TARGETPLATFORM differs from HOSTPLATFORM, don't attempt to build DerivedConstants,h, ghcautoconf.h and GHCConstants.h. If these aren't present, emit a message to remind the user to copy them from the target system. Hopefully this should make bootstrapping slightly less error prone.
-
- 27 Mar, 2005 1 commit
-
-
panne authored
* Some preprocessors don't like the C99/C++ '//' comments after a directive, so use '/* */' instead. For consistency, a lot of '//' in the include files were converted, too. * UnDOSified libraries/base/cbits/runProcess.c. * My favourite sport: Killed $Id$s.
-
- 22 Mar, 2005 1 commit
-
-
simonmar authored
remove redundant dependency
-
- 02 Mar, 2005 1 commit
-
-
simonmar authored
fix cut-n-pasto in CLEAN_FILES
-