8000 Fix binary mismatch for MSVC plperl vs gcc built perl libs · postgres/postgres@724dd56 · GitHub
[go: up one dir, main page]

Skip to content

Commit 724dd56

Browse files
committed
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.
1 parent b85fd73 commit 724dd56

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/tools/msvc/Mkvcbuild.pm

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,9 @@ sub mkvcbuild
563563

564564
# hack to prevent duplicate definitions of uid_t/gid_t
565565
push(@perl_embed_ccflags, 'PLPERL_HAVE_UID_GID');
566+
# prevent binary mismatch between MSVC built plperl and
567+
# Strawberry or msys ucrt perl libraries
568+
push(@perl_embed_ccflags, 'NO_THREAD_SAFE_LOCALE');
566569

567570
# Windows offers several 32-bit ABIs. Perl is sensitive to
568571
# sizeof(time_t), one of the ABI dimensions. To get 32-bit time_t,

0 commit comments

Comments
 (0)
0