
On Wed, 2005-02-02 at 00:43 -0800, Ralf W. Grosse-Kunstleve wrote:
I am working with the very latest boost CVS. Most Boost.Python tests fail with a segmentation fault with these compilers:
gcc version 3.3 20030304 (Apple Computer, Inc. build 1493) gcc version 3.3 20030304 (Apple Computer, Inc. build 1671) gcc version 3.2.2 20030222 (Red Hat Linux 3.2.2-5) gcc version 3.2.3 20030502 (Red Hat Linux 3.2.3-20) gcc version 3.4.3 # compiled from sources, running under RH WS 3 gcc version 3.4.3 # compiled from sources, running under RH 8.0
In contrast, these gcc's do *not* have any problems:
gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-113) gcc version 3.2 20020903 (Red Hat Linux 8.0 3.2-7)
valgrind reports no errors for gcc version 3.2 under RH 8.0, but complains about the gcc 3.4.3 compiled code on the same machine (see below).
The problem appears to be independent of the Python version (problem observed with 2.2, 2.3, 2.4) and the optimizer (problem observed with -O3 and -O0).
The Boost CVS from 2005-Jan-26 11:43 PDT didn't have this problem.
I attach the valgrind output for one of the Boost.Python tests. Does this ring any bells?
I started to do a test run with GCC 3.3.5, and noticed this warning in the output (should be an error, IMO...): gcc-C ++-action ../../../bin/boost/libs/python/build/libboost_python.so/gcc/debug/shared-linkable-true/numeric.o /home/jonathan/src/boost-CVS-HEAD/boost/boost/python/object_core.hpp: In function `PyObject* boost::python::api::object_base_initializer(const T&) [with T = boost::python::tuple]': /home/jonathan/src/boost-CVS-HEAD/boost/boost/python/object_core.hpp:310: instantiated from `boost::python::api::object::object(const T&) [with T = boost::python::tuple]' /home/jonathan/src/boost-CVS-HEAD/boost/boost/python/numeric.hpp:117: instantiated from `void boost::python::numeric::array::resize(const Sequence&) [with Sequence = boost::python::tuple]' /home/jonathan/src/boost-CVS-HEAD/boost/boost/preprocessor/iteration/detail/local.hpp:37: instantiated from here /home/jonathan/src/boost-CVS-HEAD/boost/boost/python/object_core.hpp:285: warning: cannot pass objects of non-POD type `struct boost::integral_constant<bool, true>' through `...'; call will abort at runtime HTH, -Jonathan