On Wed, Oct 10, 2012 at 11:41 AM, Steve Hay <Steve.Hay@verosoftware.com> wrote: > Ricardo Signes wrote on 2012-10-10: >> * Karl Williamson <public@khwilliamson.com> [2012-10-10T12:30:04] >>> The email from Jenkins was stuck in the moderation queue. It had >>> nothing to do with this commit AFAIK. If I locally revert >>> cdc4a17406010fd176cecceef1e025e34a60202f >>> "have embed.pl add PERL_CALLCONV_NO_RET to noreturn statics" >>> it builds for me. >> >> In fact, Jenkins doesn't mean to imply that it does. Once *all* the >> held mail got through, you can see that the earliest failure was the >> commit you've identified. Everything else was just, "I tested again >> and it's still busted." >> > > Yes, the culprit (me :-( ) was already identified by Father C: > > http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2012-10/msg00510. > html I can't find that message in my inbox to reply to it, but he said: <quote> I don’t know enough about C++ to explain the error. It does not like PERL_CALLCONV_NO_RET STATIC void S_missingterm(pTHX_ char *s) __attribute__noreturn__; becoming extern "C" static void S_missingterm( char *s) __attribute__((noreturn)); </quote> C<extern "C"> is telling the C++ compiler not to mangle symbols that will be used when linking with external libraries or modules. But C<static> is saying the function can only be used within the source file where it is found and can't even be accessed from other modules in the same library or program. So saying something is both extern "C" and static is a contradiction. Note also that STATIC was replaced with static and the upper case macro may have had disappearing qualities in the right circumstances (that's an unverified guess though). > > I don't know how widespread building with g++ is. If the current failure > is a problem for people then please revert that commit (or tell me and I > will) until bulk88 or I have a fix. > > Apologies again for the brokenness. I hope to get a C++ build working on > Win32 in due course, and hopefully avoid this happening again.Thread Previous | Thread Next