]> granicus.if.org Git - postgresql/commitdiff
Make configure probe for mbstowcs_l as well as wcstombs_l.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 31 Aug 2012 18:17:56 +0000 (14:17 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 31 Aug 2012 18:17:56 +0000 (14:17 -0400)
We previously supposed that any given platform would supply both or neither
of these functions, so that one configure test would be sufficient.  It now
appears that at least on AIX this is not the case ... which is likely an
AIX bug, but nonetheless we need to cope with it.  So use separate tests.
Per bug #6758; thanks to Andrew Hastie for doing the followup testing
needed to confirm what was happening.

Backpatch to 9.1, where we began using these functions.

configure
configure.in
src/backend/utils/adt/pg_locale.c
src/include/pg_config.h.in
src/include/pg_config.h.win32

index 8f59c93ff9ac9c2c670006cba49951e7072d7eb6..56da7cdc73f3dd8241f3d6cddc094cdd3b347dfa 100755 (executable)
--- a/configure
+++ b/configure
@@ -19244,7 +19244,8 @@ fi
 
 
 
-for ac_func in cbrt dlopen fdatasync getifaddrs getpeerucred getrlimit memmove poll pstat readlink setproctitle setsid sigprocmask symlink sync_file_range towlower utime utimes wcstombs wcstombs_l
+
+for ac_func in cbrt dlopen fdatasync getifaddrs getpeerucred getrlimit mbstowcs_l memmove poll pstat readlink setproctitle setsid sigprocmask symlink sync_file_range towlower utime utimes wcstombs wcstombs_l
 do
 as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
index 3acefa1797655d08f2cc070618accfdcb9ac53af..8d02abb4cca6538b8b16d30bc8589ca9febe9902 100644 (file)
@@ -1200,7 +1200,7 @@ PGAC_VAR_INT_TIMEZONE
 AC_FUNC_ACCEPT_ARGTYPES
 PGAC_FUNC_GETTIMEOFDAY_1ARG
 
-AC_CHECK_FUNCS([cbrt dlopen fdatasync getifaddrs getpeerucred getrlimit memmove poll pstat readlink setproctitle setsid sigprocmask symlink sync_file_range towlower utime utimes wcstombs wcstombs_l])
+AC_CHECK_FUNCS([cbrt dlopen fdatasync getifaddrs getpeerucred getrlimit mbstowcs_l memmove poll pstat readlink setproctitle setsid sigprocmask symlink sync_file_range towlower utime utimes wcstombs wcstombs_l])
 
 AC_REPLACE_FUNCS(fseeko)
 case $host_os in
index 92ea4413cc3e1d2a59257791711de2a38f31464a..297edd63e8a85237608a780ec7912a0309d30009 100644 (file)
@@ -1206,17 +1206,17 @@ char2wchar(wchar_t *to, size_t tolen, const char *from, size_t fromlen,
                else
                {
 #ifdef HAVE_LOCALE_T
-#ifdef HAVE_WCSTOMBS_L
+#ifdef HAVE_MBSTOWCS_L
                        /* Use mbstowcs_l for nondefault locales */
                        result = mbstowcs_l(to, str, tolen, locale);
-#else                                                  /* !HAVE_WCSTOMBS_L */
+#else                                                  /* !HAVE_MBSTOWCS_L */
                        /* We have to temporarily set the locale as current ... ugh */
                        locale_t        save_locale = uselocale(locale);
 
                        result = mbstowcs(to, str, tolen);
 
                        uselocale(save_locale);
-#endif   /* HAVE_WCSTOMBS_L */
+#endif   /* HAVE_MBSTOWCS_L */
 #else                                                  /* !HAVE_LOCALE_T */
                        /* Can't have locale != 0 without HAVE_LOCALE_T */
                        elog(ERROR, "mbstowcs_l is not available");
index dbe28931f8a28466977d6275eacea7f3549e1f17..1ffb032835f1fa324fda404647551d8529040269 100644 (file)
 /* Define to 1 if `long long int' works and is 64 bits. */
 #undef HAVE_LONG_LONG_INT_64
 
+/* Define to 1 if you have the `mbstowcs_l' function. */
+#undef HAVE_MBSTOWCS_L
+
 /* Define to 1 if you have the `memmove' function. */
 #undef HAVE_MEMMOVE
 
index e6fc482534b306e36ded030bf609a2158ad89f19..b7b7c641d3af10c10c377bfce5f29cd2c138f942 100644 (file)
 #define HAVE_LONG_LONG_INT_64
 #endif
 
+/* Define to 1 if you have the `mbstowcs_l' function. */
+#define HAVE_MBSTOWCS_L 1
+
 /* Define to 1 if you have the `memmove' function. */
 #define HAVE_MEMMOVE 1