summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2022-02-08 19:25:56 -0500
committerTom Lane <tgl@sss.pgh.pa.us>2022-02-08 19:26:22 -0500
commiteba0f095c780fad505a859ee6713123692affa30 (patch)
tree9674569da3004fd426450e1e8a8f6a9b41a0f494
parentec24521950fb055488e3ab2c652ffbf7fe0180b9 (diff)
downloadpostgresql-eba0f095c780fad505a859ee6713123692affa30.tar.gz
Remove ppport.h's broken re-implementation of eval_pv().
Recent versions of Devel::PPPort try to redefine eval_pv() to dodge a bug in pre-5.31 Perl versions. Unfortunately the redefinition fails on compilers that don't support statements nested within expressions. However, we aren't actually interested in this bug fix, since we always call eval_pv() with croak_on_error = FALSE. So, until there's an upstream fix for this breakage, just comment out the macro to revert to the older behavior. Per report from Wei Sun, as well as previous buildfarm failure on pademelon (which I'd unfortunately not looked at carefully enough to understand the cause). Back-patch to all supported versions, since we're using the same ppport.h in all. Discussion: https://postgr.es/m/tencent_2EFCC8BA0107B6EC0F97179E019A8A43C806@qq.com Report: https://buildfarm.postgresql.org/cgi-bin/show_log.pl?nm=pademelon&dt=2022-02-02%2001%3A22%3A58
-rw-r--r--src/pl/plperl/ppport.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/pl/plperl/ppport.h b/src/pl/plperl/ppport.h
index c1ee55c366..1f6cf465df 100644
--- a/src/pl/plperl/ppport.h
+++ b/src/pl/plperl/ppport.h
@@ -15077,6 +15077,13 @@ DPPP_(my_croak_xs_usage)(const CV *const cv, const char *const params)
# endif
#endif
+/*
+ * This implementation of eval_pv fails on compilers that don't allow
+ * statements nested within expressions. However, we don't care about the bug
+ * it's trying to fix, because we only call eval_pv with croak_on_error=0.
+ * So, pending an upstream fix for this, just remove it.
+ */
+#ifdef NOT_USED
/* Older Perl versions have broken croak_on_error=1 */
#if (PERL_BCDVERSION < 0x5031002)
# ifdef eval_pv
@@ -15088,6 +15095,7 @@ DPPP_(my_croak_xs_usage)(const CV *const cv, const char *const params)
# endif
# endif
#endif
+#endif /* NOT_USED */
/* This is backport for Perl 5.3.97d and older which do not provide perl_eval_pv */
#ifndef eval_pv