GCC RUNTIME LIBRARY EXCEPTION Version 3, 27 January 2009

Copyright © 2009 Free Software Foundation, Inc. 

Everyone is permitted to copy and distribute verbatim copies of this license
document, but changing it is not allowed.

This GCC Runtime Library Exception ("Exception") is an additional permission
under section 7 of the GNU General Public License, version 3 ("GPLv3"). It applies
to a given file (the "Runtime Library") that bears a notice placed by the copyright
holder of the file stating that the file is governed by GPLv3 along with this
Exception.

When you use GCC to compile a program, GCC may combine portions of certain GCC
header files and runtime libraries with the compiled program. The purpose of
this Exception is to allow compilation of non-GPL (including proprietary) programs
to use, in this way, the header files and runtime libraries covered by this
Exception.
0. Definitions.

A file is an "Independent Module" if it either requires the Runtime Library
for execution after a Compilation Process, or makes use of an interface provided
by the Runtime Library, but is not otherwise based on the Runtime Library.

"GCC" means a version of the GNU Compiler Collection, with or without modifications,
governed by version 3 (or a specified later version) of the GNU General Public
License (GPL) with the option of using any subsequent versions published by
the FSF.

"GPL-compatible Software" is software whose conditions of propagation, modification
and use would permit combination with GCC in accord with the license of GCC.

"Target Code" refers to output from any compiler for a real or virtual target
processor architecture, in executable form or suitable for input to an assembler,
loader, linker and/or execution phase. Notwithstanding that, Target Code does
not include data in any format that is used as a compiler intermediate representation,
or used for producing a compiler intermediate representation.

The "Compilation Process" transforms code entirely represented in a high-level,
non-intermediate language into Target Code. Thus, for example, use of source
code generators and preprocessors need not be considered part of the Compilation
Process, since the Compilation Process can be understood as starting with the
output of the generators or preprocessors.

A Compilation Process is "Eligible" if it is done using GCC, alone or with other
GPL-compatible software, or if it is done without using any work based on GCC.
For example, using non-GPL-compatible Software to optimize any GCC intermediate
representations would not qualify as an Eligible Compilation Process.
1. Grant of Additional Permission.

You have permission to propagate a work of Target Code formed by combining the
Runtime Library with Independent Modules, even if such propagation would otherwise
violate the terms of GPLv3, provided that all Target Code was generated by Eligible
Compilation Processes. You may then convey such a combination under terms of
your choice, consistent with the licensing of the Independent Modules.
2. No Weakening of GCC Copyleft.

The availability of this Exception does not imply any general presumption that
third-party software is unaffected by the copyleft requirements of the license
of GCC.