GCC Runtime Library Exception in gcc/config/* files?
Jeff Law
law@redhat.com
Wed Aug 2 19:25:00 GMT 2017
On 07/21/2017 12:14 PM, Georg-Johann Lay wrote:
> Sebastian Huber schrieb:
>> Hello,
>>
>> there are some files in gcc/config/* that contain the GCC Runtime
>> Library Exception
>>
>> grep -r --include='*.[ch]' 'GCC Runtime Library Exception' -l
>> gcc/config | wc
>> 186 186 5361
>>
>> and some files that don't include it
>>
>> grep -r --include='*.[ch]' 'GCC Runtime Library Exception' -l
>> gcc/config -v | wc
>> 753 753 20927
>>
>> Does it matter? What should be used for new files?
>
> Some machine headers are needed by libgcc. Not all information is
> available by means of built-in macros, so that compile-time decisions
> in libgcc might need the target headers.
But just because we make a compile time decision doesn't mean the tm.h
file needs to have the exception clause. IMHO what matters is whether
or not code gets embedded.
For example, if there's a macro in a tm.h file that generates a blob of
assembly code and that assembly code is embedded into libgcc. Then we
probably need an exception clause.
>
> Likely, this dates back to the time when machine specific libgcc bits
> where in gcc/config/$target.
>
> Some users of (lib)gcc which compile their (proprietary) software
> with gcc are paranoid about being infected by GPL due to using
> libgcc which uses headers without runtime library exception.
Yes, but that doesn't mean we just blindly put the exception clause on
all the target headers.
>
> https://gcc.gnu.org/ml/gcc-help/2012-08/msg00235.html
>
> See also
>
> https://gcc.gnu.org/PR61152
IMHO the proper thing to do here is identify what parts potentially
introduce *code* into the library. Those need to have the exception
clause. Adding the exception clause to the tm.h files blindly seems
wrong to me.
jeff
More information about the Gcc
mailing list