|
|
Subscribe / Log in / New account

Poettering: Revisiting how we put together Linux systems

Poettering: Revisiting how we put together Linux systems

Posted Sep 1, 2014 20:26 UTC (Mon) by dlang (guest, #313)
In reply to: Poettering: Revisiting how we put together Linux systems by Karellen
Parent article: Poettering: Revisiting how we put together Linux systems

The problem is that ABI discipline is almost non-existant among "Desktop Environment" developers, there are a few exceptions, but very few.

If ABIs were managed properly, we wouldn't be having these disucssions.


to post comments

Poettering: Revisiting how we put together Linux systems

Posted Sep 2, 2014 2:48 UTC (Tue) by raven667 (subscriber, #5198) [Link] (11 responses)

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.

Poettering: Revisiting how we put together Linux systems

Posted Sep 2, 2014 19:38 UTC (Tue) by robclark (subscriber, #74945) [Link] (8 responses)

> 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.

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.

Poettering: Revisiting how we put together Linux systems

Posted Sep 2, 2014 22:05 UTC (Tue) by jondo (guest, #69852) [Link] (1 responses)

Could a distro be frozen to such an extent that only packages get updated that pass such strong ABI testing? Quasi "Debian superstable".

Reality kicks in: This would simply stop all updates ...

Poettering: Revisiting how we put together Linux systems

Posted Sep 3, 2014 15:05 UTC (Wed) by raven667 (subscriber, #5198) [Link]

Nah, that's pretty much why you have today backports of security fixes without changing the version of software, this is the service that Redhat makes their millions on.

Poettering: Revisiting how we put together Linux systems

Posted Sep 2, 2014 6:21 UTC (Tue) by krake (guest, #55996) [Link]

Not sure if you mean application developers or those creating workspace implementations (a.k.a. desktop environments), but for example KDE, as a vendor of both, has very strict policies on maintaining ABI and API stability.

Its wiki page on C++ ABI dos-and-don'ts has become one of the most often referenced resource in that matter.

Poettering: Revisiting how we put together Linux systems

Posted Sep 2, 2014 11:26 UTC (Tue) by cjcoats (guest, #9833) [Link] (1 responses)

Not just desktop-developers. There were at least 147 ABI breakages
in the WRF weather-forecast modeling system between WRF-3.0.1 and 3.0.2.
Or at least, there were that many that I found and had to re-program
for...

Poettering: Revisiting how we put together Linux systems

Posted Sep 3, 2014 12:32 UTC (Wed) by rweir (subscriber, #24833) [Link]

you mean API?


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