Boost logo

Boost-Build :

From: Rene Rivera (grafik.list_at_[hidden])
Date: 2006-04-26 01:12:27


I'm quoting all of the message for the benefit of the build list which
I'm CCing.

Rush Manbert wrote:

> This is a repost and is directed to Robert Ramey, since the
> serialization library is his baby and I assume he wrote the build
> configuration code for it. I got no reply the first time, and I really
> need to be able to build this way.
>
> I am having problems building Boost 1.33.1 under Windows XP for the
> vc-8_0 toolset. My problems seem to come from a bug in the build of the
> serialization library.
>
> The attached zip file contains information from 2 builds. One of them
> succeeds and the other fails. The difference between them is that the
> failed build includes "--layout=system" on the bjam command line, while
> the successful build does not. In both cases, the build is run by a
> script that makes sure the build location and the installation location
> are cleaned up before the build starts.
>
> In the zip file are the following files:
> * failedBoostBuild.log contains all of the output generated by bjam for
> the failed build.
> * failedConsoleTranscript.txt is the console output from the build
> script. It shows the bjam command line for the failed build.
> * failedInstalledLibList.txt is a "dir" listing of the library
> installation directory, after the failed build completed.
>
> * goodBoostBuild.log, goodConsoleTranscript.txt, and
> goodInstalledLibList.txt are the equivalents to the above for
> the successful build.
>
> I believe that there is an error shown in failedBoostBuild.log at line
> 3000. The line says:
>
> "LINK : fatal error LNK1104: cannot open file
> 'boost_serialization-vc80-mt-gd-1_33_1.lib'"
>
> and I believe that the error is that the library file name includes the
> toolset name and the Boost version number. Since I specified
> --layout=system, neither of these are included in the generated library
> names.
>
> There is a similar error at line 3058.
>
> If you compare the failedInstalledLibList.txt and
> goodInstalledLibList.txt, you can see that none of the
> boost_wserialization libraries are present in the failed case. I am
> guessing that they represent the four failed targets reported by bjam at
> the end of the build.
>
> I want to use the --layout=system naming conventions and do internal
> releases of the Boost libraries to our development environment. I have
> already done this successfully under Mac OSX, and I expected it to work
> the same way under Windows.
>
> If my conclusion that there is a build bug is correct, is there some
> workaround possible to make the build succeed? (I looked at the
> serialization jamfile and came away unenlightened. :-) Is there some
> other explanation?

Rush,

It's the automatic linking, which we know doesn't work with the system
layout option, which the Boost Serialization library uses internally by
default. You can disable the autolink by defining BOOST_ALL_NO_LIB when
building Boost as such:

bjam "-sBUILD=debug release <runtime-link>static/dynamic
<threading>single/multi <define>BOOST_ALL_NO_LIB" ...

Looking at your error output I believe that will fix it for you.

For the build list,

Should we forcibly set the BOOST_ALL_NO_LIB when building the system layout?

-- 
-- Grafik - Don't Assume Anything
-- Redshift Software, Inc. - http://redshift-software.com
-- rrivera/acm.org - grafik/redshift-software.com
-- 102708583/icq - grafikrobot/aim - grafikrobot/yahoo

Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk