Repost: [Serialization] Build Fails for --layout=System, 1.33.1, vc-8_0 toolset, Win XP

Hi, 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? Thanks, Rush

I'm quoting all of the message for the benefit of the build list which I'm CCing. Rush Manbert wrote:
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

Rene Rivera wrote: <snip>
Thanks Rene, that did the trick. I think I understand now about auto linking, because I had to fight with it again when I made my first Windows app that linked against a Boost library. I can see where the auto linking would be handy if it worked in all cases. Is there any plan to fix it for the system layout case? Maybe in 1.34? - Rush
participants (2)
-
Rene Rivera
-
Rush Manbert