summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Naylor <john.naylor@postgresql.org>2025-08-07 17:13:55 +0700
committerJohn Naylor <john.naylor@postgresql.org>2025-08-07 17:13:55 +0700
commit21ae8fc5fd8698fc47ac1aa9c82e32713d6669be (patch)
treedf4c6834b3b8d0e37c9f46eac0697c4beff945b0
parent930e1faec54e9ca63d9d325167ef09fa09b658ff (diff)
Update ICU C++ API symbols
Recent ICU versions have added U_SHOW_CPLUSPLUS_HEADER_API, and we need to set this to zero as well to hide the ICU C++ APIs from pg_locale.h Per discussion, we want cpluspluscheck to work cleanly in backbranches, so backpatch both this and its predecessor commit ed26c4e25a4 to all supported versions. Reported-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/1115793.1754414782%40sss.pgh.pa.us Backpatch-through: 13
-rw-r--r--.cirrus.tasks.yml3
-rw-r--r--src/include/utils/pg_locale.h5
2 files changed, 5 insertions, 3 deletions
diff --git a/.cirrus.tasks.yml b/.cirrus.tasks.yml
index aa7c7dcd34d..e9e1d3a10b2 100644
--- a/.cirrus.tasks.yml
+++ b/.cirrus.tasks.yml
@@ -777,14 +777,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"
make -s -j${BUILD_JOBS} clean
diff --git a/src/include/utils/pg_locale.h b/src/include/utils/pg_locale.h
index 040968d6ff2..0bc93142e91 100644
--- a/src/include/utils/pg_locale.h
+++ b/src/include/utils/pg_locale.h
@@ -16,6 +16,11 @@
#include <xlocale.h>
#endif
#ifdef USE_ICU
+/* only include the C APIs, to avoid errors in cpluspluscheck */
+#undef U_SHOW_CPLUSPLUS_API
+#define U_SHOW_CPLUSPLUS_API 0
+#undef U_SHOW_CPLUSPLUS_HEADER_API
+#define U_SHOW_CPLUSPLUS_HEADER_API 0
#include <unicode/ucol.h>
#endif