On Wed, 10 Oct 2012, Gabor Loki wrote:

> 2) repeat all the compilation commands related to the previous list in
> the proper environment. The only thing which I have added to the
> compilation command is an extra "-E" option to preprocess every sources.
> 3) create a unique list of all source and header files from the
> preprocessed files.
> 4) at final all source, header and generated files are checked for their
> licenses.

The fact that a header is read by the compiler at some point in generating 
a .o file does not necessarily mean that object file is a work based on 
that header; that is a legal question depending on how the object code 
relates to that header.  Where the objects do use information from 
host-side tm.h, that information is generally factual (e.g. information 
about the sizes of types for that architecture) rather than copyrightable 
expression.  And there is probably no legal difference between getting 
such information via #include of a header shared with the host-side 
compiler, and getting it from predefined macros that the host-side 
compiler defines based on headers included when the host-side compiler is 
built.

Similarly, just because a userspace program for GNU/Linux ends up 
including headers from the Linux kernel does not make that userspace 
program GPLv2.

> I suppose all of the header files should have the GPLv3 with GCC Runtime
> Exception license, because libgcc should have GPLv3 w RE. Am I right?

The libgcc build should move towards working entirely in the toplevel 
libgcc/ directory, with configuration information coming from headers in 
libgcc/config rather than from headers shared with the host.  Please see 
<http://gcc.gnu.org/wiki/Top-Level_Libgcc_Migration> for information that 
may be out of date (it doesn't seem to reflect how various of Rainer's 
patches went in for 4.7), but includes an indicative list of relevant 
target macros and how they might be addressed.

Once the libgcc build is cleanly separated from that of the compiler, any 
residual uses of the Runtime Exception in the host-side gcc/ headers, that 
may have been put there in attempts to address conceptions such as you 
describe about licenses of headers, should be removed.

-- 
Joseph S. Myers
jos...@codesourcery.com

Reply via email to