mirror of
				https://github.com/postgres/postgres.git
				synced 2025-11-03 09:13:20 +03:00 
			
		
		
		
	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.
This commit is contained in:
		@@ -574,6 +574,9 @@ sub mkvcbuild
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		# hack to prevent duplicate definitions of uid_t/gid_t
 | 
							# hack to prevent duplicate definitions of uid_t/gid_t
 | 
				
			||||||
		push(@perl_embed_ccflags, 'PLPERL_HAVE_UID_GID');
 | 
							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
 | 
							# Windows offers several 32-bit ABIs.  Perl is sensitive to
 | 
				
			||||||
		# sizeof(time_t), one of the ABI dimensions.  To get 32-bit time_t,
 | 
							# sizeof(time_t), one of the ABI dimensions.  To get 32-bit time_t,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user