[cctbxbb] --enable-boost-threads flag

Luc Bourhis luc_j_bourhis at mac.com
Wed Oct 17 18:22:10 PDT 2012


Hi Jeffrey,

> Does the --enable-boost-threads flag for cctbx_sources/libtbx/configure.py do anything drastic besides include -pthread in the compiling and linking steps?

Nope as Richard explained.

> I am trying to understand why I would get a free() error (for the shared_ptr to root_data) under the following situation:
> *) the iotbx_pdb shared library is configured without the --enable-boost-threads flag (on a linux box)
> *) sometimes reproducible from a test C++ program that is linked using -pthread even in the case when the program is as simple as loading a pdb file and creating the hierarchy.
> *) gcc 4.4.5

As Richard pointed out, Boost.Thread support has been removed but from your 3 points, it's clear that the latest cctbx won't cure your problem. There is nothing in the iotbx that have ever relied on Boost.Thread as far as I know, even less on PThread, at least not explicitly. By that I mean that it could be that some hot functions of the standard library have been optimized for multiprocessor in gcc 4.4.5, although I very highly doubt it.

Could you try to compile your C++ program with -g and then find from where the free() error creeps up? I would also run that program through valgrind for good measure.

Best wishes,

Luc



More information about the cctbxbb mailing list