Boost logo

Boost Users :

Subject: [Boost-users] libboost*-mt.so (thread safety)
From: Stanisław Findeisen (stf_at_[hidden])
Date: 2010-09-17 06:17:49


Hi!

It looks that in some older Boost versions (up to 1.40 or so) several
shared objects were coming in 2 versions: with or without -mt suffix.
For instance:

libboost_filesystem-gcc42-1_34_1.so.1.34.1
libboost_filesystem-gcc42-mt-1_34_1.so.1.34.1
libboost_program_options-gcc42-1_34_1.so.1.34.1
libboost_program_options-gcc42-mt-1_34_1.so.1.34.1
libboost_regex-gcc42-1_34_1.so.1.34.1
libboost_regex-gcc42-mt-1_34_1.so.1.34.1

(These are the names from my Debian GNU/Linux installation, perhaps they
are a bit different than when building from source.)

This seems to no longer be the case with Boost 1.44. I've just built it
from source passing threading=multi parameter to bjam, and can't see any
-mt shared objects. This is what I have:

drwxr-xr-x 2 ... 4096 ... 11:55 .
drwxr-xr-x 4 ... 4096 ... 11:43 ..
-rw-r--r-- 1 ... 118790 ... 11:49 libboost_date_time.a
lrwxrwxrwx 1 ... 28 ... 11:48 libboost_date_time.so ->
libboost_date_time.so.1.44.0
-rwxr-xr-x 1 ... 92296 ... 11:48 libboost_date_time.so.1.44.0
-rw-r--r-- 1 ... 294068 ... 11:50 libboost_filesystem.a
lrwxrwxrwx 1 ... 29 ... 11:48 libboost_filesystem.so ->
libboost_filesystem.so.1.44.0
-rwxr-xr-x 1 ... 171758 ... 11:48 libboost_filesystem.so.1.44.0
-rw-r--r-- 1 ... 534858 ... 11:51 libboost_graph.a
lrwxrwxrwx 1 ... 24 ... 11:49 libboost_graph.so ->
libboost_graph.so.1.44.0
-rwxr-xr-x 1 ... 379135 ... 11:49 libboost_graph.so.1.44.0
-rw-r--r-- 1 ... 286678 ... 11:52 libboost_math_c99.a
-rw-r--r-- 1 ... 282978 ... 11:52 libboost_math_c99f.a
lrwxrwxrwx 1 ... 28 ... 11:44 libboost_math_c99f.so ->
libboost_math_c99f.so.1.44.0
-rwxr-xr-x 1 ... 133041 ... 11:44 libboost_math_c99f.so.1.44.0
-rw-r--r-- 1 ... 288144 ... 11:52 libboost_math_c99l.a
lrwxrwxrwx 1 ... 28 ... 11:45 libboost_math_c99l.so ->
libboost_math_c99l.so.1.44.0
-rwxr-xr-x 1 ... 132259 ... 11:44 libboost_math_c99l.so.1.44.0
lrwxrwxrwx 1 ... 27 ... 11:44 libboost_math_c99.so ->
libboost_math_c99.so.1.44.0
-rwxr-xr-x 1 ... 137877 ... 11:44 libboost_math_c99.so.1.44.0
-rw-r--r-- 1 ... 1714884 ... 11:51 libboost_math_tr1.a
-rw-r--r-- 1 ... 1723476 ... 11:52 libboost_math_tr1f.a
lrwxrwxrwx 1 ... 28 ... 11:44 libboost_math_tr1f.so ->
libboost_math_tr1f.so.1.44.0
-rwxr-xr-x 1 ... 295638 ... 11:44 libboost_math_tr1f.so.1.44.0
-rw-r--r-- 1 ... 1716390 ... 11:52 libboost_math_tr1l.a
lrwxrwxrwx 1 ... 28 ... 11:44 libboost_math_tr1l.so ->
libboost_math_tr1l.so.1.44.0
-rwxr-xr-x 1 ... 287712 ... 11:44 libboost_math_tr1l.so.1.44.0
lrwxrwxrwx 1 ... 27 ... 11:43 libboost_math_tr1.so ->
libboost_math_tr1.so.1.44.0
-rwxr-xr-x 1 ... 287831 ... 11:43 libboost_math_tr1.so.1.44.0
-rw-r--r-- 1 ... 90942 ... 11:54 libboost_prg_exec_monitor.a
lrwxrwxrwx 1 ... 35 ... 11:46 libboost_prg_exec_monitor.so ->
libboost_prg_exec_monitor.so.1.44.0
-rwxr-xr-x 1 ... 77833 ... 11:46 libboost_prg_exec_monitor.so.1.44.0
-rw-r--r-- 1 ... 742886 ... 11:53 libboost_program_options.a
lrwxrwxrwx 1 ... 34 ... 11:45 libboost_program_options.so ->
libboost_program_options.so.1.44.0
-rwxr-xr-x 1 ... 440715 ... 11:45 libboost_program_options.so.1.44.0
-rw-r--r-- 1 ... 8868 ... 11:53 libboost_random.a
lrwxrwxrwx 1 ... 25 ... 11:46 libboost_random.so ->
libboost_random.so.1.44.0
-rwxr-xr-x 1 ... 13058 ... 11:45 libboost_random.so.1.44.0
-rw-r--r-- 1 ... 2102620 ... 11:50 libboost_regex.a
lrwxrwxrwx 1 ... 24 ... 11:49 libboost_regex.so ->
libboost_regex.so.1.44.0
-rwxr-xr-x 1 ... 1256561 ... 11:49 libboost_regex.so.1.44.0
-rw-r--r-- 1 ... 984416 ... 11:54 libboost_serialization.a
lrwxrwxrwx 1 ... 32 ... 11:46 libboost_serialization.so ->
libboost_serialization.so.1.44.0
-rwxr-xr-x 1 ... 624366 ... 11:46 libboost_serialization.so.1.44.0
-rw-r--r-- 1 ... 139202 ... 11:54 libboost_signals.a
lrwxrwxrwx 1 ... 26 ... 11:46 libboost_signals.so ->
libboost_signals.so.1.44.0
-rwxr-xr-x 1 ... 99503 ... 11:46 libboost_signals.so.1.44.0
-rw-r--r-- 1 ... 15498 ... 11:49 libboost_system.a
lrwxrwxrwx 1 ... 25 ... 11:48 libboost_system.so ->
libboost_system.so.1.44.0
-rwxr-xr-x 1 ... 20109 ... 11:48 libboost_system.so.1.44.0
-rw-r--r-- 1 ... 1476598 ... 11:49 libboost_test_exec_monitor.a
-rw-r--r-- 1 ... 149246 ... 11:54 libboost_thread.a
lrwxrwxrwx 1 ... 25 ... 11:47 libboost_thread.so ->
libboost_thread.so.1.44.0
-rwxr-xr-x 1 ... 118667 ... 11:47 libboost_thread.so.1.44.0
-rw-r--r-- 1 ... 1634106 ... 11:54 libboost_unit_test_framework.a
lrwxrwxrwx 1 ... 38 ... 11:47 libboost_unit_test_framework.so ->
libboost_unit_test_framework.so.1.44.0
-rwxr-xr-x 1 ... 941323 ... 11:47 libboost_unit_test_framework.so.1.44.0
-rw-r--r-- 1 ... 2909510 ... 11:55 libboost_wave.a
lrwxrwxrwx 1 ... 23 ... 11:48 libboost_wave.so ->
libboost_wave.so.1.44.0
-rwxr-xr-x 1 ... 1686755 ... 11:48 libboost_wave.so.1.44.0
-rw-r--r-- 1 ... 694192 ... 11:54 libboost_wserialization.a
lrwxrwxrwx 1 ... 33 ... 11:46 libboost_wserialization.so ->
libboost_wserialization.so.1.44.0
-rwxr-xr-x 1 ... 464203 ... 11:46 libboost_wserialization.so.1.44.0

Is it so, that all Boost libraries are now thread safe?? Or maybe I
overlooked some build options??...

I had some 50 million build errors though (something related to Python)
so some targets were skipped by bjam.

-- 
http://eisenbits.homelinux.net/~stf/
OpenPGP: DFD9 0146 3794 9CF6 17EA  D63F DBF5 8AA8 3B31 FE8A
Like hardship, risk & challenge?  --- Follow Jesus!!

Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net