Hi, On 2022-08-03 21:52:04 -0400, Tom Lane wrote: > Andres Freund <and...@anarazel.de> writes: > > Another potential cleanup is the fallback for strtoll/strtoull. > > +1, I suspect the alternate spellings are dead.
Looks like that includes systems where there's no declaration for strtoll, strtoull. The test was introduced in commit a6228128fc48c222953dfd41fd438522a184054c Author: Tom Lane <t...@sss.pgh.pa.us> Date: 2018-05-18 22:42:10 -0400 Arrange to supply declarations for strtoll/strtoull if needed. The check was introduced for animal dromedary, afaics. Looks like that stopped reporting 2019-09-27 and transformed into florican. A query on the bf database didn't see any runs in the last 30 days that didn't have strtoll declared. See attached patch. Greetings, Andres Freund
>From 971cd9491f27b52b982b0a9735bc0e678805e14b Mon Sep 17 00:00:00 2001 From: Andres Freund <and...@anarazel.de> Date: Wed, 3 Aug 2022 19:21:56 -0700 Subject: [PATCH v1] Remove fallbacks for strtoll, strtoull strtoll was backfilled with either __strtoll or strtoq on systems without strtoll. The last such system on the buildfarm was an ancient HP-UX animal. We don't support HP-UX anymore, so remove. On other systems strtoll was present, but did not have a declaration. The last known instance on the buildfarm was running an ancient OSX and shut down in 2019. Discussion: https://postgr.es/m/20220804013546.h65najrzig764...@awork3.anarazel.de --- src/include/c.h | 29 ----------------------- src/include/pg_config.h.in | 26 --------------------- configure | 47 -------------------------------------- configure.ac | 5 ---- src/tools/msvc/Solution.pm | 8 ------- 5 files changed, 115 deletions(-) diff --git a/src/include/c.h b/src/include/c.h index d35405f191a..8c4baeb0ec3 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -1294,35 +1294,6 @@ typedef union PGAlignedXLogBlock extern int fdatasync(int fildes); #endif -/* Older platforms may provide strto[u]ll functionality under other names */ -#if !defined(HAVE_STRTOLL) && defined(HAVE___STRTOLL) -#define strtoll __strtoll -#define HAVE_STRTOLL 1 -#endif - -#if !defined(HAVE_STRTOLL) && defined(HAVE_STRTOQ) -#define strtoll strtoq -#define HAVE_STRTOLL 1 -#endif - -#if !defined(HAVE_STRTOULL) && defined(HAVE___STRTOULL) -#define strtoull __strtoull -#define HAVE_STRTOULL 1 -#endif - -#if !defined(HAVE_STRTOULL) && defined(HAVE_STRTOUQ) -#define strtoull strtouq -#define HAVE_STRTOULL 1 -#endif - -#if defined(HAVE_STRTOLL) && !HAVE_DECL_STRTOLL -extern long long strtoll(const char *str, char **endptr, int base); -#endif - -#if defined(HAVE_STRTOULL) && !HAVE_DECL_STRTOULL -extern unsigned long long strtoull(const char *str, char **endptr, int base); -#endif - /* * Thin wrappers that convert strings to exactly 64-bit integers, matching our * definition of int64. (For the naming, compare that POSIX has diff --git a/src/include/pg_config.h.in b/src/include/pg_config.h.in index f9618e19863..00abe62f5c6 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -161,14 +161,6 @@ don't. */ #undef HAVE_DECL_STRNLEN -/* Define to 1 if you have the declaration of `strtoll', and to 0 if you - don't. */ -#undef HAVE_DECL_STRTOLL - -/* Define to 1 if you have the declaration of `strtoull', and to 0 if you - don't. */ -#undef HAVE_DECL_STRTOULL - /* Define to 1 if you have the `dlopen' function. */ #undef HAVE_DLOPEN @@ -531,18 +523,6 @@ /* Define to 1 if you have the `strtof' function. */ #undef HAVE_STRTOF -/* Define to 1 if you have the `strtoll' function. */ -#undef HAVE_STRTOLL - -/* Define to 1 if you have the `strtoq' function. */ -#undef HAVE_STRTOQ - -/* Define to 1 if you have the `strtoull' function. */ -#undef HAVE_STRTOULL - -/* Define to 1 if you have the `strtouq' function. */ -#undef HAVE_STRTOUQ - /* Define to 1 if the system has the type `struct addrinfo'. */ #undef HAVE_STRUCT_ADDRINFO @@ -747,12 +727,6 @@ /* Define to 1 if your compiler understands _Static_assert. */ #undef HAVE__STATIC_ASSERT -/* Define to 1 if you have the `__strtoll' function. */ -#undef HAVE___STRTOLL - -/* Define to 1 if you have the `__strtoull' function. */ -#undef HAVE___STRTOULL - /* Define to the appropriate printf length modifier for 64-bit ints. */ #undef INT64_MODIFIER diff --git a/configure b/configure index c5bc3823958..b9add9022b8 100755 --- a/configure +++ b/configure @@ -17230,53 +17230,6 @@ $as_echo "#define HAVE_INT_OPTRESET 1" >>confdefs.h fi -for ac_func in strtoll __strtoll strtoq -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - break -fi -done - -for ac_func in strtoull __strtoull strtouq -do : - as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` -ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" -if eval test \"x\$"$as_ac_var"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 -_ACEOF - break -fi -done - -# strto[u]ll may exist but not be declared -ac_fn_c_check_decl "$LINENO" "strtoll" "ac_cv_have_decl_strtoll" "$ac_includes_default" -if test "x$ac_cv_have_decl_strtoll" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRTOLL $ac_have_decl -_ACEOF -ac_fn_c_check_decl "$LINENO" "strtoull" "ac_cv_have_decl_strtoull" "$ac_includes_default" -if test "x$ac_cv_have_decl_strtoull" = xyes; then : - ac_have_decl=1 -else - ac_have_decl=0 -fi - -cat >>confdefs.h <<_ACEOF -#define HAVE_DECL_STRTOULL $ac_have_decl -_ACEOF - - if test "$with_icu" = yes; then ac_save_CPPFLAGS=$CPPFLAGS CPPFLAGS="$ICU_CFLAGS $CPPFLAGS" diff --git a/configure.ac b/configure.ac index 61d0dd5d586..982f218b30f 100644 --- a/configure.ac +++ b/configure.ac @@ -2009,11 +2009,6 @@ if test x"$pgac_cv_var_int_optreset" = x"yes"; then AC_DEFINE(HAVE_INT_OPTRESET, 1, [Define to 1 if you have the global variable 'int optreset'.]) fi -AC_CHECK_FUNCS([strtoll __strtoll strtoq], [break]) -AC_CHECK_FUNCS([strtoull __strtoull strtouq], [break]) -# strto[u]ll may exist but not be declared -AC_CHECK_DECLS([strtoll, strtoull]) - if test "$with_icu" = yes; then ac_save_CPPFLAGS=$CPPFLAGS CPPFLAGS="$ICU_CFLAGS $CPPFLAGS" diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index b09872e018d..5b420ce4efd 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -249,8 +249,6 @@ sub GenerateFiles HAVE_DECL_STRLCAT => 0, HAVE_DECL_STRLCPY => 0, HAVE_DECL_STRNLEN => 1, - HAVE_DECL_STRTOLL => 1, - HAVE_DECL_STRTOULL => 1, HAVE_DLOPEN => undef, HAVE_EDITLINE_HISTORY_H => undef, HAVE_EDITLINE_READLINE_H => undef, @@ -370,10 +368,6 @@ sub GenerateFiles HAVE_STRNLEN => 1, HAVE_STRSIGNAL => undef, HAVE_STRTOF => 1, - HAVE_STRTOLL => 1, - HAVE_STRTOQ => undef, - HAVE_STRTOULL => 1, - HAVE_STRTOUQ => undef, HAVE_STRUCT_ADDRINFO => 1, HAVE_STRUCT_CMSGCRED => undef, HAVE_STRUCT_OPTION => undef, @@ -442,8 +436,6 @@ sub GenerateFiles HAVE__CPUID => 1, HAVE__GET_CPUID => undef, HAVE__STATIC_ASSERT => undef, - HAVE___STRTOLL => undef, - HAVE___STRTOULL => undef, INT64_MODIFIER => qq{"ll"}, LOCALE_T_IN_XLOCALE => undef, MAXIMUM_ALIGNOF => 8, -- 2.37.0.3.g30cc8d0f14