[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: How to fix symbols files to work with gcc-7 and gcc-8 (Was: Bug#897794: libquazip: ftbfs with GCC-8)



On Sat, May 05, 2018 at 12:45:08AM +0200, Svante Signell wrote:
> But why log symbols at all? It
> seems to be very much not needed. If so tell me why it is!

Mainly I see two reasons:
 1. being able to use properly versioned dependencies on the library
 2. have a safety net against what are imho the most common ABI breaks

1: without symbols file you should take care of properly bumping the
shlibs version whenever you introduce a new symbols: in that case either
you don't know you are adding a new symbol, and so you won't bump the
shlibs version and you are going end up with a broken dependency (just
most of the times you are not going to notice it because just out of
luck you get a new enough version of the shared lib together of the
binary requiring the new symbol), or you use -V and force an overly
strict versioned dependency.  Please read:
 - dpkg-gensymbols(1)
 - dpkg-shlibdeps(1)
 - deb-shlibs(5)
 - deb-symbols(5)
 - dh_makeshlibs(1)
2: you'll notice ABI breaks whenever an under-diligent upstream drops a
public method —so dropping also the symbol— without changing SONAME


I personally find the second one particularly interesting: the amount of
upstreams who develop a library with the goal of providing a shared
library but nonetheless won't pose much interest and attention in proper
ABI (in particular symbols) handling is astonishing.
ABI breaks are awful to handle after they land in unstable, catching one
before can save the maintainer, release team and all the rdeps *a lot*
of otherwise wasted time and headaches.

-- 
regards,
                        Mattia Rizzolo

GPG Key: 66AE 2B4A FCCF 3F52 DA18  4D18 4B04 3FCD B944 4540      .''`.
more about me:  https://mapreri.org                             : :'  :
Launchpad user: https://launchpad.net/~mapreri                  `. `'`
Debian QA page: https://qa.debian.org/developer.php?login=mattia  `-

Attachment: signature.asc
Description: PGP signature


Reply to: