Le 09/03/2020 à 15:02, Bruce Dubbs via blfs-dev a écrit :
> On 3/9/20 8:48 AM, Pierre Labastie via blfs-dev wrote:
>> Le 09/03/2020 à 14:46, Pierre Labastie via blfs-dev a écrit :
>>> Le 09/03/2020 à 13:43, Bruce Dubbs via blfs-dev a écrit :
>>>> On 3/8/20 10:49 PM, Xi Ruoyao via blfs-dev wrote:
>>>>> GCC 10 will enable -fno-common by default.  It would break some "legacy"
>>>>> (actually buggy IMO) code.  I found some cases in the book with GCC 9 and
>>>>> -fno-
>>>>> common explicitly enabled.
>>>>>
>>>>> Patches uploaded to
>>>>> http://www.linuxfromscratch.org/~xry111/fno-common-patches/.
>>>>> I hope the upstream can fix these cases before GCC 10 (for SDL2, 
>>>>> xorg-server
>>>>> and
>>>>> pipewire the fix is already commited).  But if they don't we can grab 
>>>>> these
>>>>> patches as needed.
>>>>
>>>> Thanks for that.  One question though.  When I go to
>>>> https://gcc.gnu.org/onlinedocs/gcc/Code-Gen-Options.html is says
>>>>
>>>> "The default is -fno-common, which specifies that the compiler places
>>>> uninitialized global variables in the BSS section of the object file. This
>>>> inhibits the merging of tentative definitions by the linker so you get a
>>>> multiple-definition error if the same variable is accidentally defined in
>>>> more
>>>> than one compilation unit."
>>>>
>>>> I would read the above to indicate that -fno-common is default for gcc9 
>>>> also.
>>>>
>>>> Comments?
>>>>
>>>
>>> In the info file for gcc-9.2.0:
>>>
>>>       Unix C compilers have traditionally allocated storage for
>>>       uninitialized global variables in a common block.  This allows the
>>>       linker to resolve all tentative definitions of the same variable in
>>>       different compilation units to the same object, or to a
>>>       non-tentative definition.  This is the behavior specified by
>>>       '-fcommon', and is the default for GCC on most targets.  On the
>>>       other hand, this behavior is not required by ISO C, and on some
>>>       targets may carry a speed or code size penalty on variable
>>>       references.
>>>
>>> So I think the internet version is for GCC 10.
>>
>>
>> The right address for internet doc for 9.2.0 is
>> https://gcc.gnu.org/onlinedocs/gcc-9.2.0/gcc/
> 
> OK, but it's curious to me that the generic web page is for an unreleased 
> gcc-10.

AFAIU, it is a snapshot of the doc... But this should be made clearer.

Pierre
-- 
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to