X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=m4%2Fxstrtoimax.m4;h=438e8528d7756d555b1f7d1fb6475dc183b4e7f1;hb=15abf5c4d987896957891ef78b14e0694b44fdb8;hp=6842186e92d12fb9afb759caa8f9ffcd15540210;hpb=3c55a24e883767bc07b2c0ce074a1bd30a96ca52;p=chaz%2Ftar diff --git a/m4/xstrtoimax.m4 b/m4/xstrtoimax.m4 index 6842186..438e852 100644 --- a/m4/xstrtoimax.m4 +++ b/m4/xstrtoimax.m4 @@ -1,4 +1,4 @@ -#serial 1 +#serial 2 dnl Cloned from xstrtoumax.m4. Keep these files in sync. # autoconf tests required for use of xstrtoimax.c @@ -6,10 +6,11 @@ dnl Cloned from xstrtoumax.m4. Keep these files in sync. AC_DEFUN([jm_AC_PREREQ_XSTRTOIMAX], [ AC_REQUIRE([jm_AC_TYPE_INTMAX_T]) - AC_REQUIRE([jm_AC_HEADER_INTTYPES_H]) + AC_REQUIRE([jm_AC_TYPE_UINTMAX_T]) AC_REQUIRE([jm_AC_TYPE_LONG_LONG]) - AC_CHECK_DECLS([strtol, strtoll]) - AC_CHECK_HEADERS(limits.h stdlib.h) + AC_REQUIRE([jm_AC_TYPE_UNSIGNED_LONG_LONG]) + AC_CHECK_DECLS([strtol, strtoul, strtoll, strtoimax, strtoumax]) + AC_CHECK_HEADERS(limits.h stdlib.h inttypes.h) AC_CACHE_CHECK([whether defines strtoimax as a macro], jm_cv_func_strtoimax_macro, @@ -24,27 +25,17 @@ AC_DEFUN([jm_AC_PREREQ_XSTRTOIMAX], AC_REPLACE_FUNCS(strtoimax) fi - dnl We don't need (and can't compile) the replacement strtoll - dnl unless the type `long long' exists. - dnl Also, only the replacement strtoimax invokes strtoll, - dnl so we need the replacement strtoll only if strtoimax does not exist. - case "$ac_cv_type_long_long,$jm_cv_func_strtoimax_macro,$ac_cv_func_strtoimax" in - yes,no,no) - AC_REPLACE_FUNCS(strtoll) - - dnl Check for strtol. Mainly as a cue to cause automake to include - dnl strtol.c -- that file is included by each of strtoul.c and strtoull.c. - AC_REPLACE_FUNCS(strtol) - ;; - esac - + dnl Only the replacement strtoimax invokes strtol and strtoll, + dnl so we need the replacements only if strtoimax does not exist. case "$jm_cv_func_strtoimax_macro,$ac_cv_func_strtoimax" in no,no) - AC_REPLACE_FUNCS(strtoul) - - dnl See explanation above. AC_REPLACE_FUNCS(strtol) + + dnl We don't need (and can't compile) the replacement strtoll + dnl unless the type `long long' exists. + if test "$ac_cv_type_long_long" = yes; then + AC_REPLACE_FUNCS(strtoll) + fi ;; esac - ])