Bug#791053: gmp: library transition may be needed when GCC 5 is the default

Andreas Metzler ametzler at bebt.de
Sun Aug 9 09:49:28 UTC 2015


On 2015-07-03 Matthias Klose <doko at debian.org> wrote:
> Package: src:gmp
> Version: 6.0.0+dfsg-6
> Severity: important
> Tags: sid stretch
> User: debian-gcc at lists.debian.org
> Usertags: libstdc++-cxx11
[...]
> What is needed:

>  - Rebuild the library using g++/g++-5 from experimental. Note that
>    most likely all C++ libraries within the build dependencies need
>    a rebuild too. You can find the log for a rebuild in
>      https://people.debian.org/~doko/logs/gcc5-20150701/
>    Search for "BEGIN GCC CXX11" in the log.

Hello,

I have rebuilt gmp with both gcc-4.9 and gcc-5 on i386, used
dpkg-gensymbols to generate a symbol file for libgmpxx4ldbl and have
compared the results:
ametzler at argenau:/tmp/GMP$ diff -NrBbpu */gmp-6.0.0+dfsg/debian/libgmpxx4ldbl/DEBIAN/symbols
--- gcc49/gmp-6.0.0+dfsg/debian/libgmpxx4ldbl/DEBIAN/symbols    2015-08-09 11:16:10.676611618 +0200
+++ gcc5/gmp-6.0.0+dfsg/debian/libgmpxx4ldbl/DEBIAN/symbols     2015-08-09 11:06:44.661672208 +0200
@@ -1,6 +1,6 @@
 libgmpxx.so.4 libgmpxx4ldbl #MINVER#
  _Z22__gmp_istream_set_baseRSiRcRbS1_ at Base 2:6.0.0+dfsg-7
- _Z24__gmp_istream_set_digitsRSsRSiRcRbi at Base 2:6.0.0+dfsg-7
+ _Z24__gmp_istream_set_digitsRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERSiRcRbi at Base 2:6.0.0+dfsg-7
  _Z26__gmpz_operator_in_nowhiteRSiP12__mpz_structc at Base 2:6.0.0+dfsg-7
  _Z28__gmp_doprnt_integer_ostreamRSoP15doprnt_params_tPc at Base 2:6.0.0+dfsg-7
  _Z28__gmp_doprnt_params_from_iosP15doprnt_params_tRSt9basic_iosIcSt11char_traitsIcEE at Base 2:6.0.0+dfsg-7

Which shows that only a single symbol changed, c++-filt translates this to 
- __gmp_istream_set_digits(std::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_istream<char, std::char_traits<char> >&, char&, bool&, int)
+ __gmp_istream_set_digits(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::basic_istream<char, std::char_traits<char> >&, char&, bool&, int)

Afaiui __gmp_istream_set_digits() is an internal symbol and not part of
the public API.

cu Andreas

-- 
`What a good friend you are to him, Dr. Maturin. His other friends are
so grateful to you.'
`I sew his ears on from time to time, sure'



More information about the debian-science-maintainers mailing list