On 12/12/2009 08:19, Manuel M T Chakravarty wrote:
I think this is since the new c_asm.bit dependency stuff was introduced.  The 
problem only seems to happen in a very parallel build, and my guess is that 
this happens on any box that doesn't have gmp.h globally installed.

I ran into it when using 8 cores (with 'env CPUS=8 sh validate'):

/usr/bin/gcc -E    -m32 -Wall -Werror -I/Users/chak/Code/ghc-test/libraries/integer-gmp/gmp 
-Ilibraries/integer-gmp/.    -I"/Users/chak/Code/ghc-test/includes" 
-I"/Users/chak/Code/ghc-test/libffi/dist-install/build"      -MM 
libraries/integer-gmp/cbits/cbits.c -MF libraries/integer-gmp/dist-install/build/.depend-v.c_asm.bit
In file included from libraries/integer-gmp/cbits/cbits.c:12:
libraries/integer-gmp/cbits/alloc.c:11:17: error: gmp.h: No such file or 
directory
make[1]: *** [libraries/integer-gmp/dist-install/build/.depend-v.c_asm] Error 1
make: *** [all] Error 2
limitingfactor chak 21 (.../Code/ghc-test):

I also get lots of annoying message like this (independent of whether the build 
is parallel or not):

# libraries/base = dir
# libraries/unix = dir
"rm" -f libraries/integer-gmp/dist-install/build/.depend-v.c_asm.tmp
# dist-install = distdir
# dist-install = distdir
mv libraries/process/dist-install/build/.depend-v.c_asm.tmp 
libraries/process/dist-install/build/.depend-v.c_asm
"rm" -f libraries/ghc-prim/dist-install/build/.depend-v.c_asm.tmp
# libraries/base/dist-install/build/.depend-v.c_asm = depfile
# libraries/unix/dist-install/build/.depend-v.c_asm = depfile
touch libraries/integer-gmp/dist-install/build/.depend-v.c_asm.tmp
"inplace/bin/mkdirhier" libraries/ghc-prim/dist-install/build/GHC//.
# libraries/integer-gmp = dir
# libraries/unix/cbits/execvpe.c = file
# libraries/base/cbits/PrelIOUtils.c = file
touch libraries/ghc-prim/dist-install/build/.depend-v.c_asm.tmp
"rm" -f utils/haddock/dist/build/.depend.c_asm.tmp
# libraries/ghc-prim = dir
# v = way
# v = way
touch utils/haddock/dist/build/.depend.c_asm.tmp
# dist-install = distdir
# dist-install = distdir

# The formatting of this definition (e.g. the blank line above) is
# libraries/integer-gmp/dist-install/build/.depend-v.c_asm = depfile
# libraries/ghc-prim/dist-install/build/.depend-v.c_asm = depfile
# The formatting of this definition (e.g. the blank line above) is
mv utils/haddock/dist/build/.depend.c_asm.tmp 
utils/haddock/dist/build/.depend.c_asm
# important, in order to get make to generate the right makefile code.
# libraries/integer-gmp/cbits/cbits.c = file
# libraries/ghc-prim/cbits/debug.c = file
# important, in order to get make to generate the right makefile code.

On a related note, I timed the generation of the RTS .depend file, and it now takes 30s where it used to take 3s. This is mainly because we are now preprocessing each C file once per way, rather than just once. The new way is more accurate and correct in general, but it hurts so much that I haven't even pulled these patches into my RTS development trees. I think we have to go back to preprocessing each file just once.

Cheers,
        Simon




_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to