On 07/13/2017 10:36 AM, Tom Lane wrote: > Andrew Dunstan <andrew.duns...@2ndquadrant.com> writes: >> On 07/13/2017 08:08 AM, Ashutosh Sharma wrote: >>> - dVAR; dXSBOOTARGSAPIVERCHK; >>> + dVAR; dXSBOOTARGSNOVERCHK; >> Good job hunting this down! >> One suggestion I saw in a little googling was that we add this to the XS >> file after the inclusion of XSUB.h: >> #undef dXSBOOTARGSAPIVERCHK >> #define dXSBOOTARGSAPIVERCHK dXSBOOTARGSNOVERCHK > I don't see anything even vaguely like that in the Util.c file generated > by Perl 5.10.1, which is what I've got on my RHEL machine.
This is all fairly modern, so it's hardly surprising that it doesn't happen with the ancient perl 5.10. here's a snippet from the generated Util.c on crake (Fedora 25, perl 5.24): XS_EXTERNAL(boot_PostgreSQL__InServer__Util); /* prototype to pass -Wmissing-prototypes */ XS_EXTERNAL(boot_PostgreSQL__InServer__Util) { #if PERL_VERSION_LE(5, 21, 5) dVAR; dXSARGS; #else dVAR; dXSBOOTARGSAPIVERCHK; #endif > > What I do notice is this in Util.xs: > > VERSIONCHECK: DISABLE > > which leads immediately to two questions: > > 1. Why is your version of xsubpp apparently ignoring this directive > and generating a version check anyway? > > 2. Why do we have this directive in the first place? It does not seem > to me like a terribly great idea to ignore low-level version mismatches. > > In the same vein, I'm suspicious of proposals to "fix" this problem > by removing the version check, which seems to be where Ashutosh > is headed. In the long run that seems certain to cause huge headaches. That is a different version check. It's the equivalent of xsubpp's --noversioncheck flag. The versions it would check are the object file and the corresponding pm file. In fact the usage I suggested seems to be blessed in XSUB.h in this comment: /* dXSBOOTARGSNOVERCHK has no API in xsubpp to choose it so do #undef dXSBOOTARGSXSAPIVERCHK #define dXSBOOTARGSXSAPIVERCHK dXSBOOTARGSNOVERCHK */ It would be nice to get to the bottom of why we're getting a version mismatch on Windows, since we're clearly not getting one on Linux. But since we've got on happily all these years without the API version check we might well survive a few more going on as we are. cheers andrew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers