Re: parallel build does not work

From: Fons Rademakers <Fons.Rademakers_at_cern.ch>
Date: Wed, 19 Aug 2009 11:02:19 +0200


Hi Tom,

  my main ROOT dev platform is a MacPro 8-core and make -j 8 work fine. To do the static build do:

make -j 8
make static

Which make do you use? A non-Apple version from Fink? I use:

(proof) [144] which make
/usr/bin/make
(proof) [145] make -v
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This program built for powerpc-apple-darwin9.0

Cheers, Fons.

Tom Roberts wrote:
> This is root 5.24 on Mac OS X 10.5.8 (the latest Leopard). This is a Mac
> Pro with 4 cores.
>
> Is this a known problem? Is there any fix? -- building Root now
> dominates my build time, and a 4-CPU build would help substantially.
> "make -j 1" works fine, but "make -j 4" fails in different ways each time.
>
>
> Tom Roberts
>
>
> Here are the details:
>
> I need to link with Root only to read/write TNtuple-s from/to TFile-s,
> so I disable everything I can get away with (I got the list from
> configure --help and pruned it until it built). I use static libraries
> to avoid shared-library headaches, and to keep the binary installation
> package as small as possible. I will be building on Linux and Windows Xp
> as well, including a Linux supercomputer that does not permit shared
> objects; I'm doing Mac OS X first.
>
> With "make -j 1", Root builds and my program builds and runs correctly.
> But with "make -j 4" I usually don't get to the "make static".
>
> This is 5.24. In the past I have noticed similar behavior with Root
> 5.20, and just lived with "-j 1".
>
> I downloaded the 5.24.00 source on 2009/08/18 and unpacked it from
> /long/path
>
> I then did:
> ROOTARCH=maxcosx # 32-bit build
> cd /long/path
> mv root root-5.24
> cd root-5.24
> unset MAKEFLAGS
> # disable all but: cint5, zlib
> ./configure >>build.log 2>&1 $ROOTARCH \
> --disable-afs --disable-alien --disable-asimage \
> --disable-astiff --disable-bonjour --disable-builtin-afterimage \
> --disable-builtin-ftgl --disable-builtin-freetype \
> --disable-builtin-glew --disable-builtin-pcre --disable-castor \
> --disable-chirp --disable-cint7 --disable-cintex \
> --disable-clarens --disable-dcache --disable-exceptions \
> --disable-explicitlink --disable-fftw3 --disable-gdml \
> --disable-gfal --disable-g4root --disable-globus --disable-glite \
> --disable-gsl-shared --disable-krb5 --disable-ldap \
> --disable-genvector --disable-mathmore --disable-memstat \
> --disable-minuit2 --disable-monalisa --disable-mysql \
> --disable-odbc --disable-opengl --disable-oracle \
> --disable-pch --disable-peac --disable-pgsql --disable-pythia6 \
> --disable-pythia8 --disable-python --disable-qt \
> --disable-qtgsi --disable-reflex --disable-rfio \
> --disable-roofit --disable-rpath --disable-ruby \
> --disable-sapdb --disable-shadowpw --disable-shared \
> --disable-soversion --disable-srp --disable-ssl \
> --disable-table --disable-unuran --disable-winrtdebug \
> --disable-xml --disable-xrootd --disable-xft
> make -j 4 >>build.log 2>&1
>
> The make dies in different ways each time (after removing the previous
> attempt, re-unpacking the source, and re-doing the above ./configure).
> Re-doing the make sometimes completes, sometimes doesn't.
>
> Here's the tail of build.log for the most recent failure:
> Generating dictionary hist/histpainter/src/G__HistPainter.cxx...
> core/utils/src/rootcint_tmp -cint -f
> hist/histpainter/src/G__HistPainter.cxx -c
> hist/histpainter/inc/TGraph2DPainter.h
> hist/histpainter/inc/TGraphPainter.h hist/histpainter/inc/THistPainter.h
> hist/histpainter/inc/TLego.h hist/histpainter/inc/TPainter3dAlgorithms.h
> hist/histpainter/inc/TPaletteAxis.h hist/histpainter/inc/LinkDef.h
> Error: cannot open file "sstream" include/Math/Util.h:18:
> Generating dictionary tree/treeplayer/src/G__TreePlayer.cxx...
> core/utils/src/rootcint_tmp -cint -f
> tree/treeplayer/src/G__TreePlayer.cxx -c
> tree/treeplayer/inc/TBranchProxy.h
> tree/treeplayer/inc/TBranchProxyClassDescriptor.h
> tree/treeplayer/inc/TBranchProxyDescriptor.h
> tree/treeplayer/inc/TBranchProxyDirector.h
> tree/treeplayer/inc/TBranchProxyTemplate.h
> tree/treeplayer/inc/TChainIndex.h tree/treeplayer/inc/TFileDrawMap.h
> tree/treeplayer/inc/TFormLeafInfo.h
> tree/treeplayer/inc/TFormLeafInfoReference.h
> tree/treeplayer/inc/TFriendProxy.h
> tree/treeplayer/inc/TFriendProxyDescriptor.h
> tree/treeplayer/inc/TRefArrayProxy.h tree/treeplayer/inc/TRefProxy.h
> tree/treeplayer/inc/TSelectorDraw.h
> tree/treeplayer/inc/TSelectorEntries.h
> tree/treeplayer/inc/TTreeDrawArgsParser.h
> tree/treeplayer/inc/TTreeFormula.h
> tree/treeplayer/inc/TTreeFormulaManager.h
> tree/treeplayer/inc/TTreeIndex.h tree/treeplayer/inc/TTreePlayer.h
> tree/treeplayer/inc/TTreeProxyGenerator.h
> tree/treeplayer/inc/TTreeTableInterface.h tree/treeplayer/inc/LinkDef.h
> Warning: Error occurred during reading source files
> Generating dictionary gui/ged/src/G__Ged.cxx...
> core/utils/src/rootcint_tmp -cint -f gui/ged/src/G__Ged.cxx -c
> gui/ged/inc/HelpSMText.h gui/ged/inc/TArrowEditor.h
> gui/ged/inc/TAttFillEditor.h gui/ged/inc/TAttLineEditor.h
> gui/ged/inc/TAttMarkerEditor.h gui/ged/inc/TAttTextEditor.h
> gui/ged/inc/TAxisEditor.h gui/ged/inc/TCurlyArcEditor.h
> gui/ged/inc/TCurlyLineEditor.h gui/ged/inc/TF1Editor.h
> gui/ged/inc/TFrameEditor.h gui/ged/inc/TFunctionParametersDialog.h
> gui/ged/inc/TGedEditor.h gui/ged/inc/TGedFrame.h
> gui/ged/inc/TGedMarkerSelect.h gui/ged/inc/TGedPatternSelect.h
> gui/ged/inc/TGraphEditor.h gui/ged/inc/TH1Editor.h
> gui/ged/inc/TH2Editor.h gui/ged/inc/TLineEditor.h
> gui/ged/inc/TPadEditor.h gui/ged/inc/TPaveStatsEditor.h
> gui/ged/inc/TPieEditor.h gui/ged/inc/TPieSliceEditor.h
> gui/ged/inc/TStyleDialog.h gui/ged/inc/TStyleManager.h
> gui/ged/inc/TStylePreview.h gui/ged/inc/LinkDef.h
> make[2]: *** [hist/hist/src/G__Hist.cxx] Bus error
> make[2]: *** Deleting file `hist/hist/src/G__Hist.cxx'
> make[2]: *** Waiting for unfinished jobs....
>
> In this case re-doing the "make -j 4" happened to succeed. So I continued:
> make -j 1 static
> ... success
> cd /path/to/my/source
> make
> ... success
> cd test
> ./all
> ... 72 tests run
> All Tests Passed
>
> Several of those tests require Root I/O of TNtuples.
>
> When I do "otool -L g4beamline", the only dylib-s it references are in
> /usr/X11/lib and /usr/lib, plus /sw/lib/libXm.2.dylib (I include this
> last with my binary distribution).
>

-- 
Org:    CERN, European Laboratory for Particle Physics.
Mail:   1211 Geneve 23, Switzerland
E-Mail: Fons.Rademakers_at_cern.ch              Phone: +41 22 7679248
WWW:    http://fons.rademakers.org           Fax:   +41 22 7669640
Received on Wed Aug 19 2009 - 11:02:31 CEST

This archive was generated by hypermail 2.2.0 : Wed Aug 19 2009 - 23:50:02 CEST