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