[prev in list] [next in list] [prev in thread] [next in thread]
List: boost-build
Subject: Re: [Boost-build] [Boost-testing] [wave] [date_time] bjam --v2
From: "Reece Dunn" <msclrhd () hotmail ! com>
Date: 2006-06-25 0:23:14
Message-ID: BAY115-W2040B11AA84E2FA12C555A0780 () phx ! gbl
[Download RAW message or body]
Hartmut Kaiser wrote:
> Reece Dunn wrote:
>
> > There are currently some issues when running:
> >
> > bjam --v2 install msvc-7.1 # [1]
> >
> > and
> >
> > bjam --v2 install msvc-7.1 link=static,shared # [2]
> >
> > These were identified in the "[Boost-build] boost.build v2
> > and toolset="
> > discussion on the boost.build mailing list.
> >
> > Running [1] highlights a problem with Boost.Wave. Since wave
> > adds <rtti>off for msvc-7.1, this is causing problems when it
> > is pulling in Boost.FileSystem. The <tag> rule is using the
> > <rtti>on version of filesystem, not the <rtti>off version, so
> > BBv2 ends up trying to create two versions of
> > boost_filesystem-vc71-mt-gd-1_35.lib.
> >
> > The workaround is to open the following files:
> >
> > $(BOOST_ROOT)/tools/wave/build/Jamfile.v2
> > $(BOOST_ROOT)/libs/wave/build/Jamfile.v2
> >
> > and comment out the line:
> >
> > <toolset-msvc:version>7.1:<rtti>off # workaround for
> > compiler bug
> >
> > in each, however this is not an ideal solution :(!
>
> If you do that, the build will fail because of the mentioned compiler bug.
Hence it being a workaround to the install issue.
> The only way is to accept to get two different versions of the libraries.
Agreed.
> What perhaps needs to be done is to code the rtti settings into the library
> names.
Thanks! Your hint lead to a solution that works for:
bjam --v2 install msvc-7.1 link=static,shared
The Wave/FileSystem issue is solved by adding 'r' when rtti=on.
The DateTime issue is a more global one relating to building link=static
and link=share at the same time. The msvc compiler produces a LIB
file in both these cases (static produces a STATIC_LIB target and
share produces an IMPORT_LIB target). These targets clash, hence
the error.
The solution I have gone for is to add "-imp" for IMPORT_LIB targets.
Therefore, link=static will produce:
boost_date_time-***.lib
and link=share will produce:
boost_date_time-***-imp.lib
boost_date_time-***.dll
This causes the above install to work. I haven't done extensive
testing, just the above. If this is approved, I will commit it.
NOTE: I don't know about other combinations.
- Reece
_________________________________________________________________
Try Live.com: where your online world comes together - with news, sports, weather, and much more.
http://www.live.com/getstarted
["stage.jam.patch" (application/octet-stream)]
Index: tools/build/v2/tools/stage.jam
===================================================================
RCS file: /cvsroot/boost/boost/tools/build/v2/tools/stage.jam,v
retrieving revision 1.75
diff -u -r1.75 stage.jam
--- tools/build/v2/tools/stage.jam 21 Feb 2006 13:08:51 -0000 1.75
+++ tools/build/v2/tools/stage.jam 25 Jun 2006 00:03:59 -0000
@@ -485,6 +485,7 @@
local runtime-tag = ;
if <runtime-link>static in $(properties) { runtime-tag += s ; }
if <runtime-debugging>on in $(properties) { runtime-tag += g ; }
+ if <rtti>on in $(properties) { runtime-tag += r ; }
if <variant>debug-python in $(properties) { runtime-tag += y ; }
if <variant>debug in $(properties) { runtime-tag += d ; }
@@ -534,6 +535,11 @@
tags += $(thread-tag:J=) ;
tags += $(runtime-tag:J=) ;
#tags += $(version-tag) ;
+
+ if [ type.is-derived $(type) IMPORT_LIB ]
+ {
+ tags += imp ;
+ }
local result ;
@@ -545,6 +551,7 @@
{
result = $(name) ;
}
+
return [ virtual-target.add-prefix-and-suffix $(result) : $(type)
: $(property-set) ] ;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic