
Hi, There are two questions for which I have found no answers: 1. When exactly are -mt (multithreaded) versions of the libraries needed? 2. Boost.System was added in 1.35 and apparently some of the old libraries also depend on it in new Boost versions. Are the inter-library dependencies of Boost actually documented somewhere, or does one need to guess? I need this information in order to write a new FindBoost script for CMake.

Lasse Kärkkäinen wrote:
Hi,
There are two questions for which I have found no answers:
1. When exactly are -mt (multithreaded) versions of the libraries needed?
That depends on the compiler/platform. * If the compiler has multiple runtime libraries - thread safe or not - then you should always use the Boost library option that matches the runtime used (examples include msvc, borland etc, maybe IBM xlc as well). * If the compiler has a single runtime - usually thread safe - for example gcc on Linux - then you can use either depending upon whether your application uses threads or not. For recent Boost releases, and for most versions of Boost installed by the Linux distro, there is only one version of the libraries anyway (the thread safe version).
2. Boost.System was added in 1.35 and apparently some of the old libraries also depend on it in new Boost versions. Are the inter-library dependencies of Boost actually documented somewhere, or does one need to guess?
There's not a central dependency tree anywhere: but individual libraries most certainly should document what they depend on. HTH, John.

Lasse Kärkkäinen wrote:
Hi,
There are two questions for which I have found no answers:
1. When exactly are -mt (multithreaded) versions of the libraries needed?
When you building MT program, naturally. More specifically, if you use threads anywhere in your program, I'd recommending building all of your program in MT mode (-pthreads for gcc) and linking to MT versions of Boost libraries.
2. Boost.System was added in 1.35 and apparently some of the old libraries also depend on it in new Boost versions. Are the inter-library dependencies of Boost actually documented somewhere, or does one need to guess?
They are not document. filesystem->system dependency is the only one I know. Future Boost release will generate pgk-config files to describe such dependencies. - Volodya

On Sat, Nov 1, 2008 at 12:43 AM, Lasse Kärkkäinen <tronic+67zr@trn.iki.fi<tronic%2B67zr@trn.iki.fi>
wrote:
Hi,
There are two questions for which I have found no answers:
1. When exactly are -mt (multithreaded) versions of the libraries needed?
2. Boost.System was added in 1.35 and apparently some of the old libraries also depend on it in new Boost versions. Are the inter-library dependencies of Boost actually documented somewhere, or does one need to guess?
On the boost-cmake list there is working going on right now on visualizing dependencies. A fresh dependencies chart was posted a couple of days ago. This work is still incomplete, but is showing great promise. --Beman

On Sat, Nov 01, 2008 at 06:43:20AM +0200, Lasse Kärkkäinen wrote:
I need this information in order to write a new FindBoost script for CMake.
Just have a look how the M4 macro written for autoconf support solves this. This contains many corner cases. See http://repo.or.cz/w/boost.m4.git Jens
participants (5)
-
Beman Dawes
-
Jens Seidel
-
John Maddock
-
Lasse Kärkkäinen
-
Vladimir Prus