[build2] Build system reorganization (heads-up to distribution packagers)

Boris Kolpackov boris at codesynthesis.com
Fri Oct 4 14:38:50 UTC 2019


Matthew Krupcale <mkrupcale at matthewkrupcale.com> writes:

> It does require attention to ABI changes, but projects like abidiff[1]
> can make this fairly easy [...]

This is a bit of tangent, but until recently I was under the
impression that detecting ABI changes can be automated by comparing
binary's symbols. Then at CppCon I went for a talk on ABI (the video
is not out yet) which made me realize what kind of rabbit hole this
problem is. One of the best examples form that talk is a change from:

struct s
{
  ...
  
  s () {}
};

To:

struct s
{
  ...
  
  s () = default;
};

This change apparently might change how this struct is passed
around in the Itanium ABI.

I see that abidiff uses the debug info which is already a big step
up comparing to my naive idea of comparing symbol names, but I wonder
if it handles all the corner cases like the above.



More information about the users mailing list