Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2004-12-10 05:18:43


Hi Caleb,

> > I get:
> > [...]
> > So you have a testcase.
>
> Actually I over-simplified my example. What I *really* have is:
>
> lib libported : [ glob ported/src/BAS[A-CE-Z]*.cpp ] BASDiagnostics ;
> obj BASDiagnostics : ported/src/BASDiagnostics.cpp log4cplus ;
> lib log4cplus [ ... as before ... ]
>
> The BASDiagnostics object file is the only one which requires
> log4cplus, and it is built correctly. But when the library is built,
> -llog4cplus is passed to the linker without any -L flags as I reported
> previously. If I add log4cplus to the "lib libported" line, the
> linking works as expected.

I think you've over-engineered your Jamfile ;-) Really, "log4cplus" that you
specifiy as source of BASDiagnostic is not linked into that object, it's
just merely passed though to libported which uses that library during
linking. In other words, adding log4cplus to sources of libported won't cause
any problems whatsoever.

However, I noticed that the problem is caused by somewhat contrived method
<search> is handled and decided to simplify it. Code is not 10 lines shorter
and your use case works.

The fix and a testcase were just committed.

> > > 2. The current BBV2 doesn't seem to support versioned shared libraries
> > > correctly. Taking a cue from example/versioned/jamfile.jam, I have:
> > >
> > > lib libported : [ glob ported/src/*.cpp ] : <version>1.0 ;
> > >
> > > But the linker is invoked with "-Wl,-h -Wl,libported.so" and not
> > > "libported.so.1.0" which I would expect.
> >
> > That example is out of date, I'm afraid. Try
> >
> > stage dist : libported : <so-version>1.0 ;
>
> OK this works, but I needed to pull the latest code from CVS. With
> the 1.32.0 codebase, I get errors when I use <so-version>.

Yes, that's expected.

- Volodya

 


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