summaryrefslogtreecommitdiff
path: root/src/tools
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:14 -0500
commitb5d8fd4182f24ee489aa6bb72308f8712cd8810d (patch)
tree9fa80e761dc2137949f7dfe6d53f76f7ae75e7a5 /src/tools
parent3ae0c48a59f747905f26acd38fecdc3e3f505b5b (diff)
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.
Diffstat (limited to 'src/tools')
-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 e4feda10fd8..ef0a33c10f1 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -580,6 +580,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,