aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dunstan <andrew@dunslane.net>2022-11-27 09:03:22 -0500
committerAndrew Dunstan <andrew@dunslane.net>2022-11-27 09:18:20 -0500
commitf3f70b8de66c0bae86f4761e152c10dd39f6f179 (patch)
tree6048ccf1750d5501647c25ebc717782d097758c1
parent4e9e1b2a625eccfdfd09b8fca9693dd1fe96f256 (diff)
downloadpostgresql-f3f70b8de66c0bae86f4761e152c10dd39f6f179.tar.gz
postgresql-f3f70b8de66c0bae86f4761e152c10dd39f6f179.zip
Fix binary mismatch for MSVC plperl vs gcc built perl libs
When loading plperl built against Strawberry perl or the msys2 ucrt perl that have been built with gcc, a binary mismatch has been encountered which looks like this: loadable library and perl binaries are mismatched (got handshake key 0000000012800080, needed 0000000012900080) To cure this we bring the handshake keys into sync by adding NO_THREAD_SAFE_LOCALE to the defines used to build plperl. Discussion: https://postgr.es/m/20211005004334.tgjmro4kuachwiuc@alap3.anarazel.de Discussion: https://postgr.es/m/c2da86a0-2906-744c-923d-16da6047875e@dunslane.net Backpatch to all live branches.
-rw-r--r--src/tools/msvc/Mkvcbuild.pm3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 05ff67e693b..9b6539fb15d 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -587,6 +587,9 @@ sub mkvcbuild
# hack to prevent duplicate definitions of uid_t/gid_t
push(@perl_embed_ccflags, 'PLPERL_HAVE_UID_GID');
+ # prevent binary mismatch between MSVC built plperl and
+ # Strawberry or msys ucrt perl libraries
+ push(@perl_embed_ccflags, 'NO_THREAD_SAFE_LOCALE');
# Windows offers several 32-bit ABIs. Perl is sensitive to
# sizeof(time_t), one of the ABI dimensions. To get 32-bit time_t,