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