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