Don't ask to ask, just ask | |
PerlMonks |
Re: PerlIO::Layers 0.011 fails to build in macOS 10.13.3by syphilis (Archbishop) |
on Mar 26, 2018 at 00:39 UTC ( [id://1211714]=note: print w/replies, xml ) | Need Help?? |
It's rather odd.
AFAICT, the XS_VERSION_BOOTCHECK macro (in XSUB.h) is the same for all systems, as is also the case for the STR_WITH_LEN macro (in handy.h). And both macros are correctly stated in the output you provided. If it were me, I'd try removing the -DXS_VERSION="0.011" argument from the command that's producing the error. I don't know if that will allow the build to succeed, but I do know that it will avoid the error you're getting (because XS_VERSION_BOOTCHECK is a noop if XS_VERSION is not defined). AIUI, defining XS_VERSION to VERSION allows a mismatch of XS component and Perl component to be detected at boot. Otherwise, such a mismatch will lead to confusing runtime errors or crashes. So, if my suggested approach does succeed, you lose the re-assurance of that check at boot. <afterthought> Given the nature of this error, I'm thinking it should occur every time you build a module that defines XS_VERSION prior to the inclusion of XSUB.h (which is what is happening here). I don't think there are a lot of modules that do that, though I haven't checked on that. (Correction ... seems to be defined for modules containing XS files.) I notice that XS_VERSION_BOOTCHECK has changed since perl-5.18 and no longer directly calls STR_WITH_LEN. Perhaps this means that updating to perl 5.26 would avoid the issue you've struck. </afterthought> Cheers, Rob
In Section
Seekers of Perl Wisdom
|
|