Your message dated Mon, 28 Aug 2017 12:04:05 +0200
with message-id 
<CACLYLBkme5_BF1hsqFCLq8hEW-QMf+nd2=pva2+0tyylogz...@mail.gmail.com>
and subject line Re: Bug#871288: libzeroc-ice3.6: requires rebuild against GCC 
7 and symbols/shlibs bump
has caused the Debian Bug report #871288,
regarding libzeroc-ice3.6: requires rebuild against GCC 7 and symbols/shlibs 
bump
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
871288: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=871288
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: libzeroc-ice3.6
Version: 3.6.3-5
Severity: serious
Tags: sid buster
User: debian-...@lists.debian.org
Usertags: gcc-7-op-mangling

Hi,

It appears that your package provides an external symbol that is
affected by the recent name mangling changes in GCC 7. See:
https://gcc.gnu.org/gcc-7/porting_to.html#conversion-op-mangling

In GCC 7, the name mangling for C++ conversion operators which return a
type using the abi_tag attribute (most commonly std::string) has
changed. When your library is compiled with GCC 7, it will now emit two
symbols for the conversion operator using the new and old naming.
Executables compiled with GCC 7 will always use the new symbol, while
old executables compiled using <= GCC 6 will use the old symbol. For new
executables to build without undefined references, your library will
need rebuilding with GCC 7.

To ensure that new executables will pull in the newer version of the
library built with GCC 7:
- Your library package should Build-Depend on g++ (>= 4:7).
- If your package provides a symbols file, ensure that the new
  conversion operator symbols have a version matching the version this
  bug is fixed in (including the Debian revision and tilde if
  necessary).

  Using apt as an example (debian/libapt-pkg5.0.symbols):
    (c++)"URI::operator std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >[abi:cxx11]()@APTPKG_5.0" 0.8.0
  + (c++)"URI::operator std::__cxx11::basic_string<char, 
std::char_traits<char>, std::allocator<char> >()@APTPKG_5.0" 1.5~beta2~

  Where "1.5~beta2" is the version this bug was fixed in.

- If your package does not provide a symbols file, add a dh_makeshlibs
  override so that tight enough dependencies are generated.

  Using libebml as an example (debian/rules):
  + override_dh_makeshlibs:
  +     # For new symbols when compiled with GCC 7
  +     dh_makeshlibs -V'libebml4v5 (>= 1.3.4-2~)'

  Where "1.3.4-2" is the version this bug was fixed in.

- If your package is about to be renamed due to an upstream SONAME bump,
  you do not need to add any special symbols handling.

If you would like to know the exact name of the new symbols, using
"abipkgdiff" from abigail-tools might be able to help.

Thanks,
James

--- End Message ---
--- Begin Message ---
The issue has been fixed in 3.6.3-6 version of the package

The package now build depends on  g++ (>= 4:7) [1]
Added override_dh_makeshlibs to generate correct dependencies [2]

[1]:
https://github.com/zeroc-ice/ice-debian-packaging/blob/3.6-sid/debian/control#L17
[2]:
https://github.com/zeroc-ice/ice-debian-packaging/blob/3.6-sid/debian/rules#L176

On Thu, Aug 10, 2017 at 4:51 AM, James Cowgill <jcowg...@debian.org> wrote:

> Hi,
>
> On 09/08/17 10:07, Jose Gutierrez de la Concha wrote:
> > On Tue, Aug 8, 2017 at 6:07 PM, James Cowgill <jcowg...@debian.org
> > <mailto:jcowg...@debian.org>> wrote:
> >
> >On 08/08/17 11:29, Jose Gutierrez de la Concha wrote:
> >> On Tue, Aug 8, 2017 at 5:01 PM, James Cowgill <jcowg...@debian.org
> <mailto:jcowg...@debian.org>
> >> <mailto:jcowg...@debian.org <mailto:jcowg...@debian.org>>> wrote:
> >>[...]
> >>>- If your package does not provide a symbols file, add a dh_makeshlibs
> >>>  override so that tight enough dependencies are generated.
> >>>
> >>>  Using libebml as an example (debian/rules):
> >>>  + override_dh_makeshlibs:
> >>>  +     # For new symbols when compiled with GCC 7
> >>>  +     dh_makeshlibs -V'libebml4v5 (>= 1.3.4-2~)'
> >>>
> >
> > Any ideas how should I handle multiple packages in override_dh_makeshlibs
> > zeroc-ice has several packages that include libzeroc-ice3.6,
> > libzeroc-freeze3.6
> > so I cannot really pass a single package name in -V
>
> Here's an example. SFML has 5 libraries and 2 of them have specific
> dh_makeshlibs calls.
>
> https://sources.debian.net/src/libsfml/2.4.2%2Bdfsg-4/debian/rules/#L18
>
> In short, you use the -p option to apply a -V to a specific package and
> then use --remaining-packages if there are any left.
>
> I think that only the libzeroc-ice3.6 package is affected by this
> (although you may want to double check) so you may only need to set the
> dependencies for that package.
>
> Thanks,
> James
>
>


-- 
José Gutiérrez de la Concha
ZeroC, Inc.

--- End Message ---

Reply via email to