Bug#783258: flac: FTBFS due to missing symbols

Felipe Sateler fsateler at debian.org
Sat Apr 25 12:46:51 UTC 2015


On 25 April 2015 at 09:33, Alessandro Ghedini <ghedo at 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 at Base 1.3.0
>> > | + _ZN4FLAC7Decoder4File13read_callbackEPhPj at Base 1.3.1-1
>> > | +#MISSING: 1.3.1-1# _ZN4FLAC7Decoder4File13read_callbackEPhPm at 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 at 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 at 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



More information about the pkg-multimedia-maintainers mailing list