GCC 运行时库例外 3.0
GCC 运行时库例外
第 3 版,2009 年 1 月 27 日
版权所有 © 2009 自由软件基金会,公司 <https://fsf.org/>
允许任何人复制和分发此许可文件的完整副本,但不允许对其进行更改。
此 GCC 运行时库例外(“例外”)是 GNU 通用公共许可证第 3 版(“GPLv3”)第 7 节下的附加许可。它适用于给定的文件(“运行时库”),该文件带有文件版权所有者放置的声明,表明该文件受 GPLv3 以及此例外的约束。
当您使用 GCC 编译程序时,GCC 可能会将某些 GCC 头文件和运行时库的部分与编译后的程序结合在一起。此例外的目的是允许编译非 GPL(包括专有)程序以这种方式使用此例外涵盖的头文件和运行时库。
0. 定义。
如果一个文件在编译过程后需要运行时库才能执行,或者利用运行时库提供的接口,但并非以运行时库为基础,则该文件是“独立模块”。
“GCC”是指 GNU 编译器集合的一个版本,无论是否进行了修改,都受 GNU 通用公共许可证 (GPL) 第 3 版(或指定的更高版本)的约束,可以选择使用 FSF 发布的任何后续版本。
“GPL 兼容软件”是指其传播、修改和使用条件允许与 GCC 结合使用的软件,符合 GCC 的许可。
“目标代码”是指任何编译器为实际或虚拟目标处理器架构生成的输出,其形式为可执行形式或适合输入汇编器、加载器、链接器和/或执行阶段。尽管如此,“目标代码”不包括任何格式的用作编译器中间表示的数据,或用于生成编译器中间表示的数据。
“编译过程”将完全以高级、非中间语言表示的代码转换为目标代码。因此,例如,源代生成器和预处理器的使用不必被视为编译过程的一部分,因为编译过程可以理解为从生成器或预处理器的输出开始。
如果编译过程是单独使用 GCC 或与其他 GPL 兼容软件一起完成的,或者在不使用任何基于 GCC 的工作的情况下完成的,则该编译过程是“合格的”。例如,使用非 GPL 兼容软件来优化任何 GCC 中间表示将不符合合格的编译过程。
1. 附加许可的授予。
您有权传播通过将运行时库与独立模块组合而形成的目标代码,即使这种传播在其他情况下会违反 GPLv3 的条款,前提是所有目标代码都是通过合格的编译过程生成的。然后,您可以根据您选择的条款传递这种组合,这与独立模块的许可一致。
2. 不削弱 GCC 的版权。
此例外的可用性并不意味着任何关于第三方软件不受 GCC 许可证的版权要求影响的一般假设。