LWN.net Logo

Mono man accuses Mac Gtk+ fans of jeopardizing Linux desktop (the Register)

Mono man accuses Mac Gtk+ fans of jeopardizing Linux desktop (the Register)

Posted Jul 17, 2008 21:33 UTC (Thu) by rrdharan (guest, #41452)
In reply to: Mono man accuses Mac Gtk+ fans of jeopardizing Linux desktop (the Register) by jordanb
Parent article: Mono man accuses Mac Gtk+ fans of jeopardizing Linux desktop (the Register)

> Breaking ABIs is no big deal. It's just a recompile. 

You're wrong.

http://linuxhaters.blogspot.com/2008/07/feel-source.html


(Log in to post comments)

He's right

Posted Jul 17, 2008 22:07 UTC (Thu) by khim (guest, #9252) [Link]

Breaking ABIs is no big deal. The fact is: you can not. Microsoft breaks the ABI, Sun breaks the ABI - even if they spend billions trying to support it. ABIs are fragile. They break easily. The only 100% fool-proof way to keep the ABI unbroken is to use the same binary. That's what Windows is doing - and it pays for it dearly.

The last sentence of cited article says it all: There are many famous examples in Win32-land where programs depend on bugs within the runtime, I claim that similar mistakes are strictly and significantly easier when source code is available. With FOSS such things are easy to create but equally easy to fix: if RPM refuses to work with GlibC 2.1 since it used some internal structures in GLibC 2.0 - it's trivial to recompile it. When some program does not work with new version of library in binary world - you are starting to add layers of emulation upon another layers of emulation. The end result is huge, unreliable, bloated mess. Like a Windows Vista. And there are no way to fix that. With source code there are at least hope...

He's right

Posted Jul 17, 2008 23:31 UTC (Thu) by zooko (subscriber, #2589) [Link]

I'm curious about your claim that Sun breaks the ABI.  I've often heard pro-Solaris folks make
comments like "Programs written for Solaris 2.5 thirteen years ago still work on Solaris 10
today and will continue to work on future versions of Solaris.".

But I don't see any sort of measurement or documentation of this on the web.  Do you know of
some examples of Solaris ABI breakage?

Thanks.

Speaking of solaris 2.5

Posted Jul 19, 2008 11:17 UTC (Sat) by k8to (subscriber, #15413) [Link]

Solaris 2.5.1 changed an environment variable export put out by the x library implementation
that provided a path to where various X resources were located.  Prior to 2.5, this
environment variable existed.  With 2.5.1, the variable was removed.

There were probably (other) portable ways to locate the resources, but Sun maintained that it
was not an interface change.  Basically, to them, ABI meant only the entry points.

So it all depends on how literally you want to treat things.  My experience is that they not
only break the interface, but they obtusely pretend they have not done so.  Others may have
had better experiences.  I haven't played with Solaris for a while.

Only if you payed attention to the ABI rules

Posted Jul 24, 2008 13:31 UTC (Thu) by alex (subscriber, #1355) [Link]

There are plenty of old Solaris applications out there that didn't follow the official library
ABI, and they will break when running on Solaris 10.

It's interesting the way Sun keep ABI compatibility. Basically nothing in the kernel is
guaranteed, all access to the kernel goes through the stable SUN/POSIX ABI in the libraries.
If applications follow the library ABI then all is good. This also allows Sun to tweak their
kernel layer and then apply fix-ups in the library.

It's in stark contrast to the Linux approach which has shifting internal kernel API's and
library API's but a solid syscall ABI. If you dig up statically linked a.out file from years
ago it will run fine on a modern 2.6 kernel.

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