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