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
