1GCC RUNTIME LIBRARY EXCEPTION 2 3Version 3.1, 31 March 2009 4 5General information: http://www.gnu.org/licenses/gcc-exception.html 6 7Copyright (C) 2009 Free Software Foundation, Inc. <http://fsf.org/> 8 9Everyone is permitted to copy and distribute verbatim copies of this 10license document, but changing it is not allowed. 11 12This GCC Runtime Library Exception ("Exception") is an additional 13permission under section 7 of the GNU General Public License, version 3 14("GPLv3"). It applies to a given file (the "Runtime Library") that bears 15a notice placed by the copyright holder of the file stating that the 16file is governed by GPLv3 along with this Exception. 17 18When you use GCC to compile a program, GCC may combine portions of 19certain GCC header files and runtime libraries with the compiled 20program. The purpose of this Exception is to allow compilation of 21non-GPL (including proprietary) programs to use, in this way, the header 22files and runtime libraries covered by this Exception. 23 240. 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 611. 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 702. 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. 75