Remove configure check for _configthreadlocale().

All modern Windows systems have _configthreadlocale().  It was first
introduced in msvcr80.dll from Visual Studio 2005.  Historically, MinGW
was stuck on even older msvcrt.dll, but added its own dummy
implementation of the function when using msvcrt.dll years ago anyway,
effectively rendering the configure test useless.  In practice we don't
encounter the dummy anymore because modern MinGW uses ucrt.

Reviewed-by: Peter Eisentraut <peter@eisentraut.org>
Discussion: https://postgr.es/m/CWZBBRR6YA8D.8EHMDRGLCKCD%40neon.tech
pull/185/head
Thomas Munro 7 months ago
parent 63e10988f8
commit f1da075d9a
  1. 11
      configure
  2. 1
      configure.ac
  3. 1
      meson.build
  4. 3
      src/include/pg_config.h.in
  5. 4
      src/interfaces/ecpg/ecpglib/descriptor.c
  6. 2
      src/interfaces/ecpg/ecpglib/ecpglib_extern.h
  7. 4
      src/interfaces/ecpg/ecpglib/execute.c

11
configure vendored

@ -15821,17 +15821,6 @@ fi
# Win32 (really MinGW) support
if test "$PORTNAME" = "win32"; then
for ac_func in _configthreadlocale
do :
ac_fn_c_check_func "$LINENO" "_configthreadlocale" "ac_cv_func__configthreadlocale"
if test "x$ac_cv_func__configthreadlocale" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE__CONFIGTHREADLOCALE 1
_ACEOF
fi
done
case " $LIBOBJS " in
*" dirmod.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS dirmod.$ac_objext"

@ -1820,7 +1820,6 @@ fi
# Win32 (really MinGW) support
if test "$PORTNAME" = "win32"; then
AC_CHECK_FUNCS(_configthreadlocale)
AC_LIBOBJ(dirmod)
AC_LIBOBJ(kill)
AC_LIBOBJ(open)

@ -2617,7 +2617,6 @@ endif
# XXX: Might be worth conditioning some checks on the OS, to avoid doing
# unnecessary checks over and over, particularly on windows.
func_checks = [
['_configthreadlocale', {'skip': host_system != 'windows'}],
['backtrace_symbols', {'dependencies': [execinfo_dep]}],
['clock_gettime', {'dependencies': [rt_dep], 'define': false}],
['copyfile'],

@ -529,9 +529,6 @@
/* Define to 1 if your compiler understands __builtin_unreachable. */
#undef HAVE__BUILTIN_UNREACHABLE
/* Define to 1 if you have the `_configthreadlocale' function. */
#undef HAVE__CONFIGTHREADLOCALE
/* Define to 1 if you have __cpuid. */
#undef HAVE__CPUID

@ -490,7 +490,7 @@ ECPGget_desc(int lineno, const char *desc_name, int index,...)
Assert(ecpg_clocale);
stmt.oldlocale = uselocale(ecpg_clocale);
#else
#ifdef HAVE__CONFIGTHREADLOCALE
#ifdef WIN32
stmt.oldthreadlocale = _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
#endif
stmt.oldlocale = ecpg_strdup(setlocale(LC_NUMERIC, NULL), lineno);
@ -510,7 +510,7 @@ ECPGget_desc(int lineno, const char *desc_name, int index,...)
setlocale(LC_NUMERIC, stmt.oldlocale);
ecpg_free(stmt.oldlocale);
}
#ifdef HAVE__CONFIGTHREADLOCALE
#ifdef WIN32
if (stmt.oldthreadlocale != -1)
(void) _configthreadlocale(stmt.oldthreadlocale);
#endif

@ -77,7 +77,7 @@ struct statement
locale_t oldlocale;
#else
char *oldlocale;
#ifdef HAVE__CONFIGTHREADLOCALE
#ifdef WIN32
int oldthreadlocale;
#endif
#endif

@ -1995,7 +1995,7 @@ ecpg_do_prologue(int lineno, const int compat, const int force_indicator,
return false;
}
#else
#ifdef HAVE__CONFIGTHREADLOCALE
#ifdef WIN32
stmt->oldthreadlocale = _configthreadlocale(_ENABLE_PER_THREAD_LOCALE);
#endif
stmt->oldlocale = ecpg_strdup(setlocale(LC_NUMERIC, NULL), lineno);
@ -2219,7 +2219,7 @@ ecpg_do_epilogue(struct statement *stmt)
#else
if (stmt->oldlocale)
setlocale(LC_NUMERIC, stmt->oldlocale);
#ifdef HAVE__CONFIGTHREADLOCALE
#ifdef WIN32
/*
* This is a bit trickier than it looks: if we failed partway through

Loading…
Cancel
Save