Boost logo

Boost-Build :

From: Vladimir Prus (ghost_at_[hidden])
Date: 2005-04-20 06:50:09


On Friday 15 April 2005 19:35, John Maddock wrote:

> I tried running the v2 tests with cygwin python and cygwin built bjam, but
> I just got a long list of python error messages (none of the tests actually
> ran).

I'll try running them now.

> >> bjam --v2 won't link quickbook (lots of duplicate symbol errors), I
> >> found some information on the cause here:
> >> http://root.cern.ch/phpBB2/viewtopic.php?t=1696&highlight=& and seems
> >> we're
> >> currently doing just about everything wrong, we need:
> >>
> >> -Wl,--enable-runtime-pseudo-reloc -Wl,--export-all-symbols [all
> >> objects] -Wl,--enable-auto-import
> >
> > Any ideas why those options are needed? And what they do? Especially the
> > first? I'd rather figure out what's going on there and add a relevant
> > test.
>
> No idea at all, I just did a web search for the errors I was seeing and
> those were the options suggested, the most important thing though is to get
> rid of the version suffix on the dll name: cygwin will not link to a dll
> unless it ends in ".dll". Once that's sorted we can see what other options
> may still be needed.

For me, if I create a library with .so.1.32.0 suffix or .dll.1.32.0 suffix,
cygwin's gcc appear to link to it, but reports duplicate symbol
'do_sjlj_init'. Not sure what's going on there, but I've modified Boost
Jamfile to avoid the suffix on CYGWIN, not only on NT, and committed that
change.

> >> Is there a way to build and use static libraries, while still linking
> >> against the dll runtime? If not there certainly should be, this is a
> >> very
> >> common build situation IMO (on Windows in any case).
> >
> > I think the above command should do what you're asking for.
>
> I tried building quickbook like that but got:
>
> error: on gcc, DLL can't be build with <link-runtime>static
> error: it's suggested to use <link-runtime>static together with the
> <link>static

Ah, I forgot you're using gcc. The above message is true for gcc/Linux at
least -- there's no way to create dynamic library that links to static
runtime. Not sure if that's true for gcc/cygwin.

> Building with link=static seems to do what I really wanted though.
>
> I can't remember exactly where I saw this, but
> file:///c:/data/boost/develop/boost/doc/html/bbv2/reference/definitions.htm
>l mentions <runtime-link>static.

Indeed. I've fixed that place and a couple of others.

> BTW is there a list of feature variants somewhere? I was looking for the
> v2 equivalent of <sysinclude> the other day, but couldn't find it, likewise
> it wasn't really obvious to me that <link>static was what I really wanted:
> if there was a central list that explained the options and what the
> differences between them were that would be a big help IMO (of course I
> may have just missed it!).

We only have:

http://boost.org/boost-build2/doc/html/bbv2/advanced/builtins/features.html

which does not yet 100% complete.

-- 
Vladimir Prus
http://vladimir_prus.blogspot.com
Boost.Build V2: http://boost.org/boost-build2
 

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