v1-0001-Properly-fix-cpluspluscheck-with-ICU.patch
text/x-patch
Filename: v1-0001-Properly-fix-cpluspluscheck-with-ICU.patch
Type: text/x-patch
Part: 0
Message:
cpluspluscheck vs ICU again
Patch
Format: format-patch
Series: patch v1-0001
Subject: Properly fix cpluspluscheck with ICU
| File | + | − |
|---|---|---|
| .cirrus.tasks.yml | 0 | 3 |
| src/include/utils/pg_locale.h | 5 | 0 |
From 6a2a016799a1ba8473cc66aad8509890f00b4ec4 Mon Sep 17 00:00:00 2001
From: John Naylor <john.naylor@postgresql.org>
Date: Wed, 2 Jul 2025 13:56:32 +0700
Subject: [PATCH v1] Properly fix cpluspluscheck with ICU
---
.cirrus.tasks.yml | 3 ---
src/include/utils/pg_locale.h | 5 +++++
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml
index 92057006c93..1a366975d82 100644
--- a/.cirrus.tasks.yml
+++ b/.cirrus.tasks.yml
@@ -938,14 +938,11 @@ task:
# - Don't use ccache, the files are uncacheable, polluting ccache's
# cache
# - Use -fmax-errors, as particularly cpluspluscheck can be very verbose
- # - XXX have to disable ICU to avoid errors:
- # https://postgr.es/m/20220323002024.f2g6tivduzrktgfa%40alap3.anarazel.de
###
always:
headers_headerscheck_script: |
time ./configure \
${LINUX_CONFIGURE_FEATURES} \
- --without-icu \
--quiet \
CC="gcc" CXX"=g++" CLANG="clang-16"
make -s -j${BUILD_JOBS} clean
diff --git a/src/include/utils/pg_locale.h b/src/include/utils/pg_locale.h
index 44ff60a25b4..300c78ba93c 100644
--- a/src/include/utils/pg_locale.h
+++ b/src/include/utils/pg_locale.h
@@ -15,7 +15,12 @@
#include "mb/pg_wchar.h"
#ifdef USE_ICU
+/* only include the C APIs, to avoid errors in cpluspluscheck */
+#undef U_SHOW_CPLUSPLUS_API
+#define U_SHOW_CPLUSPLUS_API 0
#include <unicode/ucol.h>
+/* restore so that extensions can include the C++ APIs */
+#undef U_SHOW_CPLUSPLUS_API
#endif
/* use for libc locale names */
--
2.50.0