Boost logo

Boost :

From: Jonathan Brandmeyer (jbrandmeyer_at_[hidden])
Date: 2005-02-03 08:47:23


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


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk