From feb593506b9b57e21052a9a7323e8f23faabdde6 Mon Sep 17 00:00:00 2001 From: Thomas Munro Date: Sat, 6 Aug 2022 09:59:45 +1200 Subject: [PATCH] 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. Author: Andres Freund Reviewed-by: Thomas Munro Discussion: https://postgr.es/m/20220804013546.h65najrzig764jar@awork3.anarazel.de --- configure | 47 ------------------------------ configure.ac | 5 ---- src/include/c.h | 29 ------------------ src/include/pg_config.h.in | 26 ----------------- src/interfaces/ecpg/ecpglib/data.c | 5 +--- src/timezone/private.h | 4 --- src/tools/msvc/Solution.pm | 8 ----- 7 files changed, 1 insertion(+), 123 deletions(-) diff --git a/configure b/configure index da28a6bb8b..aa7f55b33a 100755 --- a/configure +++ b/configure @@ -17132,53 +17132,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 fada092cf3..6a9463b5ae 100644 --- a/configure.ac +++ b/configure.ac @@ -1981,11 +1981,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/include/c.h b/src/include/c.h index d35405f191..8c4baeb0ec 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 2a0d08d10f..b584788dc0 100644 --- a/src/include/pg_config.h.in +++ b/src/include/pg_config.h.in @@ -150,14 +150,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 header file. */ #undef HAVE_EDITLINE_HISTORY_H @@ -481,18 +473,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 @@ -688,12 +668,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/src/interfaces/ecpg/ecpglib/data.c b/src/interfaces/ecpg/ecpglib/data.c index a1bba42bb8..bf9b313a11 100644 --- a/src/interfaces/ecpg/ecpglib/data.c +++ b/src/interfaces/ecpg/ecpglib/data.c @@ -438,7 +438,6 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno, } break; -#ifdef HAVE_STRTOLL case ECPGt_long_long: *((long long int *) (var + offset * act_tuple)) = strtoll(pval, &scan_length, 10); if (garbage_left(isarray, &scan_length, compat)) @@ -449,8 +448,7 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno, pval = scan_length; break; -#endif /* HAVE_STRTOLL */ -#ifdef HAVE_STRTOULL + case ECPGt_unsigned_long_long: *((unsigned long long int *) (var + offset * act_tuple)) = strtoull(pval, &scan_length, 10); if (garbage_left(isarray, &scan_length, compat)) @@ -461,7 +459,6 @@ ecpg_get_data(const PGresult *results, int act_tuple, int act_field, int lineno, pval = scan_length; break; -#endif /* HAVE_STRTOULL */ case ECPGt_float: case ECPGt_double: diff --git a/src/timezone/private.h b/src/timezone/private.h index 533e3d9f4e..39d40e43a9 100644 --- a/src/timezone/private.h +++ b/src/timezone/private.h @@ -46,11 +46,7 @@ /* PG doesn't currently rely on , so work around strtoimax() */ #undef strtoimax -#ifdef HAVE_STRTOLL #define strtoimax strtoll -#else -#define strtoimax strtol -#endif /* diff --git a/src/tools/msvc/Solution.pm b/src/tools/msvc/Solution.pm index d7ab6ab258..9fe53bb036 100644 --- a/src/tools/msvc/Solution.pm +++ b/src/tools/msvc/Solution.pm @@ -246,8 +246,6 @@ sub GenerateFiles HAVE_DECL_STRLCAT => 0, HAVE_DECL_STRLCPY => 0, HAVE_DECL_STRNLEN => 1, - HAVE_DECL_STRTOLL => 1, - HAVE_DECL_STRTOULL => 1, HAVE_EDITLINE_HISTORY_H => undef, HAVE_EDITLINE_READLINE_H => undef, HAVE_EXECINFO_H => undef, @@ -354,10 +352,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, @@ -423,8 +417,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,