Martin Roth | afa3e5a | 2022-08-07 17:10:36 -0600 | [diff] [blame] | 1 | GCC RUNTIME LIBRARY EXCEPTION |
| 2 | |
| 3 | Version 3.1, 31 March 2009 |
| 4 | |
| 5 | General information: http://www.gnu.org/licenses/gcc-exception.html |
| 6 | |
| 7 | Copyright (C) 2009 Free Software Foundation, Inc. <http://fsf.org/> |
| 8 | |
| 9 | Everyone is permitted to copy and distribute verbatim copies of this |
| 10 | license document, but changing it is not allowed. |
| 11 | |
| 12 | This GCC Runtime Library Exception ("Exception") is an additional |
| 13 | permission under section 7 of the GNU General Public License, version 3 |
| 14 | ("GPLv3"). It applies to a given file (the "Runtime Library") that bears |
| 15 | a notice placed by the copyright holder of the file stating that the |
| 16 | file is governed by GPLv3 along with this Exception. |
| 17 | |
| 18 | When you use GCC to compile a program, GCC may combine portions of |
| 19 | certain GCC header files and runtime libraries with the compiled |
| 20 | program. The purpose of this Exception is to allow compilation of |
| 21 | non-GPL (including proprietary) programs to use, in this way, the header |
| 22 | files and runtime libraries covered by this Exception. |
| 23 | |
| 24 | 0. Definitions. |
| 25 | |
| 26 | A file is an "Independent Module" if it either requires the Runtime |
| 27 | Library for execution after a Compilation Process, or makes use of an |
| 28 | interface provided by the Runtime Library, but is not otherwise based |
| 29 | on the Runtime Library. |
| 30 | |
| 31 | "GCC" means a version of the GNU Compiler Collection, with or without |
| 32 | modifications, governed by version 3 (or a specified later version) of |
| 33 | the GNU General Public License (GPL) with the option of using any |
| 34 | subsequent versions published by the FSF. |
| 35 | |
| 36 | "GPL-compatible Software" is software whose conditions of propagation, |
| 37 | modification and use would permit combination with GCC in accord with |
| 38 | the license of GCC. |
| 39 | |
| 40 | "Target Code" refers to output from any compiler for a real or virtual |
| 41 | target processor architecture, in executable form or suitable for |
| 42 | input to an assembler, loader, linker and/or execution phase. |
| 43 | Notwithstanding that, Target Code does not include data in any format |
| 44 | that is used as a compiler intermediate representation, or used for |
| 45 | producing a compiler intermediate representation. |
| 46 | |
| 47 | The "Compilation Process" transforms code entirely represented in |
| 48 | non-intermediate languages designed for human-written code, and/or in |
| 49 | Java Virtual Machine byte code, into Target Code. Thus, for example, |
| 50 | use of source code generators and preprocessors need not be considered |
| 51 | part of the Compilation Process, since the Compilation Process can be |
| 52 | understood as starting with the output of the generators or |
| 53 | preprocessors. |
| 54 | |
| 55 | A Compilation Process is "Eligible" if it is done using GCC, alone or |
| 56 | with other GPL-compatible software, or if it is done without using any |
| 57 | work based on GCC. For example, using non-GPL-compatible Software to |
| 58 | optimize any GCC intermediate representations would not qualify as an |
| 59 | Eligible Compilation Process. |
| 60 | |
| 61 | 1. Grant of Additional Permission. |
| 62 | |
| 63 | You have permission to propagate a work of Target Code formed by |
| 64 | combining the Runtime Library with Independent Modules, even if such |
| 65 | propagation would otherwise violate the terms of GPLv3, provided that |
| 66 | all Target Code was generated by Eligible Compilation Processes. You |
| 67 | may then convey such a combination under terms of your choice, |
| 68 | consistent with the licensing of the Independent Modules. |
| 69 | |
| 70 | 2. No Weakening of GCC Copyleft. |
| 71 | |
| 72 | The availability of this Exception does not imply any general |
| 73 | presumption that third-party software is unaffected by the copyleft |
| 74 | requirements of the license of GCC. |