Linked by Thom Holwerda on Wed 15th Jun 2011 14:23 UTC, submitted by Valhalla
General Development "PathScale announced today that the EKOPath 4 Compiler Suite is now available as an open source project and free download for Linux, FreeBSD and Solaris. This release includes documentation and the complete development stack, including compiler, debugger, assembler, runtimes and standard libraries. EKOPath is the product of years of ongoing development, representing one of the industries highest performance Intel 64 and AMD C, C++ and Fortran compilers." More here.
Thread beginning with comment 477348
To view parent comment, click here.
To read all comments associated with this story, please click here.
GPL compiler with non-GPL code?
by Alfman on Thu 16th Jun 2011 03:05 UTC in reply to "RE: How fast could i make my code:"
Alfman
Member since:
2011-01-28

lemur2,

"As with all GPL programs, the GPL license and the associated copyleft applies to the source code of the program. Youy have unlimited, irrevocable, unconditional permission (under the GPL) to use the program however you wish. The only act to which copyleft provisos apply is if you decide to re-distribute said compiler tools."

Hmm, I don't know if that's right. The binary could arguably be a derivative work.

I think the FSF uses a different interpretation of the GPL than common sense might infer, which is why they've licensed GCC with GPL exceptions.

http://www.gnu.org/licenses/gcc-exception-faq.html

In the faq, read this section "Why is compiler intermediate representation excluded from the definition of 'Target Code?'"

"...If that program is proprietary, the exception will not be available to any software compiled with it; the object code that GCC ultimately creates will have to be distributed under the terms of the GPL."


It's pretty clear that the FSF intends GCC compiled code not covered by the exception to fall under the GPL license.


