[RFC][PATCH 0/2] KABI example conversion and cleanup

Rob Landley rob at landley.net
Mon Mar 27 21:48:54 CEST 2006


On Monday 27 March 2006 1:19 am, Avi Kivity wrote:
> Rob Landley wrote:
> > On Sunday 26 March 2006 12:57 pm, Avi Kivity wrote:
> >> This is true for a small enough application. But things grow, libraries
> >> are added, and includes keep pulling other includes in. Sooner or later
> >> you'll have a collision.
> >
> > And you'll fix it when it happens.  Fact of life.
>
> Fixing it will mean breaking either the ABI of the kernel or of the
> large library you pulled in.
>
> An ABI bug causes pain far beyond its size. Look at the trouble caused
> when some interfaces uses unsigned instead of u64. In kernel APIs, you
> just replace the type, but in the ABI, you add a new syscall or do some
> other hack.

One of busybox's users has a libc built with improperly sanitized kernel 
headers that leak all the kernel's CONFIG_ symbols into the standard 
namespace, and we found out because one of them clashes with a busybox CONFIG 
symbol and it broke his build.

The easiest thing to do was rename our CONFIG symbol, which we did.  (And 
asked him to fix his system, which he didn't.)  This was a while ago now...

> Much better to get it right the first time, even if it's ugly. It's an
> ABI, not a beauty contest nominee.

I've been cc'd on all this because I cared about Mazur's kernel headers enough 
to email him several times.  But I can't say I really care about this new 
project that's taken over the discussion.

Either it doesn't break the existing interface, in which case it has no impact 
on me and I can ignore it, or it requires all existing userspace programs 
that care about the current state of things to change to care about your new 
thing instead, in which case it's probably doomed.  Unless the kernel picks 
it up and imposes a flag day, at which point I'll find out about it from LWN 
like everybody else.

Either way, it's not sounding like something I can grab and build uClibc 
systems with any time soon, the way I could use Mazur's headers to build 
uClibc.  I'll probably wind up using the gentoo headers when the 2.6.14 
version ships.

http://www.gentoo.org/cgi-bin/viewcvs.cgi/src/patchsets/gentoo-headers/?root=gentoo

*shrug*.  Good luck with whatever it is you're trying to accomplish.

Rob
-- 
Never bet against the cheap plastic solution.


More information about the llh-discuss mailing list