Re: Linux GPL and binary module exception clause?

From: Jeremy Fitzhardinge
Date: Fri Dec 05 2003 - 13:43:49 EST

On Fri, 2003-12-05 at 09:19, Linus Torvalds wrote:
> But when you use that code to create an "elaboration" to the kernel, that
> makes it a derived work, and you cannot distribute it except as laid out
> by the GPL. A binary module is one such case, but even just a source patch
> is _also_ one such case. The lines you added are yours, but when you
> distribute it as an elaboration, you are bound by the restriction on
> derivative works.
> Or you had better have some other strong argument why it isn't. Which has
> been my point all along.

I tend to agree, but there is a counter-argument:

You can't copyright "facts". A header file contains facts about the
kernel within it, particularly once it has been compiled into machine
code. In machine code, it is simply things like integers (the sizes and
offsets of things, other constants), and encoded entrypoints (however
function calls back into the kernel end up looking). A binary
containing facts about the kernel is not a derived work of the kernel,
even if those facts came from headers in the kernel source.

To argue against this, you'd have to demonstrate that the original
author of the header file had some creative input into the machine code
of the module, on order for the module to be considered a derived work
of the header.

You could so far as saying that if every header put a chunk of text
(say, a piece of poetry) into each .o file which used that header, then
there'd be a much stronger case for saying the .o is derived from the

I've had long complex arguments with legal types over whether function
names are creative ("flumulate_my_greeble" is the best function name
ever!) or mere facts (the function name is simply a cookie you need to
refer to to call a function - it doesn't matter what the name actually


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at