If the FSF interpretation of the GPL is accurate (it would be ironic if it wasn't), then in theory a GPL compiler without exceptions can only be used for GPL projects.


Edit:
Personally I find this interpretation bizarre. At the extreme, there could be license ramifications for all GPL tools like 'sed' or 'grep' lacking explicit exceptions.

Of course I leave it to the capable hands of more knowledgeable posters to explain it to me.

Edited 2011-06-16 03:12 UTC

Reply Parent Score: 2

lemur2 Member since:
2007-02-17

lemur2, "As with all GPL programs, the GPL license and the associated copyleft applies to the source code of the program. Youy have unlimited, irrevocable, unconditional permission (under the GPL) to use the program however you wish. The only act to which copyleft provisos apply is if you decide to re-distribute said compiler tools." Hmm, I don't know if that's right. The binary could arguably be a derivative work. I think the FSF uses a different interpretation of the GPL than common sense might infer, which is why they've licensed GCC with GPL exceptions. http://www.gnu.org/licenses/gcc-exception-faq.html In the faq, read this section "Why is compiler intermediate representation excluded from the definition of 'Target Code?'" "...If that program is proprietary, the exception will not be available to any software compiled with it; the object code that GCC ultimately creates will have to be distributed under the terms of the GPL." It's pretty clear that the FSF intends GCC compiled code not covered by the exception to fall under the GPL license. If the FSF interpretation of the GPL is accurate (it would be ironic if it wasn't), then in theory a GPL compiler without exceptions can only be used for GPL projects. Edit: Personally I find this interpretation bizarre. At the extreme, there could be license ramifications for all GPL tools like 'sed' or 'grep' lacking explicit exceptions. Of course I leave it to the capable hands of more knowledgeable posters to explain it to me.


The definition of "derivative work" comes from copyright law, not from the FSF. Copyright law itself is the law, not whatever the FSF says or thinks, or is thought to say or think.

http://en.wikipedia.org/wiki/Derivative_work

"In United States copyright law, a derivative work is an expressive creation that includes major, copyright-protected elements of an original, previously created first work."


Unless your work actually INCLUDES pieces of some other work, it simply is not a derived work under copyright law. In addition, it has to INCLUDE "major elements" of another work ... mere snippets is not enough, nor is non-functional references.

This is why dynamic linking is not an issue ... with dynamic linking the linked code is not actually included, merely referenced. Only static linking actually includes external code to be distributed within another work.

So, in the case of the "EKOPath 4 Compiler Suite", unless your source code actually, literally, INCLUDES (perhaps via via static linking or by direct copy-and-paste) some "major element" of the "EKOPath 4 Compiler Suite" source code, then your work is simply not affected by the license of the "EKOPath 4 Compiler Suite" source code, under copyright law.

That is the law, no matter what the FSF might say or think.

Just as the license for a text editor program has no bearing on the ownership rights of the text one edits using it as long as one doesn't include the source code of the editor, so too does the license of the "EKOPath 4 Compiler Suite" have absolutely nothing to do with the rights to the code compiled with it, unless one includes some major element of the source code of the "EKOPath 4 Compiler Suite" itself.

Edited 2011-06-16 03:44 UTC

Reply Parent Score: 3

lemur2 Member since:
2007-02-17

It's pretty clear that the FSF intends GCC compiled code not covered by the exception to fall under the GPL license. If the FSF interpretation of the GPL is accurate (it would be ironic if it wasn't), then in theory a GPL compiler without exceptions can only be used for GPL projects.


Apart from the fact that the intentions of the FSF have no bearing on copyright law itself, it is also pertinent to note that while the FSF's has claims over GCC source code, despite being the original authors of the GPL license template text the FSF does NOT in fact have claims over "EKOPath 4 Compiler Suite" source code.

So the only sane conclusion from this observation is that whatever the FSF might believe in this scenario is DOUBLY irrelevant.

Reply Parent Score: 3

Alfman Member since:
2011-01-28

lemur2,

"The definition of 'derivative work' comes from copyright law, not from the FSF. Copyright law itself is the law, not whatever the FSF says or thinks, or is thought to say or think."

Then maybe that's why they got rid of the terminology "derivative work" and replaced it with "covered work" in gpl3.


Hypothetically, MS could release a free educational edition of MS-Word which was only to be used for public domain educational research papers under a license which explicitly revokes the rights for any other use.

Do think someone could obtain MS-Word under this license and legally claim that they're entitled to use Word for private/commercial work when they get caught?

If not, then how the GCC case different?

Keep in mind that both the GPL2/3 revoke rights in this manor.


GPL2:

7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all.

GPL3:

12. No Surrender of Others' Freedom.

If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program.

Reply Parent Score: 2

boldingd Member since:
2009-02-19

lemur2,

"As with all GPL programs, the GPL license and the associated copyleft applies to the source code of the program. Youy have unlimited, irrevocable, unconditional permission (under the GPL) to use the program however you wish. The only act to which copyleft provisos apply is if you decide to re-distribute said compiler tools."

Hmm, I don't know if that's right. The binary could arguably be a derivative work.


It's not. This is an old question, with an old answer. Compiled binaries are not derivative works; anything you create with a GPL'ed tool is yours to do with as you please (as is true with any other GPL'ed program that produces something, like the GIMP).

I think the FSF uses a different interpretation of the GPL than common sense might infer, which is why they've licensed GCC with GPL exceptions.

http://www.gnu.org/licenses/gcc-exception-faq.html

In the faq, read this section "Why is compiler intermediate representation excluded from the definition of 'Target Code?'"

"...If that program is proprietary, the exception will not be available to any software compiled with it; the object code that GCC ultimately creates will have to be distributed under the terms of the GPL."


Let me include the whole FAQ entry in question:

Why is compiler intermediate representation excluded from the definition of “Target Code?”

When we first considered adding a plugin infrastructure to GCC, we were deeply concerned about the possibility that someone would write a plugin that would merely save GCC's internal, low-level compilation data structures to disk. With that done, other software would be able to optimize or otherwise improve that code without being directly connected to GCC. It may have been difficult for us to argue that those programs should be subject to the GPL's copyleft, so we wanted to discourage these sorts of arrangements.

We do that by excluding such output from the definition of Target Code. Because of this, even if someone writes a plugin that saves this information to disk, any programs that change the structures before GCC writes out Target Code will be involved in the Compilation Process. If that program is proprietary, the exception will not be available to any software compiled with it; the object code that GCC ultimately creates will have to be distributed under the terms of the GPL.


What they're specifically talking about here is preventing some "clever" third party from using GCC's plug-in architecture to attempt to circumvent the GPL license covering GCC. Basically, if you use a plug-in to operate on the low-level in-memory structures that GCC is using to compile your code, you don't get the license exception that allows you to include the technically-GPL'ed trivial libraries that GCC is going to link your code with under other licenses. This has no effect on normal use of the compiler.

It's pretty clear that the FSF intends GCC compiled code not covered by the exception to fall under the GPL license.


You really had to torture your reading of that page to get to that conclusion. The very first two paragraphs specifically state that the GCC developers have always intended to support proprietary development, even if they don't particularly like it. The second and third paragraphs of your own link:
The licenses for some libraries that accompany GCC have not been changed yet. These libraries are automatically used by the object code that GCC produces. Because of that, if these libraries were simply distributed only under the terms of the GPL, all the object code that GCC produces would have to be distributed under the same terms. However, the FSF decided long ago to allow developers to use GCC's libraries to compile any program, regardless of its license. Developing nonfree software is not good for society, and we have no obligation to make it easier. We decided to permit this because forbidding it seemed likely to backfire, and because using small libraries to limit the use of GCC seemed like the tail wagging the dog.

Therefore, these libraries have always had license exceptions that allow people to distribute the object code GCC produces under any license.
We are now moving these libraries to GPLv3 and updating their exceptions. Our fundamental policy has not changed; the new license is meant to permit all the uses of GCC that were permitted before. However, we have decided to use this opportunity to update the exception to accomplish three goals:

My Bold.

So, first, it is definitely legal to distribute binaries built with GCC under any license, and it is definitely the FSF's intention that that be the case. Second, that page is in its entirety about including license exceptions for "small, trivial libraries" that GCC automatically links into compiled object files specifically so that they can be distributed under proprietary licenses.

If the FSF interpretation of the GPL is accurate (it would be ironic if it wasn't), then in theory a GPL compiler without exceptions can only be used for GPL projects.


Edit:
Personally I find this interpretation bizarre. At the extreme, there could be license ramifications for all GPL tools like 'sed' or 'grep' lacking explicit exceptions.

Of course I leave it to the capable hands of more knowledgeable posters to explain it to me.


The FSF isn't claiming that the GCC's license applies to code that it generates. That isn't how "derived work" has ever been understood to be defined. What they're saying is that GCC links trivial libraries into the object code that it generates, and that those are covered by the GPL; that's where the "GPL infection" is coming from. Exactly because they felt like it would be inappropriate to force the GPL onto any object file built with the GPL, they included exceptions in the license of those trivial libraries allowing them to be included in proprietary programs.

Reply Parent Score: 2

Alfman Member since:
2011-01-28

boldingd,

Thank you for trying to understand my points and putting them in the context they needed. I very much appreciate your candid response minus the arrogance and down speaking.

I agree with your conclusion that the FSF wants GCC to compile code under any license.

The question is, if a GPL compiler does not restrict the license of compiled works, why is the GCC GNU exception needed in the first place? Why not place any runtime libraries under LGPL? I'd imagine other people want to know too, but by now they're intimidated from asking.

Edited 2011-06-17 20:45 UTC

Reply Parent Score: 2