What's the difference between arch-specific header files of uClib and those header files of linux kernel
Rob Landley
rob at landley.net
Mon Mar 26 18:12:54 UTC 2007
On Monday 26 March 2007 1:12 pm, Jan-Benedict Glaw wrote:
> Read the postings,
I did.
> I corrected something.
What?
> And you're right that Linus
> and I disagree over one thing. That basically is backward and forward
> compatibility of struct changes.
There is no forwards compatability, only backwards compatability. Backwards
compatability says if it ran on 2.4 it should run on 2.6. Forwards
compatability says anything that runs on 2.6 it should always run on 2.4,
I.E. you can never add new features.
> It doesn't make a difference for
> most of the syscalls, but it does for some. I'm specifically anal for
> the stat stuff...
Been there, done that.
http://uclibc.org/lists/busybox/2004-November/013134.html
And yet, the binaries that had already been built continued to work just fine.
So the _ABI_ was perfectly stable.
> So yes, wo do have a mostly stable userland ABI, but we've also seen
> it break. (ISTR some nicely fucked up distcc `make' runs which broke
> due to (non-)availability of subsecond stat() data on a common shared
> filesystem.)
I'm under the impression that NFS servers didn't provide subsecond stat() data
at all (the kernel was just hallucinating some out of cache) and that running
make on NFS was a horrible idea from day one. Also, that trying to get
accurate timestamp information out of nfs with the way it caches dentries is
a disaster waiting to happen.
So essentially you're saying that something that was never guaranteed to work
by anyone, ever, broke for you. Great.
I saw a marvelous presentation at the last OLS, called "Why NFS Sucks", I
believe by the current kernel NFS maintainer (I know it's by a guy who has to
make the linux implementation _work_). The paper's in the proceedings, or
broken out here:
http://www-static.cc.gatech.edu/classes/AY2007/cs4210_fall/papers/nfsOLS.pdf
There's was a follow-up presentation at this year's linuxconf called "making
NFS suck faster", which has video:
http://www.bestechvideos.com/2007/03/24/linuxconfau-making-nfs-suck-faster/
> But there are probably other examples, too.
A) Hopefully better ones,
B) Show me one that's intentional breakage rather than a bug. You're talking
about the kernel being (and I quote) "free to decide to define O_WRONLY to 1
in versions < 2.6.20". You're complaining about stat, but if I build stat
under Red Hat 5, copy the appropriate binary and shared libraries into a
chroot directory on my ubuntu laptop with a 2.6.20 kernel, and run that
binary, will it or will it not work?
> That is, I
> continue to claim that there are code pathes where a libc should fix
> up kernel version specific syscall changes.
Example, please? (Specific. No handwaving, show me an actual change to
actual code needing to be made, please.)
Rob
--
Vista: Windows Millenium Second Edition
More information about the uClibc
mailing list