2003-09-12 18:22:34

by Kevin P. Fleming

[permalink] [raw]
Subject: 2.6.0-test5 _IOR/_IOW changes are breaking userspace

Sorry to bring up this discussion again, but the situation is getting
worse. Previously, it was only apps that needed to issue sysctls that
would break with the new kernel headers.

As of 2.6.0-test5, many apps that issue ioctls can no longer be
compiled using the kernel headers that they have always used. So far
this morning I have found three parts of util-linux-2.12, and at least
one in mdadm-1.3.0. As I continue my build I suspect device-mapper,
xfsprogs, mt-st and others will also have failures. The worst part is
that the changes required to get the apps to compile are incompatible
with all previous kernel headers.

As things get closer to 2.6.0 (for real), this is going to become a
larger and larger problem. Without a set of userspace-compatible
kernel headers available (and it sounds like the project to do that
for real is 2.7 material), userspace applications have to be compiled
against older "sanitized" headers that may not include new kernel
features at all.

In the particular case of the ioctls used by util-linux and mdadm,
using the RedHat "sanitized" headers would not be a problem. However,
I want to compile device-mappper using its new version 4 ioctls, which
I suspect are not included in the sanitized headers because they are
not in 2.4 at all. I also need my kernel header package to include XFS
headers, and they are not a standard part of 2.4 either.


2003-09-12 18:35:34

by Kevin P. Fleming

[permalink] [raw]
Subject: Re: 2.6.0-test5 _IOR/_IOW changes are breaking userspace

Kevin P. Fleming wrote:

> The worst part is that the
> changes required to get the apps to compile are incompatible with all
> previous kernel headers.
>

It seems I overreacted here a bit, mea culpa...

It may just be that the new headers are enforcing proper usage, and
that the applications that won't compile are actually broken. I did
not originally suspect this given the provenance of the applications I
was dealing with, but I guess everyone makes mistakes, myself included :-)