On Mon, Mar 6, 2017 at 9:12 AM, <lagu...@mail.com> wrote: > > I'm looking into the possibility of adding a SPIR-V > (https://www.khronos.org/registry/spir-v) backend to GCC or as a > plug-in. The output of which would be binary from the compiler, not > binutils, with an option to extract a textual representation using an -f > flag. The positive of this would be that any language that GCC supports > could be used for GPGPU and graphics shading. > > But would the GCC IR exception (mentioned in > https://www.gnu.org/licenses/gcc-exception-3.1-faq.html) cause any > SPIR-V output from GCC become GPLv3 licenced? > > I have also posted this to the GCC ML for discussion as I don't think > it's clear whether or not something like SPIR-V would fall under Target > Code or IR.
I am not a lawyer and this is not legal advice. Generating SPIR-V output would not cause that output to become GPLv3 licensed. However, linking the result against the GCC support libraries, as is normally required for any program generated by GCC, and then distributing the resulting executable to other people, would require you to use an eligible compilation process (as defined by the GCC Runtime Library Exception license that you cite). What this means in practice is that you can not take SPIR-V, do further processing it using a proprietary compiler, link the result with the GCC runtime libraries, and then distribute the resulting program to anybody else. I don't think it is necessary to determine whether SPIR-V is "target code" or "intermediate representation" to draw that conclusion. Ian