Boost logo

Boost-Build :

From: David Abrahams (david.abrahams_at_[hidden])
Date: 2002-03-25 17:49:24


----- Original Message -----
From: "Ralf W. Grosse-Kunstleve" <rwgk_at_[hidden]>
> Dave wrote:

> > I think there's a bug in the cxx-tools.jam files, in that it doesn't
> > separate the cxx_repository folders for different targets. I'm
pretty
> > sure there's got to be a way to get the compiler to do that. Anyway,
if
> > I don't do a clean build each time, I tend to get link errors, where
> > it's looking for symbols that aren't even used in the thing being
> > compiled!
>
> The handling of template instantiations is the most
> annoying "feature" of the cxx compiler and I am not
> sure if it is possible to completely work around the
> problems.
>
> With the jam build, do you ever change the working directory?

Nope.

> This is what I do and then the problems are not so bad
> because there is a cxx_repository in each compilation
> subdirectory. But even then I have to use the hack that you
> have seen before:
>
> libuctbx.a: uctbx.o error.o
> rm -f libuctbx.a
> cd cxx_repository; \
> ls -1 > ../libuctbx.a.input; \
> ar r ../libuctbx.a -input ../libuctbx.a.input
> rm -f libuctbx.a.input
> ar r libuctbx.a uctbx.o error.o
>
> This is necessary if the number of files in the cxx_repository
> exceeds a certain threshold which makes the "ar" command fail.

Hm. This part looks like a platform-specific ar bug, and not anything to
do with the repository per se. Or am I mistaken?

> Using the -ptr command line option you can specify alternative
> names for the cxx_repository:
>
> -ptr dir Specifies a repository, with ./cxx_repository as the
> default. If you specify several repositories, only
the first
> is writable, and the rest are read only. Read-only
reposi-
> tories are used only at link time.
> Specifying this option at link time enables C++ to
recognize
> and use the template instantiation information files
within
> the specified repository. If you use this option,
make sure
> that the repository specified at compile time is the
same
> one specified at link time.
>
> But then you have to enumerate the required custom repositories on
> the link line. Could you accommodate this in the jam build system?

Yep; that wouldn't be too hard. It may get a little harder when we get
Vladimir's feature which desegregates built products from the same
subproject, but it's trivial to do at the moment since there would be
only one repository per linked target. I wonder if this is -ptr option
is a common EDG feature or if it's compaq-specific?

-Dave

 


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