[cmake-developers] Parallel build of cmake-2.8.3 fails using "MSYS Makefiles" generator under wine
Alan W. Irwin
irwin at beluga.phys.uvic.ca
Sat Dec 4 02:34:16 EST 2010
On the wine/MinGW/MSYS platform, the "make -j4 install" command used
to build cmake errored out with a message to the effect that
ranlib.exe could not find Utilities/cmzlib/libcmzlib.a. However, when
I checked after the failure, that static library was there. Also, if
I made a completely fresh build without the -j4 option for the make
command, the build and install of cmake succeeded without issues.
When the make -j4 option fails while dropping that option succeeds it
is normally a classic symptom of a dependency issue in the build
system. However, when I look at Utilities/cmzlib/CMakeLists.txt I
don't see anything special there at all that raises a flag about
dependencies, but that is not completely definitive since cmzlib is
mentioned a number of times within the CMake source tree.
Could someone with good familiarity with the build system for
CMake-2.8.3 take a look to make sure a dependency issue can be ruled
out?
I didn't have such issues when I built CMake-2.8.1 before with the
latest MSYS tool chain available at that time. Of course, that doesn't rule
out it is the change in tool chain versions that is causing
make -j4 to fail rather than some dependency issue introduced between
CMake-2.8.1 and CMake-2.8.3.
Here is some additional background to this story.
I am restarting my investigation of building PLplot dependencies and
PLplot itself using MinGW/MSYS on the Linux wine platform. (The point
here is it gives me a free (in both senses) Windows platform for
testing PLplot-related builds on my Linux box.)
I first built wine-1.3.8 on Linux, then used the new MinGW/MSYS automated
installer as follows:
wineconsole mingw-get-inst-20101030.exe
to download and install the latest versions of MinGW/MSYS packages.
This task is completely automated and only takes about 5 minutes. That
is a real life saver compared to what I had to do before downloading
and installing all the many different required MinGW/MSYS packages
by hand.
I downloaded and installed the cmake-2.8.3 windows binary version,
then used it to build cmake itself as a test. The steps used for
that build were as follows (using my particular directory structure):
source the following file under Linux bash to prepare for using wine:
############
# Put compiled version of wine on the PATH
PATH=/home/software/wine/install/bin:$PATH
# Use special newstart prefix
export WINEPREFIX=/home/wine/newstart/.wine
# Advice is to turn all debugging off this way to get
# best performance.
export WINEDEBUG='-all'
# CMake VERSION
export CMAKE_VERSION=2.8.3
# Kill wineserver before (re-)starting it just in case it was running.
wineserver -k
wineserver -p
############
# Start up bash under wine by hand.
wineconsole MinGW/msys/1.0/bin/bash.exe
>From that wine bash environment source (using the "." command) the following file:
############
# Build cmake for Windows under wine.
# Establish PATH to MinGW/MSYS.
. set_mingw_msys_path.wine_sh
# Use downloaded binary version of cmake to build cmake.
PATH=/z/home/wine/newstart/cmake-$CMAKE_VERSION-win32-x86/bin:$PATH
mkdir -p cmake/build_dir cmake/install
rm -rf /home/wine/newstart/cmake/build_dir/* \
/home/wine/newstart/cmake/install
cd cmake/build_dir
env \
CXXFLAGS='-O3' \
cmake -G "MSYS Makefiles"
"-DCMAKE_INSTALL_PREFIX=/z/home/wine/newstart/cmake/install"
/z/home/software/cmake/cmake-$CMAKE_VERSION >& cmake.out
make -j4 install >& make_install.out
############
That generated the error described above while going through the
whole procedure again with -j4 option removed succeeded without any
issues.
Other data: 64-bit (amd64) box with two cpu's.
Alan
__________________________
Alan W. Irwin
Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).
Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.sf.net); PLplot scientific plotting software
package (plplot.org); the libLASi project (unifont.org/lasi); the Loads of
Linux Links project (loll.sf.net); and the Linux Brochure Project
(lbproject.sf.net).
__________________________
Linux-powered Science
__________________________
More information about the cmake-developers
mailing list