[C++-sig] gcc flag -fvisibility=hidden not working with boost::python

Niall Douglas s_sourceforge at nedprod.com
Sat Mar 21 21:38:59 CET 2009


On 20 Mar 2009 at 13:46, Renato Araujo wrote:

> I have worked with some gcc flags to reduce my binding size. After
> some time using this -fvisibility=hidden with my library, I discovered
> a strange behavior on boost::python more specific in object call
> function like this:
> 
> python::call_method<void>(py_obj.ptr(), "myVirtualFunction");
> 
> The problem is: When I use this flag boost always call my "virtual
> default" implementation and without this flag boost always call the
> correct virtual method, I don't know what this is happening. I would
> like to know if someone has any idea why this is happening?
> 
> I create this small test to show the problem. This flags is very
> important for me because I got size reduction about 50% with this.

You're not annotating your wrapper class correctly.

See http://www.nedprod.com/programs/gccvisibility.html.

Cheers,
Niall





More information about the Cplusplus-sig mailing list