From fcb21b3acdcb9a60313325618fd7080aa36f1626 Mon Sep 17 00:00:00 2001 From: Jeff Davis Date: Tue, 18 Apr 2023 13:20:11 -0700 Subject: [PATCH] Build ICU support by default. Discussion: https://postgr.es/m/82c4c816-06f6-d3e3-ba02-fca4a5cef065%40enterprisedb.com Reviewed-by: Peter Eisentraut --- .cirrus.yml | 1 + configure | 36 ++++++---------- configure.ac | 8 +++- doc/src/sgml/installation.sgml | 76 +++++++++++++++++++--------------- 4 files changed, 61 insertions(+), 60 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index d3f88821a8..b47a8ae100 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -776,6 +776,7 @@ task: time ./configure \ --host=x86_64-w64-mingw32 \ --enable-cassert \ + --without-icu \ CC="ccache x86_64-w64-mingw32-gcc" \ CXX="ccache x86_64-w64-mingw32-g++" make -s -j${BUILD_JOBS} clean diff --git a/configure b/configure index 82efa0d3f1..e585b28bff 100755 --- a/configure +++ b/configure @@ -1558,7 +1558,7 @@ Optional Packages: set WAL block size in kB [8] --with-CC=CMD set compiler (deprecated) --with-llvm build with LLVM based JIT support - --with-icu build with ICU support + --without-icu build without ICU support --with-tcl build Tcl modules (PL/Tcl) --with-tclconfig=DIR tclConfig.sh is in DIR --with-perl build Perl modules (PL/Perl) @@ -8401,7 +8401,9 @@ $as_echo "#define USE_ICU 1" >>confdefs.h esac else - with_icu=no + with_icu=yes + +$as_echo "#define USE_ICU 1" >>confdefs.h fi @@ -8470,31 +8472,17 @@ fi # Put the nasty error message in config.log where it belongs echo "$ICU_PKG_ERRORS" >&5 - as_fn_error $? "Package requirements (icu-uc icu-i18n) were not met: - -$ICU_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -Alternatively, you may set the environment variables ICU_CFLAGS -and ICU_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details." "$LINENO" 5 + as_fn_error $? "ICU library not found +If you have ICU already installed, see config.log for details on the +failure. It is possible the compiler isn't looking in the proper directory. +Use --without-icu to disable ICU support." "$LINENO" 5 elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it -is in your PATH or set the PKG_CONFIG environment variable to the full -path to pkg-config. - -Alternatively, you may set the environment variables ICU_CFLAGS -and ICU_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details. - -To get pkg-config, see . -See \`config.log' for more details" "$LINENO" 5; } + as_fn_error $? "ICU library not found +If you have ICU already installed, see config.log for details on the +failure. It is possible the compiler isn't looking in the proper directory. +Use --without-icu to disable ICU support." "$LINENO" 5 else ICU_CFLAGS=$pkg_cv_ICU_CFLAGS ICU_LIBS=$pkg_cv_ICU_LIBS diff --git a/configure.ac b/configure.ac index 1362f57a27..97f5be6c73 100644 --- a/configure.ac +++ b/configure.ac @@ -853,13 +853,17 @@ AC_SUBST(enable_thread_safety) # ICU # AC_MSG_CHECKING([whether to build with ICU support]) -PGAC_ARG_BOOL(with, icu, no, [build with ICU support], +PGAC_ARG_BOOL(with, icu, yes, [build without ICU support], [AC_DEFINE([USE_ICU], 1, [Define to build with ICU support. (--with-icu)])]) AC_MSG_RESULT([$with_icu]) AC_SUBST(with_icu) if test "$with_icu" = yes; then - PKG_CHECK_MODULES(ICU, icu-uc icu-i18n) + PKG_CHECK_MODULES(ICU, icu-uc icu-i18n, [], + [AC_MSG_ERROR([ICU library not found +If you have ICU already installed, see config.log for details on the +failure. It is possible the compiler isn't looking in the proper directory. +Use --without-icu to disable ICU support.])]) fi # diff --git a/doc/src/sgml/installation.sgml b/doc/src/sgml/installation.sgml index 3d839d665a..75dc81a0a9 100644 --- a/doc/src/sgml/installation.sgml +++ b/doc/src/sgml/installation.sgml @@ -146,6 +146,35 @@ documentation. See standalone-profile.xsl for details. pg_restore. + + + + The ICU locale provider (see ) is used by default. If you don't want to use it then you must specify the option to configure. Using this option disables support for ICU collation features (see ). + + + ICU support requires the ICU4C package to be + installed. The minimum required version of + ICU4C is currently 4.2. + + + + By default, + pkg-configpkg-config + will be used to find the required compilation options. This is + supported for ICU4C version 4.6 and later. + For older versions, or if pkg-config is not + available, the variables ICU_CFLAGS and + ICU_LIBS can be specified to + configure, like in this example: + +./configure ... ICU_CFLAGS='-I/some/where/include' ICU_LIBS='-L/some/where/lib -licui18n -licuuc -licudata' + + (If ICU4C is in the default search path + for the compiler, then you still need to specify nonempty strings in + order to avoid use of pkg-config, for + example, ICU_CFLAGS=' '.) + + @@ -926,40 +955,6 @@ build-postgresql: - - - - - Build with support for - the ICUICU - library, enabling use of ICU collation - features (see - ). - This requires the ICU4C package - to be installed. The minimum required version - of ICU4C is currently 4.2. - - - - By default, - pkg-configpkg-config - will be used to find the required compilation options. This is - supported for ICU4C version 4.6 and later. - For older versions, or if pkg-config is - not available, the variables ICU_CFLAGS - and ICU_LIBS can be specified - to configure, like in this example: - -./configure ... --with-icu ICU_CFLAGS='-I/some/where/include' ICU_LIBS='-L/some/where/lib -licui18n -licuuc -licudata' - - (If ICU4C is in the default search path - for the compiler, then you still need to specify nonempty strings in - order to avoid use of pkg-config, for - example, ICU_CFLAGS=' '.) - - - - @@ -1231,6 +1226,19 @@ build-postgresql: + + + + + Build without support for the + ICUICU + library, disabling the use of ICU collation features (see ). + + + + -- 2.30.2