[Bug 1901080] Re: libgphobos1: ABI breakage in SRU

Steve Langasek 1901080 at bugs.launchpad.net
Fri Jun 25 15:33:38 UTC 2021


On Wed, Jun 23, 2021 at 12:22:52PM -0000, Robie Basak wrote:
> > Regression potential: low, no-change rebuilds with the updated GCC
> 10.3.

> Won't this break any users who have built their own binaries against
> libgphobos1?

Yes, it will.

A proper fix for this must include upgrade handling.  There are two ways to
accomplish this:

 - new libgphobos1 declares versioned Breaks: against the complete list of
   reverse-dependencies that use the old ABI; or
 - package shipping libgphobos.so.1 gets a new name such as libgphobos1final
   or libgphobos1stable or libgphobos1abi or something

I prefer the latter over the former for aesthetic reasons (including the
fact that it handles out-of-archive packages).  But given the overall small
number of packages using this library (13 reverse-dependencies in focal, and
the problem went unreported by users, it was only picked up via
autopkgtests) I think the former would be acceptable in this case.

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to gcc-10 in Ubuntu.
https://bugs.launchpad.net/bugs/1901080

Title:
  libgphobos1: ABI breakage in SRU

Status in a7xpg package in Ubuntu:
  New
Status in dub package in Ubuntu:
  New
Status in dustmite package in Ubuntu:
  New
Status in gcc-10 package in Ubuntu:
  Confirmed
Status in gunroar package in Ubuntu:
  New
Status in ii-esu package in Ubuntu:
  New
Status in mu-cade package in Ubuntu:
  New
Status in parsec47 package in Ubuntu:
  New
Status in projectl package in Ubuntu:
  New
Status in tatan package in Ubuntu:
  New
Status in titanion package in Ubuntu:
  New
Status in torus-trooper package in Ubuntu:
  New
Status in tumiki-fighters package in Ubuntu:
  New
Status in val-and-rick package in Ubuntu:
  New
Status in a7xpg source package in Focal:
  New
Status in dub source package in Focal:
  New
Status in dustmite source package in Focal:
  New
Status in gcc-10 source package in Focal:
  New
Status in gunroar source package in Focal:
  New
Status in ii-esu source package in Focal:
  New
Status in mu-cade source package in Focal:
  New
Status in parsec47 source package in Focal:
  New
Status in projectl source package in Focal:
  New
Status in tatan source package in Focal:
  New
Status in titanion source package in Focal:
  New
Status in torus-trooper source package in Focal:
  New
Status in tumiki-fighters source package in Focal:
  New
Status in val-and-rick source package in Focal:
  New

Bug description:
  gcc-10 was a shipped as a pre-release version in focal, which saw an
  ABI change in libgphobos with the GCC 10.2 release.  Now instead of
  reverting this change, just rebuild the affected packages, mostly some
  games implemented in D, and dub.

  Validation: CHeck the autopkg tests where available, check at least
  one game, that it starts.

  Regression potential: low, no-change rebuilds with the updated GCC
  10.3.

  
  Original report:
  gcc-10 was SRUed to focal, and in the process introduced regressions caused by ABI breakage of libgphobos1.

  This has manifested as failing autopkgtests of the dub package,
  following unrelated SRUs:

  [...]
  autopkgtest [13:52:44]: test run:  - - - - - - - - - - stderr - - - - - - - - - -
  dub: symbol lookup error: dub: undefined symbol: _D3std3net4curl4HTTP9__mixin376onSendMFNdDFAvZmZv
  [...]

  The symbol present in the new version of libgphobos1 is now
  _D3std3net4curl4HTTP9__mixin396onSendMFNdDFAvZmZv instead of
  _D3std3net4curl4HTTP9__mixin376onSendMFNdDFAvZmZv.

  Libraries are not allowed to change ABI without changing binary
  package name.  And for libraries built from such a core package as
  gcc, ABIs should be enforced at package build time to avoid such
  regressions.

  This regression was overlooked at the time of gcc SRU because the
  autopkgtests for gcc uploads are special-cased to not test all
  reverse-dependencies; so it's incumbent on gcc to properly enforce ABI
  stability.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/a7xpg/+bug/1901080/+subscriptions



More information about the foundations-bugs mailing list