X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f X-Recipient: djgpp AT delorie DOT com Subject: Re: Difficulties compiling libc from repository using gcc 10.N.0 To: djgpp AT delorie DOT com References: <5FD1FEA1 DOT 7010304 AT gmx DOT de> <8816d501-9f33-4d68-4235-1935a83580f6 AT gmail DOT com> <111383e4-b3db-f346-b71c-749dee17dc9e AT gmail DOT com> <831rfx4ixg DOT fsf AT gnu DOT org> <6371c322-a0ad-b85a-1ccc-1bdfff4a8d87 AT gmail DOT com> From: Richard Damon Message-ID: <65b0c07f-88c1-1696-25ad-4c9a5c094159@Damon-Family.org> Date: Thu, 10 Dec 2020 15:13:15 -0500 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:78.0) Gecko/20100101 Thunderbird/78.5.1 MIME-Version: 1.0 In-Reply-To: <6371c322-a0ad-b85a-1ccc-1bdfff4a8d87@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Language: en-US X-Provags-ID: V03:K1:tdSOR9cahjaCWE/q16FxgJlOuucvmx5NNmnV/24Ww3Yn7lL4jN3 Dt6KbO9vEARFInRm9wtVRiO7l8eaDk0ZXKdVlNLfywWhLI5i84dyP6AKD+oE1lbKeFYtlFL i6V7xL5G+op7VMk8easmwnTKYvxGFnD9ycIsneo8JQPGsZel0WwtFBJ8eIGQblvpflhlM+R eRBg7cmI+doW7XXaXLDpA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:1tQ3zdPZyzA=:PgJfhFjWUdIOIzI7k8WzyN aDXMPjn4VIdfO4DJalWfrVCAdMu40a3lVB7IpYbFe/Z/cZT6yMY+emJmpQ4JnwVHoOpSbTZT/ e732daQLSUDYAvF/VHLbNC2JMtbz3CG0pvGUHjoYVtnQno/QJLsyKvlTO+4FQESQ9u97zQN5X AVjtZEQ5bOUaCMfOHxm+FiHquBzoI16x0x+HFdtGFi9hu3bKzOjzjCSt6ri977joE65S7nRan fU9DT9Tg0pdZTEcD0QLKzQhOo3hDMf1ibM6xaRiTtyKTkiDW8+LYE7inFb5N4wJBcu5XfRNDT nu/a5+z3ay3iuSVeJwdyVG69tzjHxfBdXzhLMhLMIx9AKpEOVQVivdeYmT5mTcdY1lwyzCuWs Qq43+VimxHcIQZFLJCDPFFrnOAW/ZYD3BUatVUgAuWojoeqeh8cojJ2VkargpO97YGjW0ZHCA 62f9pTpXLg== Reply-To: djgpp AT delorie DOT com Errors-To: nobody AT delorie DOT com X-Mailing-List: djgpp AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On 12/10/20 1:55 PM, J.W. Jagersma (jwjagersma AT gmail DOT com) [via djgpp AT delorie DOT com] wrote: > This only applies to global variables (and __stdio_cleanup_hook here is a > function *pointer*), functions themselves still have implicit external linkage. > > I'm not a C language lawyer but this page suggests that it was always an error > to omit 'extern' on global variable declarations. It just wasn't reported as > such, until now: > > https://gcc.gnu.org/gcc-10/porting_to.html Yes, The C Standard explicitly states that if two Translation Units define the same variable, it is undefined behavior. A Translation Unit is considered to define (vs declare) a variable if it is mentioned with the extern storage specifier. Many programs have broken this rule, but gcc (and others) have covered this issue with the -fcommon being assumed. -- Richard Damon