Build ICU support by default.

Discussion: https://postgr.es/m/82c4c816-06f6-d3e3-ba02-fca4a5cef065%40enterprisedb.com
Reviewed-by: Peter Eisentraut
This commit is contained in:
Jeff Davis 2023-04-18 13:20:11 -07:00
parent 4ddee4d9de
commit fcb21b3acd
4 changed files with 61 additions and 60 deletions

View File

@ -776,6 +776,7 @@ task:
time ./configure \ time ./configure \
--host=x86_64-w64-mingw32 \ --host=x86_64-w64-mingw32 \
--enable-cassert \ --enable-cassert \
--without-icu \
CC="ccache x86_64-w64-mingw32-gcc" \ CC="ccache x86_64-w64-mingw32-gcc" \
CXX="ccache x86_64-w64-mingw32-g++" CXX="ccache x86_64-w64-mingw32-g++"
make -s -j${BUILD_JOBS} clean make -s -j${BUILD_JOBS} clean

36
configure vendored
View File

@ -1558,7 +1558,7 @@ Optional Packages:
set WAL block size in kB [8] set WAL block size in kB [8]
--with-CC=CMD set compiler (deprecated) --with-CC=CMD set compiler (deprecated)
--with-llvm build with LLVM based JIT support --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-tcl build Tcl modules (PL/Tcl)
--with-tclconfig=DIR tclConfig.sh is in DIR --with-tclconfig=DIR tclConfig.sh is in DIR
--with-perl build Perl modules (PL/Perl) --with-perl build Perl modules (PL/Perl)
@ -8401,7 +8401,9 @@ $as_echo "#define USE_ICU 1" >>confdefs.h
esac esac
else else
with_icu=no with_icu=yes
$as_echo "#define USE_ICU 1" >>confdefs.h
fi fi
@ -8470,31 +8472,17 @@ fi
# Put the nasty error message in config.log where it belongs # Put the nasty error message in config.log where it belongs
echo "$ICU_PKG_ERRORS" >&5 echo "$ICU_PKG_ERRORS" >&5
as_fn_error $? "Package requirements (icu-uc icu-i18n) were not met: as_fn_error $? "ICU library not found
If you have ICU already installed, see config.log for details on the
$ICU_PKG_ERRORS failure. It is possible the compiler isn't looking in the proper directory.
Use --without-icu to disable ICU support." "$LINENO" 5
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
elif test $pkg_failed = untried; then elif test $pkg_failed = untried; then
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; } $as_echo "no" >&6; }
{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 as_fn_error $? "ICU library not found
$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} If you have ICU already installed, see config.log for details on the
as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it failure. It is possible the compiler isn't looking in the proper directory.
is in your PATH or set the PKG_CONFIG environment variable to the full Use --without-icu to disable ICU support." "$LINENO" 5
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 <http://pkg-config.freedesktop.org/>.
See \`config.log' for more details" "$LINENO" 5; }
else else
ICU_CFLAGS=$pkg_cv_ICU_CFLAGS ICU_CFLAGS=$pkg_cv_ICU_CFLAGS
ICU_LIBS=$pkg_cv_ICU_LIBS ICU_LIBS=$pkg_cv_ICU_LIBS

View File

@ -853,13 +853,17 @@ AC_SUBST(enable_thread_safety)
# ICU # ICU
# #
AC_MSG_CHECKING([whether to build with ICU support]) 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_DEFINE([USE_ICU], 1, [Define to build with ICU support. (--with-icu)])])
AC_MSG_RESULT([$with_icu]) AC_MSG_RESULT([$with_icu])
AC_SUBST(with_icu) AC_SUBST(with_icu)
if test "$with_icu" = yes; then 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 fi
# #

View File

@ -146,6 +146,35 @@ documentation. See standalone-profile.xsl for details.
<application>pg_restore</application>. <application>pg_restore</application>.
</para> </para>
</listitem> </listitem>
<listitem>
<para>
The ICU locale provider (see <xref linkend="locale-providers"/>) is used by default. If you don't want to use it then you must specify the <option>--without-icu</option> option to <filename>configure</filename>. Using this option disables support for ICU collation features (see <xref linkend="collation"/>).
</para>
<para>
ICU support requires the <productname>ICU4C</productname> package to be
installed. The minimum required version of
<productname>ICU4C</productname> is currently 4.2.
</para>
<para>
By default,
<productname>pkg-config</productname><indexterm><primary>pkg-config</primary></indexterm>
will be used to find the required compilation options. This is
supported for <productname>ICU4C</productname> version 4.6 and later.
For older versions, or if <productname>pkg-config</productname> is not
available, the variables <envar>ICU_CFLAGS</envar> and
<envar>ICU_LIBS</envar> can be specified to
<filename>configure</filename>, like in this example:
<programlisting>
./configure ... ICU_CFLAGS='-I/some/where/include' ICU_LIBS='-L/some/where/lib -licui18n -licuuc -licudata'
</programlisting>
(If <productname>ICU4C</productname> is in the default search path
for the compiler, then you still need to specify nonempty strings in
order to avoid use of <productname>pkg-config</productname>, for
example, <literal>ICU_CFLAGS=' '</literal>.)
</para>
</listitem>
</itemizedlist> </itemizedlist>
</para> </para>
@ -926,40 +955,6 @@ build-postgresql:
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry id="configure-option-with-icu">
<term><option>--with-icu</option></term>
<listitem>
<para>
Build with support for
the <productname>ICU</productname><indexterm><primary>ICU</primary></indexterm>
library, enabling use of ICU collation
features<phrase condition="standalone-ignore"> (see
<xref linkend="collation"/>)</phrase>.
This requires the <productname>ICU4C</productname> package
to be installed. The minimum required version
of <productname>ICU4C</productname> is currently 4.2.
</para>
<para>
By default,
<productname>pkg-config</productname><indexterm><primary>pkg-config</primary></indexterm>
will be used to find the required compilation options. This is
supported for <productname>ICU4C</productname> version 4.6 and later.
For older versions, or if <productname>pkg-config</productname> is
not available, the variables <envar>ICU_CFLAGS</envar>
and <envar>ICU_LIBS</envar> can be specified
to <filename>configure</filename>, like in this example:
<programlisting>
./configure ... --with-icu ICU_CFLAGS='-I/some/where/include' ICU_LIBS='-L/some/where/lib -licui18n -licuuc -licudata'
</programlisting>
(If <productname>ICU4C</productname> is in the default search path
for the compiler, then you still need to specify nonempty strings in
order to avoid use of <productname>pkg-config</productname>, for
example, <literal>ICU_CFLAGS=' '</literal>.)
</para>
</listitem>
</varlistentry>
<varlistentry id="configure-with-llvm"> <varlistentry id="configure-with-llvm">
<term><option>--with-llvm</option></term> <term><option>--with-llvm</option></term>
<listitem> <listitem>
@ -1231,6 +1226,19 @@ build-postgresql:
<variablelist> <variablelist>
<varlistentry id="configure-option-without-icu">
<term><option>--without-icu</option></term>
<listitem>
<para>
Build without support for the
<productname>ICU</productname><indexterm><primary>ICU</primary></indexterm>
library, disabling the use of ICU collation features<phrase
condition="standalone-ignore"> (see <xref
linkend="collation"/>)</phrase>.
</para>
</listitem>
</varlistentry>
<varlistentry id="configure-option-without-readline"> <varlistentry id="configure-option-without-readline">
<term><option>--without-readline</option></term> <term><option>--without-readline</option></term>
<listitem> <listitem>