jpayne@68: GCC RUNTIME LIBRARY EXCEPTION jpayne@68: jpayne@68: Version 3.1, 31 March 2009 jpayne@68: jpayne@68: Copyright (C) 2009 Free Software Foundation, Inc. jpayne@68: jpayne@68: Everyone is permitted to copy and distribute verbatim copies of this jpayne@68: license document, but changing it is not allowed. jpayne@68: jpayne@68: This GCC Runtime Library Exception ("Exception") is an additional jpayne@68: permission under section 7 of the GNU General Public License, version jpayne@68: 3 ("GPLv3"). It applies to a given file (the "Runtime Library") that jpayne@68: bears a notice placed by the copyright holder of the file stating that jpayne@68: the file is governed by GPLv3 along with this Exception. jpayne@68: jpayne@68: When you use GCC to compile a program, GCC may combine portions of jpayne@68: certain GCC header files and runtime libraries with the compiled jpayne@68: program. The purpose of this Exception is to allow compilation of jpayne@68: non-GPL (including proprietary) programs to use, in this way, the jpayne@68: header files and runtime libraries covered by this Exception. jpayne@68: jpayne@68: 0. Definitions. jpayne@68: jpayne@68: A file is an "Independent Module" if it either requires the Runtime jpayne@68: Library for execution after a Compilation Process, or makes use of an jpayne@68: interface provided by the Runtime Library, but is not otherwise based jpayne@68: on the Runtime Library. jpayne@68: jpayne@68: "GCC" means a version of the GNU Compiler Collection, with or without jpayne@68: modifications, governed by version 3 (or a specified later version) of jpayne@68: the GNU General Public License (GPL) with the option of using any jpayne@68: subsequent versions published by the FSF. jpayne@68: jpayne@68: "GPL-compatible Software" is software whose conditions of propagation, jpayne@68: modification and use would permit combination with GCC in accord with jpayne@68: the license of GCC. jpayne@68: jpayne@68: "Target Code" refers to output from any compiler for a real or virtual jpayne@68: target processor architecture, in executable form or suitable for jpayne@68: input to an assembler, loader, linker and/or execution jpayne@68: phase. Notwithstanding that, Target Code does not include data in any jpayne@68: format that is used as a compiler intermediate representation, or used jpayne@68: for producing a compiler intermediate representation. jpayne@68: jpayne@68: The "Compilation Process" transforms code entirely represented in jpayne@68: non-intermediate languages designed for human-written code, and/or in jpayne@68: Java Virtual Machine byte code, into Target Code. Thus, for example, jpayne@68: use of source code generators and preprocessors need not be considered jpayne@68: part of the Compilation Process, since the Compilation Process can be jpayne@68: understood as starting with the output of the generators or jpayne@68: preprocessors. jpayne@68: jpayne@68: A Compilation Process is "Eligible" if it is done using GCC, alone or jpayne@68: with other GPL-compatible software, or if it is done without using any jpayne@68: work based on GCC. For example, using non-GPL-compatible Software to jpayne@68: optimize any GCC intermediate representations would not qualify as an jpayne@68: Eligible Compilation Process. jpayne@68: jpayne@68: 1. Grant of Additional Permission. jpayne@68: jpayne@68: You have permission to propagate a work of Target Code formed by jpayne@68: combining the Runtime Library with Independent Modules, even if such jpayne@68: propagation would otherwise violate the terms of GPLv3, provided that jpayne@68: all Target Code was generated by Eligible Compilation Processes. You jpayne@68: may then convey such a combination under terms of your choice, jpayne@68: consistent with the licensing of the Independent Modules. jpayne@68: jpayne@68: 2. No Weakening of GCC Copyleft. jpayne@68: jpayne@68: The availability of this Exception does not imply any general jpayne@68: presumption that third-party software is unaffected by the copyleft jpayne@68: requirements of the license of GCC. jpayne@68: