0
|
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
|