Re: [PATCH v5] sim: bfin: new port

Pedro Alves
2011-03-01T21:19:34Z

Hi Mike,

On Tuesday 22 February 2011 20:26:44, Mike Frysinger wrote:

> --- /dev/null
> +++ b/sim/bfin/linux-fixed-code.h
> @@ -0,0 +1,23 @@
> +/* DO NOT EDIT: Autogenerated. */
> +/* Fixed code region of Linux userspace starting at 0x400. Last produced
> + from Linux-2.6.37 (not that the fixed code region changes often). */
> +static const unsigned char bfin_linux_fixed_code[] = {
> +0x28, 0xe1, 0xad, 0x00, 0xa0, 0x00, 0x00, 0x20,
(...)
> +0xa4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
> +};

I was surprised to still see a binary blob in
the code, and though this blog was generated from a
different source, I also worry about it. :-(
AINAL yadda yadda.

From the comment, this blob in question is a dump of code
from the Linux kernel. In short, you're making the
gdb sources include a piece of the Linux kernel.

The whole Linux kernel as a single product is GPLv2.
If that was indeed extracted from a Linux kernel's
binary (either from a running system or from the
object code), then from my understanding it is
GPLv2 as well, and retains the original copyright of
the Kernel, as (sic from the GPL FAQ) 'when a program
translates its input into some other form, the copyright
status of the output inherits that of the input
it was generated from'.

This seem to make that hunk in the patch not acceptable,
as GPLv2 is incompatible with GPLv3.

There's then the issue that since the blob is
a GPLv2 binary, to distribute/convey it, per the GPL,
we'd need to be able to provide the source it's
generated from as well. And any scripts/instructions
necessary to regenerate the autogenerated file.

(It is also my understanding that when you distribute/convey
object code, you must keep copyright notices
intact, and I would assume that to mean that
even these generated files should carry a copyright
(and license) header.)

Now this kernel code in question was probably (haven't
checked) largely written by ADI, and as such ADI could
probably contribute a standalone version of its source
to the FSF under GPLv3, along with some script or makefile
that compiles it with a bfin-gcc and then generates
the blob array. Or you could write simple dumb
replacement implementations of the interface instead?

I don't know if there's some rule or exception
in the GPL that applies here, and nullifies my concerns.
I'd be happy to learn about it.

I think that best would be for you to contact
<assign@gnu.org> and get an educated answer from
the FSF (Cc'ing me).

--
Pedro Alves