|
|
Subscribe / Log in / New account

Poettering: Revisiting how we put together Linux systems

Poettering: Revisiting how we put together Linux systems

Posted Sep 2, 2014 19:38 UTC (Tue) by robclark (subscriber, #74945)
In reply to: Poettering: Revisiting how we put together Linux systems by raven667
Parent article: Poettering: Revisiting how we put together Linux systems

> It's not just desktop environment libraries, it's most of the ecosystem does not have ABI discipline. See http://upstream-tracker.org/ it's not all desktop software.

that's kind of cool.. I hadn't seen it before. Perhaps they should add a 'wall of shame' ;-)

At least better awareness amongst dev's about ABI compat seems like a good idea.


to post comments

Poettering: Revisiting how we put together Linux systems

Posted Sep 3, 2014 10:13 UTC (Wed) by accumulator (guest, #95885) [Link] (7 responses)

What the Upstream Tracker shows is that Desktop Environment developers are actually remarkable ABI disciplined.

Poettering: Revisiting how we put together Linux systems

Posted Sep 3, 2014 22:35 UTC (Wed) by nix (subscriber, #2304) [Link] (6 responses)

Quite, particularly given that it considers things like the addition of 'volatile' to a data structure member to be an ABI break (hint: it isn't).

Poettering: Revisiting how we put together Linux systems

Posted Sep 4, 2014 19:06 UTC (Thu) by zlynx (guest, #2285) [Link] (5 responses)

Adding volatile or const does break ABI linking in C++ applications. It changes the symbol name. So perhaps they are smart to track it.

Poettering: Revisiting how we put together Linux systems

Posted Sep 5, 2014 13:58 UTC (Fri) by jwakely (subscriber, #60262) [Link] (4 responses)

The grandparent was talking about adding cv-qualifiers to structure members, which doesn't affect symbol names at all.

Poettering: Revisiting how we put together Linux systems

Posted Sep 5, 2014 14:38 UTC (Fri) by mathstuf (subscriber, #69389) [Link] (3 responses)

Removing the qualifiers causes issues though, doesn't it (since optimizations done in previous builds may no longer be valid)?

Poettering: Revisiting how we put together Linux systems

Posted Sep 8, 2014 16:05 UTC (Mon) by nix (subscriber, #2304) [Link] (2 responses)

The first thing I looked at was complaining about something adding a volatile to a structure member. Sorry, that's not an ABI break, and any tool that says it is is just wrong. (It might require code changes to avoid cast warnings in some cases, but the code should still compile and work.)

Poettering: Revisiting how we put together Linux systems

Posted Sep 9, 2014 12:47 UTC (Tue) by mpr22 (subscriber, #60784) [Link] (1 responses)

Am I missing something? It seems to me that any binaries that were compiled against the version of the header that didn't have the volatile in it may display incorrect behaviour with respect to accessing it, and on that basis it seems to me that it's reasonable to call it an ABI break (since the only way to fix the break is to recompile).

Poettering: Revisiting how we put together Linux systems

Posted Sep 9, 2014 13:54 UTC (Tue) by nix (subscriber, #2304) [Link]

Hm. You might be right, though I'd not normally call 'earlier versions may have been misoptimized' to be something that constitutes an ABI break, at least not without investigation to see why the qualifier was added.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds