New 'as' port: GPL requirements?
Simon Richter
Simon.Richter@hogyros.de
Mon Nov 7 18:25:00 GMT 2005
More information about the Binutils mailing list
Mon Nov 7 18:25:00 GMT 2005
- Previous message (by thread): New 'as' port: GPL requirements?
- Next message (by thread): New 'as' port: GPL requirements?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello,
John Moran wrote:
> Summary: I want to modify an existing GPL-ed program (gas) such that it
> makes calls to proprietary library 'A'. I'm not the copyright holder of
> 'A', and there is no chance that the copyright holder will allow 'A' to
> be GPL'ed. 'A' is linked dynamically at runtime. Question: does the GPL
> allow me to do this (or, to be precise, does it allow me to distribute
> the modified 'gas')?
No, as you cannot offer the complete source code to the modified 'gas'
binary to anyone who has obtained a binary.
> So, for a dynamic call to library A, this points to combination rather
> than aggregation. However, 'linked together in a shared address space'
> is not well-defined, and 'almost surely' is not helpful.
Well, in order to be able to make calls into the library, you need to
map it into your process's address space, which it then shares with the
library. Whether that mapping results as a result of a linker combining
the objects and creating loader instructions or as a result of the
program opening the file and telling the kernel to mmap() it at some
address does not matter in this context.
> This is more interesting. In this case, two-way communication is
> impossible, since I can't modify library 'A'. gas makes function calls
> to 'A', and not vice-versa. There are no shared data structures.
There are, namely the ones you pass parameters and return values in.
> In fact, the idea that making a call from a GPL'ed
> program into a library somehow converts the library into an extension of
> the GPL'ed program seems, to me anyway, to be utterly bizarre. The
> library is an independent entity that is unrelated to the calling
> program. We've all written code that calls, for example, 'fopen' - does
> that mean that we've all extended 'fopen'?
Most likely you have created an extended version of fopen() that is able
to open a specific type of file and provides higher-level functions to
access the data contained within the file in a structured manner. So
basically, the answer is yes, your program is an extension (which is why
the GNU C library has a different license that allows programs to link
it without imposing restrictions on the license of the program).
You may want to think about this from the POV of the GNU developers. The
goal is to create an operating system for which the entire source code
is available and licensed such that noone can ever retroactively shut
down access to it (once it's out, it's out). If it were acceptable to
link closed-source libraries, then this would no longer be true.
Simon
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 307 bytes
Desc: OpenPGP digital signature
URL: <https://sourceware.org/pipermail/binutils/attachments/20051107/f27bc3a4/attachment.sig>
- Previous message (by thread): New 'as' port: GPL requirements?
- Next message (by thread): New 'as' port: GPL requirements?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Binutils mailing list