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 _______________________________________________ pkg-multimedia-maintainers mailing list pkg-multimedia-maintainers@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-multimedia-maintainers