Re: [RFC] Splitting kernel headers and deprecating __KERNEL__

Linus Torvalds
2004-11-30T22:54:14Z

On Tue, 30 Nov 2004, David Woodhouse wrote:
>
> That depends on your definition of 'break'. It should prevent abuse.

Not really.

It should prevent _future_ abuse.

The notion of "preventing existing xxx" is insane. You can't "prevent"
something that already happened unless you've come up with some new
interesting theory of causality.

> To pick a specific example, since you like them: where userland programs
> are including atomic.h, and hence writing programs which don't compile
> on some architectures, and which compile on others but silently give
> non-atomic results, it's perfectly acceptable and indeed advisable to
> prevent compilation across the board.
>
> Some people might call that breakage; I don't.

I do. The thing is, the people who _notice_ the breakage are often the
people who don't know what the hell to do about it.

The way to prevent _future_ abuse is by adding something like

#ifndef __KERNEL__
#warning "This really doesn't work"
#endif

which does that, and has the advantage of not breaking anything at all.

In other words: if you want to move things around just to break things,
THEN THAT IS INCREDIBLY STUPID. We don't do things to screw our users
over.

Feel free to send a patch.

Linus