build system issues

Simon Marlow marlowsd at gmail.com
Fri May 29 11:24:07 EDT 2009


On 29/05/2009 15:28, Claus Reinke wrote:
> Hoping to try out some recent patches, I had my first experience with
> the new build system today (cygwin, building with ghc-6.8.3; did make
> maintainer-clean long ago with the old system, then pull and get, etc;
> my mk/build.mk has
>
> BuildFlavour = perf

This only has an effect if you have the rest of build.mk.sample too.  So 
if you're quoting the whole of your build.mk here, it won't have any effect.

> SplitObjs = NO
> BIN_DIST=1

BIN_DIST is no more.  You can delete that.

> XMLDocWays = html

This has also gone away.  You want BUILD_DOCBOOK_HTML=YES (see 
build.mk.sample).

> HADDOCK_DOCS = YES
>
> ), and took some notes:
>
> - the configure summary is nice. it doesn't mention documentation tools,
> though..

Right, it should mention xsltproc and dblatex.

> - I got a segmentation fault on the first make, somewhere around here:
>
> c:/ghc/ghc-6.8.3/bin/ghc.exe -O -H64m -package-conf
> libraries/bootstrapping.conf
> -package-name hpc-0.5.0.2 -hide-all-packages -i -ilibraries/hpc/.
> -ilibraries/hpc/dist-boot/build
> -ilibraries/hpc/dist-boot/build/autogen -Ilibraries/hpc/dist-boot/build
> -Ilibraries/hpc/dist-boot/build/autogen
> -Ilibraries/hpc/. -optP-include
> -optPlibraries/hpc/dist-boot/build/autogen/cabal_macros.h
> -package base-3.0.2.0 -package containers-0.1.0.2 -package
> directory-1.0.0.1 -package
> old-time-1.0.0.0 -Wall -XCPP -odir libraries/hpc/dist-boot/build -hidir
> libraries/hpc/dist-boot/build
> -stubdir libraries/hpc/dist-boot/build -hisuf hi -osuf o -hcsuf hc -c
> libraries/hpc/./Trace/Hpc/Util.hs
> -o libraries/hpc/dist-boot/build/Trace/Hpc/Util.o
> Segmentation fault/access violation in generated code

No idea, but that is GHC 6.8.3 that is crashing, right?

> I don't recall that ever happening before, so I simply tried again,
> and it didn't repeat. Still, worrying.
>
> - the build fell over after a long time, when trying to run (note the
> unprotected spaces)
> /cygdrive/c/Program Files/MiKTeX 2.7/miktex/bin/dblatex
>
> if configure had mentioned documentation tools/paths, I might have
> noticed that
> tool change and wrong path myself; (btw, didn't the tool of choice use
> to be fop?)

We switched from fop to dblatex, because almost nobody was able to get 
fop to work (including us), but dblatex works everywhere.

Except, that is, on Windows if it is installed somewhere that has a 
space in the path.  We are planning to fix that, though (I believe it's 
on Ian's todo list).

> in any case, there was some agreement that configure should check for paths
> the build couldn't handle (in this case, wrapping in "" should do the
> job, though)
>
> - since I didn't want to move miktex, and don't know what else might be
> used from there in the build, I wrapped the command in "", in mk/config.mk,
> and typed make again..

don't edit mk/config.mk, override in mk/build.mk instead.  The docs do 
say this.

> you guessed it: everything was rebuilt! even though only one piece
> depended on the change - could the dependencies be made more
> precise, perhaps by splitting up config.mk?

It doesn't rebuild *everything*, though I agree you do get a lot of 
rebuilding and reconfiguring whenever mk/config.mk changes.

I've just found some places we were depending on mk/config.mk where we 
should have been depending on mk/project.mk.  But this won't make any 
difference in practice: configure always touches both of them anyway. 
If we could prevent configure from touching files if they don't change, 
that would help a lot.

> - the build didn't continue through miktex's install interlude, though:
>
> "/cygdrive/c/Program Files/MiKTeX 2.7/miktex/bin/dblatex"
> docs/users_guide/users_guide.xml
> --ps -o docs/users_guide/users_guide.ps
>
> ======================================================================
> starting package maintenance...
> installation directory: "C:\Program Files\MiKTeX 2.7"
> package repository:
> http://www.tex.ac.uk/tex-archive/systems/win32/miktex/tm/packages/
> DBlight digest: c2eb649dac82dcda0c722b1ac13c7b05
> going to download 821947 bytes
> going to install 3723 file(s) (1 package(s))
> downloading
> http://www.tex.ac.uk/tex-archive/systems/win32/miktex/tm/packages/tex4ht.tar.lzma...
>
> 821947 bytes, 3.19 KB/Sec
> extracting files from tex4ht.tar.lzma...
> ======================================================================
> dblatex.exe: Windows API error 2: The system cannot find the file
> specified.
> make[1]: *** [docs/users_guide/users_guide.ps] Error 1
> make: *** [all] Error 2

No idea about this one.

> - make again, ok, we get started into latex this time, but..
>
> $ make 2>&1 | tee -a mystuff/make.log
> ===--- updating makefiles phase 0
> make -r --no-print-directory -f ghc.mk phase=0 just-makefiles
> ===--- updating makefiles phase 1
> make -r --no-print-directory -f ghc.mk phase=1 just-makefiles
> ===--- updating makefiles phase 2
> make -r --no-print-directory -f ghc.mk phase=2 just-makefiles
> ===--- updating makefiles phase 3
> make -r --no-print-directory -f ghc.mk phase=3 just-makefiles
> ===--- finished updating makefiles
> make -r --no-print-directory -f ghc.mk all
> "/cygdrive/c/Program Files/MiKTeX 2.7/miktex/bin/dblatex"
> docs/users_guide/users_guide.xml --ps -o
> docs/users_guide/users_guide.ps
>
> d:\fptools\ghc>latex
> \makeatletter\def\HCode{\futurelet\HCode\HChar}\def\HChar{\ifx"\HCode\def\HCod
>
> e"##1"{\Link##1}\expandafter\HCode\else\expandafter\Link\fi}\def\Link#1.a.b.c.{\g at addto@macro\@docum
>
> entclasshook{\RequirePackage[#1,xhtml,docbook]{tex4ht}}\let\HCode\documentstyle\def\documentstyle{\l
>
> et\documentstyle\HCode\expandafter\def\csname
> tex4ht\endcsname{#1,xhtml,docbook}\def\HCode####1{\doc
> umentstyle[tex4ht,}\@ifnextchar[{\HCode}{\documentstyle[tex4ht]}}}\makeatother\HCode
> --ps.a.b.c.\inp
> ut docs/users_guide/users_guide.xml
> This is pdfTeX, Version 3.1415926-1.40.9 (MiKTeX 2.7)
> entering extended mode
> LaTeX2e <2005/12/01>
> Babel <v3.8l> and hyphenation patterns for english, dumylang,
> nohyphenation, ge
> rman, ngerman, german-x-2008-06-18, ngerman-x-2008-06-18, french, loaded.
> (docs/users_guide/users_guide.xml
>
> ! LaTeX Error: Missing \begin{document}.
>
> See the LaTeX manual or LaTeX Companion for explanation.
> Type H <return> for immediate help.
> ...
>
> l.1 <
> ?xml version="1.0" encoding="iso-8859-1"?>
> ?

Apparently dblatex is not working in some way.  Can you run it by hand 
on a smaller DocBook XML document?  e.g. try Haddock's documentation, or 
Cabal's.

Cheers,
	Simon



More information about the Cvs-ghc mailing list