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