Thanks for the link, I tried a lot of combinations but nothing works
Then I started looking in boost for the header where I got the error,
then I found the header but I don't know why this happen. I fix the
problem with:

#pragma GCC visibility push(default)
#include <boost/python/call.hpp>
#pragma GCC visibility pop
#include <boost/python.hpp>


You can try this only changing the "foo/python_headers.h" file in my
previous example.

I don't know if this is the correct way to fix this. Someone can talk about?


BR


On Sat, Mar 21, 2009 at 5:38 PM, Niall Douglas
<s_sourcefo...@nedprod.com> wrote:
> 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
>
>
>
> _______________________________________________
> Cplusplus-sig mailing list
> Cplusplus-sig@python.org
> http://mail.python.org/mailman/listinfo/cplusplus-sig
>



-- 
Renato Araujo Oliveira Filho
_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to