On 25 April 2015 at 09:33, Alessandro Ghedini <gh...@debian.org> wrote:
> On sab, apr 25, 2015 at 02:16:52 +0200, Fabian Greffrath wrote:
>> Control: tags -1 + help
>>
>> Hi Sebastian,
>>
>> Am Freitag, den 24.04.2015, 21:27 +0200 schrieb Sebastian Ramacher:
>> > | - _ZN4FLAC7Decoder4File13read_callbackEPhPm@Base 1.3.0
>> > | + _ZN4FLAC7Decoder4File13read_callbackEPhPj@Base 1.3.1-1
>> > | +#MISSING: 1.3.1-1# _ZN4FLAC7Decoder4File13read_callbackEPhPm@Base 1.3.0
>>
>> WTF is wrong with C++ symbols files? The symbols are all there, they
>> differ just in name by their last character.
>
> C++ symbols get mangled to arch-specific names. To make the *.symbols file 
> work
> you need to use the "c++" symbols pattern with the demangled C++ symbol names.
>
> E.g. instead of:
>
>   _ZN4FLAC7Decoder4File13read_callbackEPhPm@Base 1.3.0
>
> use:
>
>   (c++)"FLAC::Decoder::File::read_callback(unsigned char*, unsigned 
> long*)@Base" 1.3.0
>
> The demangling can be done using c++filt as follows (not sure if there's an
> automatic way to convert a whole symbols file):
>
>   % echo "_ZN4FLAC7Decoder4File13read_callbackEPhPm@Base" | c++filt
>   FLAC::Decoder::File::read_callback(unsigned char*, unsigned long*)@Base
>
> Alternatively you could use the "regex" symbols pattern, but I don't think 
> it's
> the recommended way.
>
> See dpkg-gensymbols(1) for more info.

 cat debian/libflac++6.symbols | c++filt | sed -e 's/^ / (c++)"/' -e 's/@/"/'

But, as James mentions, there is still manual work to do: replace all
types by their original typedef, in case the definition differs in
different architectures.

-- 

Saludos,
Felipe Sateler


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to