Re: trying to solve the pytango FTBFS with gcc5

2015-09-06 Thread Dmitry Shachnev
On Sun, 06 Sep 2015 18:28:04 +0300, Dmitry Shachnev wrote:
> The actual error is about another symbol:
>
>   _PyTango.so: undefined symbol: _ZN5Tango17ranges_type2constIjE3strE
>
> This symbol is old ABI, as opposed to 
> _ZN5Tango17ranges_type2constIjE3strB5cxx11E
> (which *does* exist in libtango.so.8).
>
> Can it be a bug in GCC? I don't think it should produce such a broken 
> _PyTango.so.

I have created a small test project (attached) that has a library exporting
"std::string Tango::ranges_type2const::str" symbol and a test program
using it.

Interestingly, GCC uses the symbol _ZN5Tango17ranges_type2constIjE3strE
(*without* the B5cxx11 part) for both library and client.

So now I wonder why does libtango have B5cxx11 in it symbols and what is it
needed for.

--
Dmitry Shachnev

test-project.tar.gz
Description: Unix tar archive


signature.asc
Description: OpenPGP digital signature


Re: trying to solve the pytango FTBFS with gcc5

2015-09-06 Thread Dmitry Shachnev
On Sun, 6 Sep 2015 16:35:40 +0200, Matthias Klose wrote:
>> The old abi is explicitly set by line 261 of setup.py.
>
> no. the libstdc++ ABI is unrelated to the C++ standard used for the build.
>
> the symbol is defined:
>
> $ objdump -T /usr/lib/x86_64-linux-gnu/libtango.so|grep
> _ZN5Tango11DeviceProxy14get_corba_nameB5cxx11Eb
> 002ce1a0 gDF .text  0388  Base
> _ZN5Tango11DeviceProxy14get_corba_nameB5cxx11Eb
>
> so find out why _PyTango.so doesn't find it.

The actual error is about another symbol:

  _PyTango.so: undefined symbol: _ZN5Tango17ranges_type2constIjE3strE

This symbol is old ABI, as opposed to 
_ZN5Tango17ranges_type2constIjE3strB5cxx11E
(which *does* exist in libtango.so.8).

Can it be a bug in GCC? I don't think it should produce such a broken 
_PyTango.so.

--
Dmitry Shachnev

signature.asc
Description: OpenPGP digital signature


Re: trying to solve the pytango FTBFS with gcc5

2015-09-06 Thread Matthias Klose
On 09/06/2015 04:24 PM, Scott Kitterman wrote:
> On Sunday, September 06, 2015 08:23:37 AM PICCA Frederic-Emmanuel wrote:
>> Hello, guyes,
>>
>> I am working on this bug report[1], and I would like your opinion.
>> this package depends on the tango library which was rebuilt with gcc5 and
>> updated for the libstdc++6 transition.
>>
>> Now as you can see in the bug report, pytango FTBFS with a missing symbol.
>> and indeed the missing symbol correspond to a c++11 string.
>>
>> I would like to understand why pytango expect old abi string instead of the
>> new c++11 even if during the build -std=cxx01 is given to gcc. For
>> information the files are in fact c++ files.
>>
>> I also tryed with c++11 and I got the same error.
>>
>> So I do not understand what is going on.
>> Is there something special done by distutil when compiling an extension ?
>> is it a problem with gcc (the C compiler) which doesn not use correctly the
>> -std:cxx flag when compiling c++ files ?
>>
>> any help would be appreciate.
>>
>> thanks
>>
>> Frederic
>>
>>
>> [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=797284
> 
> The old abi is explicitly set by line 261 of setup.py.

no. the libstdc++ ABI is unrelated to the C++ standard used for the build.

the symbol is defined:

$ objdump -T /usr/lib/x86_64-linux-gnu/libtango.so|grep
_ZN5Tango11DeviceProxy14get_corba_nameB5cxx11Eb
002ce1a0 gDF .text  0388  Base
_ZN5Tango11DeviceProxy14get_corba_nameB5cxx11Eb

so find out why _PyTango.so doesn't find it.



Re: trying to solve the pytango FTBFS with gcc5

2015-09-06 Thread Scott Kitterman
On Sunday, September 06, 2015 08:23:37 AM PICCA Frederic-Emmanuel wrote:
> Hello, guyes,
> 
> I am working on this bug report[1], and I would like your opinion.
> this package depends on the tango library which was rebuilt with gcc5 and
> updated for the libstdc++6 transition.
> 
> Now as you can see in the bug report, pytango FTBFS with a missing symbol.
> and indeed the missing symbol correspond to a c++11 string.
> 
> I would like to understand why pytango expect old abi string instead of the
> new c++11 even if during the build -std=cxx01 is given to gcc. For
> information the files are in fact c++ files.
> 
> I also tryed with c++11 and I got the same error.
> 
> So I do not understand what is going on.
> Is there something special done by distutil when compiling an extension ?
> is it a problem with gcc (the C compiler) which doesn not use correctly the
> -std:cxx flag when compiling c++ files ?
> 
> any help would be appreciate.
> 
> thanks
> 
> Frederic
> 
> 
> [1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=797284

The old abi is explicitly set by line 261 of setup.py.

Scott K