Bah, looks like I dropped gdb-patches@ by accident, adding it back (patch here: https://gcc.gnu.org/ml/gcc-patches/2015-02/msg00580.html).
For the gcc folks, this is part of this series: https://sourceware.org/ml/gdb-patches/2015-02/msg00202.html Thanks, Pedro Alves On 02/09/2015 11:20 PM, Pedro Alves wrote: > Converting GDB to be a C++ program, I stumbled on 'basename' issues, > like: > > src/gdb/../include/ansidecl.h:169:64: error: new declaration ‘char* > basename(const char*)’ > /usr/include/string.h:597:26: error: ambiguates old declaration ‘const char* > basename(const char*)’ > > which I believe led to this bit in gold's configure.ac: > > dnl We have to check these in C, not C++, because autoconf generates > dnl tests which have no type information, and current glibc provides > dnl multiple declarations of functions like basename when compiling > dnl with C++. > AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, > strverscmp]) > > These checks IIUC intend to generate all the HAVE_DECL_FOO symbols > that libiberty.h and ansidecl.h check. > > GDB is missing these checks currently, which results in the conflict > shown above. > > I could just copy gold's bits over to GDB. But, since libiberty's > ansidecl.h and libiberty.h check HAVE_DECL_XXX symbols, ISTM that all > programs that use these headers should be doing the exact same > corresponding AC_CHECK_DECLS autoconf checks, and that there's good > potential for bit rot here. > > So I thought of adding a m4 file that projects that use libiberty can > source to pull in the autoconf checks that libiberty needs done in > order to use its public headers. > > Turns out that this has already happened. Since I first wrote this a > few months back, libiberty gained more HAVE_DECL_FOO checks even, for > the strtol & friends replacements. > > Are the libiberty changes OK? > > libiberty/ChangeLog: > 2015-02-09 Pedro Alves <pal...@redhat.com> > > * libiberty.m4: New file. > > gdb/ChangeLog: > 2015-02-09 Pedro Alves <pal...@redhat.com> > > * acinclude.m4: Include libiberty.m4. > * config.in, configure: Regenerate. > * configure.ac: Call libiberty_INIT. > > gdb/gdbserver/ > 2015-02-09 Pedro Alves <pal...@redhat.com> > > * acinclude.m4: Include libiberty.m4. > * config.in, configure: Regenerate. > * configure.ac: Call libiberty_INIT. > --- > gdb/acinclude.m4 | 3 + > gdb/config.in | 45 ++++++ > gdb/configure | 266 +++++++++++++++++++++++++++-------- > gdb/configure.ac | 2 + > gdb/gdbserver/acinclude.m4 | 3 + > gdb/gdbserver/config.in | 41 ++++++ > gdb/gdbserver/configure | 338 > +++++++++++++++++++++++++++++++++++++++++++++ > gdb/gdbserver/configure.ac | 2 + > libiberty/libiberty.m4 | 33 +++++ > 9 files changed, 679 insertions(+), 54 deletions(-) > create mode 100644 libiberty/libiberty.m4 > > diff --git a/gdb/acinclude.m4 b/gdb/acinclude.m4 > index 6f71486..ff4aff0 100644 > --- a/gdb/acinclude.m4 > +++ b/gdb/acinclude.m4 > @@ -54,6 +54,9 @@ sinclude([../config/zlib.m4]) > > m4_include([common/common.m4]) > > +dnl For libiberty_INIT. > +m4_include(../libiberty/libiberty.m4) > + > ## ----------------------------------------- ## > ## ANSIfy the C compiler whenever possible. ## > ## From Franc,ois Pinard ## > diff --git a/gdb/config.in b/gdb/config.in > index 806cbac..6a8df15 100644 > --- a/gdb/config.in > +++ b/gdb/config.in > @@ -85,6 +85,17 @@ > you don't. */ > #undef HAVE_DECL_ADDR_NO_RANDOMIZE > > +/* Define to 1 if you have the declaration of `asprintf', and to 0 if you > + don't. */ > +#undef HAVE_DECL_ASPRINTF > + > +/* Define to 1 if you have the declaration of `basename(char *)', and to 0 if > + you don't. */ > +#undef HAVE_DECL_BASENAME > + > +/* Define to 1 if you have the declaration of `ffs', and to 0 if you don't. > */ > +#undef HAVE_DECL_FFS > + > /* Define to 1 if you have the declaration of `free', and to 0 if you don't. > */ > #undef HAVE_DECL_FREE > @@ -117,6 +128,34 @@ > */ > #undef HAVE_DECL_STRSTR > > +/* Define to 1 if you have the declaration of `strtol', and to 0 if you > don't. > + */ > +#undef HAVE_DECL_STRTOL > + > +/* 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 `strtoul', and to 0 if you > + don't. */ > +#undef HAVE_DECL_STRTOUL > + > +/* 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 declaration of `strverscmp', and to 0 if you > + don't. */ > +#undef HAVE_DECL_STRVERSCMP > + > +/* Define to 1 if you have the declaration of `vasprintf', and to 0 if you > + don't. */ > +#undef HAVE_DECL_VASPRINTF > + > +/* Define to 1 if you have the declaration of `vsnprintf', and to 0 if you > + don't. */ > +#undef HAVE_DECL_VSNPRINTF > + > /* Define to 1 if you have the <dlfcn.h> header file. */ > #undef HAVE_DLFCN_H > > @@ -225,6 +264,9 @@ > /* Define to 1 if the compiler supports long double. */ > #undef HAVE_LONG_DOUBLE > > +/* Define if you have the `long long' type. */ > +#undef HAVE_LONG_LONG > + > /* Define if <sys/procfs.h> has lwpid_t. */ > #undef HAVE_LWPID_T > > @@ -635,6 +677,9 @@ > /* The size of `long', as computed by sizeof. */ > #undef SIZEOF_LONG > > +/* The size of `long long', as computed by sizeof. */ > +#undef SIZEOF_LONG_LONG > + > /* The size of `unsigned long', as computed by sizeof. */ > #undef SIZEOF_UNSIGNED_LONG > > diff --git a/gdb/configure b/gdb/configure > index 9632f9a..05e355c 100755 > --- a/gdb/configure > +++ b/gdb/configure > @@ -2184,6 +2184,60 @@ $as_echo "$ac_res" >&6; } > > } # ac_fn_c_check_func > > +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES > +# ------------------------------------------- > +# Tests whether TYPE exists after having included INCLUDES, setting cache > +# variable VAR accordingly. > +ac_fn_c_check_type () > +{ > + as_lineno=${as_lineno-"$1"} > as_lineno_stack=as_lineno_stack=$as_lineno_stack > + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 > +$as_echo_n "checking for $2... " >&6; } > +if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : > + $as_echo_n "(cached) " >&6 > +else > + eval "$3=no" > + cat confdefs.h - <<_ACEOF >conftest.$ac_ext > +/* end confdefs.h. */ > +$4 > +int > +main () > +{ > +if (sizeof ($2)) > + return 0; > + ; > + return 0; > +} > +_ACEOF > +if ac_fn_c_try_compile "$LINENO"; then : > + cat confdefs.h - <<_ACEOF >conftest.$ac_ext > +/* end confdefs.h. */ > +$4 > +int > +main () > +{ > +if (sizeof (($2))) > + return 0; > + ; > + return 0; > +} > +_ACEOF > +if ac_fn_c_try_compile "$LINENO"; then : > + > +else > + eval "$3=yes" > +fi > +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > +fi > +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > +fi > +eval ac_res=\$$3 > + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 > +$as_echo "$ac_res" >&6; } > + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset > as_lineno;} > + > +} # ac_fn_c_check_type > + > # ac_fn_c_check_decl LINENO SYMBOL VAR > # ------------------------------------ > # Tests whether SYMBOL is declared, setting cache variable VAR accordingly. > @@ -2285,60 +2339,6 @@ $as_echo "$ac_res" >&6; } > eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset > as_lineno;} > > } # ac_fn_c_check_member > - > -# ac_fn_c_check_type LINENO TYPE VAR INCLUDES > -# ------------------------------------------- > -# Tests whether TYPE exists after having included INCLUDES, setting cache > -# variable VAR accordingly. > -ac_fn_c_check_type () > -{ > - as_lineno=${as_lineno-"$1"} > as_lineno_stack=as_lineno_stack=$as_lineno_stack > - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 > -$as_echo_n "checking for $2... " >&6; } > -if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : > - $as_echo_n "(cached) " >&6 > -else > - eval "$3=no" > - cat confdefs.h - <<_ACEOF >conftest.$ac_ext > -/* end confdefs.h. */ > -$4 > -int > -main () > -{ > -if (sizeof ($2)) > - return 0; > - ; > - return 0; > -} > -_ACEOF > -if ac_fn_c_try_compile "$LINENO"; then : > - cat confdefs.h - <<_ACEOF >conftest.$ac_ext > -/* end confdefs.h. */ > -$4 > -int > -main () > -{ > -if (sizeof (($2))) > - return 0; > - ; > - return 0; > -} > -_ACEOF > -if ac_fn_c_try_compile "$LINENO"; then : > - > -else > - eval "$3=yes" > -fi > -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > -fi > -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > -fi > -eval ac_res=\$$3 > - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 > -$as_echo "$ac_res" >&6; } > - eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset > as_lineno;} > - > -} # ac_fn_c_check_type > cat >config.log <<_ACEOF > This file contains any messages produced by compilers while > running configure, to aid debugging if configure makes a mistake. > @@ -9584,6 +9584,164 @@ done > # Checks for declarations. # > # ------------------------- # > > + > + # Check for presence of long long. > + ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" > "$ac_includes_default" > +if test "x$ac_cv_type_long_long" = x""yes; then : > + > +$as_echo "#define HAVE_LONG_LONG 1" >>confdefs.h > + # The cast to long int works around a bug in the HP C Compiler > +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects > +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. > +# This bug is HP SR number 8606223364. > +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 > +$as_echo_n "checking size of long long... " >&6; } > +if test "${ac_cv_sizeof_long_long+set}" = set; then : > + $as_echo_n "(cached) " >&6 > +else > + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" > "ac_cv_sizeof_long_long" "$ac_includes_default"; then : > + > +else > + if test "$ac_cv_type_long_long" = yes; then > + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 > +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} > +{ as_fn_set_status 77 > +as_fn_error "cannot compute sizeof (long long) > +See \`config.log' for more details." "$LINENO" 5; }; } > + else > + ac_cv_sizeof_long_long=0 > + fi > +fi > + > +fi > +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 > +$as_echo "$ac_cv_sizeof_long_long" >&6; } > + > + > + > +cat >>confdefs.h <<_ACEOF > +#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long > +_ACEOF > + > + > +fi > + > + > + ac_fn_c_check_decl "$LINENO" "basename(char *)" > "ac_cv_have_decl_basename_char_p_" "$ac_includes_default" > +if test "x$ac_cv_have_decl_basename_char_p_" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_BASENAME $ac_have_decl > +_ACEOF > +ac_fn_c_check_decl "$LINENO" "ffs" "ac_cv_have_decl_ffs" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_ffs" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_FFS $ac_have_decl > +_ACEOF > +ac_fn_c_check_decl "$LINENO" "asprintf" "ac_cv_have_decl_asprintf" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_asprintf" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_ASPRINTF $ac_have_decl > +_ACEOF > +ac_fn_c_check_decl "$LINENO" "vasprintf" "ac_cv_have_decl_vasprintf" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_vasprintf" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_VASPRINTF $ac_have_decl > +_ACEOF > +ac_fn_c_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_snprintf" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_SNPRINTF $ac_have_decl > +_ACEOF > +ac_fn_c_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_vsnprintf" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_VSNPRINTF $ac_have_decl > +_ACEOF > + > + ac_fn_c_check_decl "$LINENO" "strtol" "ac_cv_have_decl_strtol" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_strtol" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_STRTOL $ac_have_decl > +_ACEOF > +ac_fn_c_check_decl "$LINENO" "strtoul" "ac_cv_have_decl_strtoul" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_strtoul" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_STRTOUL $ac_have_decl > +_ACEOF > +ac_fn_c_check_decl "$LINENO" "strtoll" "ac_cv_have_decl_strtoll" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_strtoll" = x""yes; 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" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_STRTOULL $ac_have_decl > +_ACEOF > + > + ac_fn_c_check_decl "$LINENO" "strverscmp" "ac_cv_have_decl_strverscmp" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_strverscmp" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_STRVERSCMP $ac_have_decl > +_ACEOF > + > + > + > ac_fn_c_check_decl "$LINENO" "free" "ac_cv_have_decl_free" > "$ac_includes_default" > if test "x$ac_cv_have_decl_free" = x""yes; then : > ac_have_decl=1 > diff --git a/gdb/configure.ac b/gdb/configure.ac > index dfc6947..920e580 100644 > --- a/gdb/configure.ac > +++ b/gdb/configure.ac > @@ -1283,6 +1283,8 @@ AC_CHECK_HEADERS(term.h, [], [], > # Checks for declarations. # > # ------------------------- # > > +libiberty_INIT > + > AC_CHECK_DECLS([free, malloc, realloc, snprintf]) > AM_LC_MESSAGES > > diff --git a/gdb/gdbserver/acinclude.m4 b/gdb/gdbserver/acinclude.m4 > index 744871a..ba4a21f 100644 > --- a/gdb/gdbserver/acinclude.m4 > +++ b/gdb/gdbserver/acinclude.m4 > @@ -20,6 +20,9 @@ dnl anything else in gdbserver. > m4_include(../../config/codeset.m4) > m4_include(../common/common.m4) > > +dnl For libiberty_INIT. > +m4_include(../../libiberty/libiberty.m4) > + > dnl Check for existence of a type $1 in libthread_db.h > dnl Based on BFD_HAVE_SYS_PROCFS_TYPE in bfd/bfd.m4. > > diff --git a/gdb/gdbserver/config.in b/gdb/gdbserver/config.in > index 8f68ed2..cf8e59d 100644 > --- a/gdb/gdbserver/config.in > +++ b/gdb/gdbserver/config.in > @@ -22,10 +22,25 @@ > you don't. */ > #undef HAVE_DECL_ADDR_NO_RANDOMIZE > > +/* Define to 1 if you have the declaration of `asprintf', and to 0 if you > + don't. */ > +#undef HAVE_DECL_ASPRINTF > + > +/* Define to 1 if you have the declaration of `basename(char *)', and to 0 if > + you don't. */ > +#undef HAVE_DECL_BASENAME > + > +/* Define to 1 if you have the declaration of `ffs', and to 0 if you don't. > */ > +#undef HAVE_DECL_FFS > + > /* Define to 1 if you have the declaration of `perror', and to 0 if you > don't. > */ > #undef HAVE_DECL_PERROR > > +/* Define to 1 if you have the declaration of `snprintf', and to 0 if you > + don't. */ > +#undef HAVE_DECL_SNPRINTF > + > /* Define to 1 if you have the declaration of `strerror', and to 0 if you > don't. */ > #undef HAVE_DECL_STRERROR > @@ -34,6 +49,26 @@ > */ > #undef HAVE_DECL_STRSTR > > +/* Define to 1 if you have the declaration of `strtol', and to 0 if you > don't. > + */ > +#undef HAVE_DECL_STRTOL > + > +/* 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 `strtoul', and to 0 if you > + don't. */ > +#undef HAVE_DECL_STRTOUL > + > +/* 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 declaration of `strverscmp', and to 0 if you > + don't. */ > +#undef HAVE_DECL_STRVERSCMP > + > /* Define to 1 if you have the declaration of `vasprintf', and to 0 if you > don't. */ > #undef HAVE_DECL_VASPRINTF > @@ -96,6 +131,9 @@ > /* Define to 1 if you have the <locale.h> header file. */ > #undef HAVE_LOCALE_H > > +/* Define if you have the `long long' type. */ > +#undef HAVE_LONG_LONG > + > /* Define if <thread_db.h> has lwpid_t. */ > #undef HAVE_LWPID_T > > @@ -253,6 +291,9 @@ > /* Bug reporting address */ > #undef REPORT_BUGS_TO > > +/* The size of `long long', as computed by sizeof. */ > +#undef SIZEOF_LONG_LONG > + > /* If using the C implementation of alloca, define if you know the > direction of stack growth for your system; otherwise it will be > automatically deduced at runtime. > diff --git a/gdb/gdbserver/configure b/gdb/gdbserver/configure > index 2240b78..5623746 100755 > --- a/gdb/gdbserver/configure > +++ b/gdb/gdbserver/configure > @@ -1882,6 +1882,184 @@ $as_echo "$ac_res" >&6; } > eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset > as_lineno;} > > } # ac_fn_c_check_type > + > +# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES > +# -------------------------------------------- > +# Tries to find the compile-time value of EXPR in a program that includes > +# INCLUDES, setting VAR accordingly. Returns whether the value could be > +# computed > +ac_fn_c_compute_int () > +{ > + as_lineno=${as_lineno-"$1"} > as_lineno_stack=as_lineno_stack=$as_lineno_stack > + if test "$cross_compiling" = yes; then > + # Depending upon the size, compute the lo and hi bounds. > +cat confdefs.h - <<_ACEOF >conftest.$ac_ext > +/* end confdefs.h. */ > +$4 > +int > +main () > +{ > +static int test_array [1 - 2 * !(($2) >= 0)]; > +test_array [0] = 0 > + > + ; > + return 0; > +} > +_ACEOF > +if ac_fn_c_try_compile "$LINENO"; then : > + ac_lo=0 ac_mid=0 > + while :; do > + cat confdefs.h - <<_ACEOF >conftest.$ac_ext > +/* end confdefs.h. */ > +$4 > +int > +main () > +{ > +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; > +test_array [0] = 0 > + > + ; > + return 0; > +} > +_ACEOF > +if ac_fn_c_try_compile "$LINENO"; then : > + ac_hi=$ac_mid; break > +else > + as_fn_arith $ac_mid + 1 && ac_lo=$as_val > + if test $ac_lo -le $ac_mid; then > + ac_lo= ac_hi= > + break > + fi > + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val > +fi > +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > + done > +else > + cat confdefs.h - <<_ACEOF >conftest.$ac_ext > +/* end confdefs.h. */ > +$4 > +int > +main () > +{ > +static int test_array [1 - 2 * !(($2) < 0)]; > +test_array [0] = 0 > + > + ; > + return 0; > +} > +_ACEOF > +if ac_fn_c_try_compile "$LINENO"; then : > + ac_hi=-1 ac_mid=-1 > + while :; do > + cat confdefs.h - <<_ACEOF >conftest.$ac_ext > +/* end confdefs.h. */ > +$4 > +int > +main () > +{ > +static int test_array [1 - 2 * !(($2) >= $ac_mid)]; > +test_array [0] = 0 > + > + ; > + return 0; > +} > +_ACEOF > +if ac_fn_c_try_compile "$LINENO"; then : > + ac_lo=$ac_mid; break > +else > + as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val > + if test $ac_mid -le $ac_hi; then > + ac_lo= ac_hi= > + break > + fi > + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val > +fi > +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > + done > +else > + ac_lo= ac_hi= > +fi > +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > +fi > +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > +# Binary search between lo and hi bounds. > +while test "x$ac_lo" != "x$ac_hi"; do > + as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val > + cat confdefs.h - <<_ACEOF >conftest.$ac_ext > +/* end confdefs.h. */ > +$4 > +int > +main () > +{ > +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; > +test_array [0] = 0 > + > + ; > + return 0; > +} > +_ACEOF > +if ac_fn_c_try_compile "$LINENO"; then : > + ac_hi=$ac_mid > +else > + as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val > +fi > +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext > +done > +case $ac_lo in #(( > +?*) eval "$3=\$ac_lo"; ac_retval=0 ;; > +'') ac_retval=1 ;; > +esac > + else > + cat confdefs.h - <<_ACEOF >conftest.$ac_ext > +/* end confdefs.h. */ > +$4 > +static long int longval () { return $2; } > +static unsigned long int ulongval () { return $2; } > +#include <stdio.h> > +#include <stdlib.h> > +int > +main () > +{ > + > + FILE *f = fopen ("conftest.val", "w"); > + if (! f) > + return 1; > + if (($2) < 0) > + { > + long int i = longval (); > + if (i != ($2)) > + return 1; > + fprintf (f, "%ld", i); > + } > + else > + { > + unsigned long int i = ulongval (); > + if (i != ($2)) > + return 1; > + fprintf (f, "%lu", i); > + } > + /* Do not output a trailing newline, as this causes \r\n confusion > + on some platforms. */ > + return ferror (f) || fclose (f) != 0; > + > + ; > + return 0; > +} > +_ACEOF > +if ac_fn_c_try_run "$LINENO"; then : > + echo >>conftest.val; read $3 <conftest.val; ac_retval=0 > +else > + ac_retval=1 > +fi > +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ > + conftest.$ac_objext conftest.beam conftest.$ac_ext > +rm -f conftest.val > + > + fi > + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset > as_lineno;} > + return $ac_retval > + > +} # ac_fn_c_compute_int > cat >config.log <<_ACEOF > This file contains any messages produced by compilers while > running configure, to aid debugging if configure makes a mistake. > @@ -5338,6 +5516,166 @@ done > > LIBS="$old_LIBS" > > + > + > + # Check for presense of long long > + ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" > "$ac_includes_default" > +if test "x$ac_cv_type_long_long" = x""yes; then : > + > +$as_echo "#define HAVE_LONG_LONG 1" >>confdefs.h > + # The cast to long int works around a bug in the HP C Compiler > +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects > +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. > +# This bug is HP SR number 8606223364. > +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 > +$as_echo_n "checking size of long long... " >&6; } > +if test "${ac_cv_sizeof_long_long+set}" = set; then : > + $as_echo_n "(cached) " >&6 > +else > + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" > "ac_cv_sizeof_long_long" "$ac_includes_default"; then : > + > +else > + if test "$ac_cv_type_long_long" = yes; then > + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 > +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} > +{ as_fn_set_status 77 > +as_fn_error "cannot compute sizeof (long long) > +See \`config.log' for more details." "$LINENO" 5; }; } > + else > + ac_cv_sizeof_long_long=0 > + fi > +fi > + > +fi > +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 > +$as_echo "$ac_cv_sizeof_long_long" >&6; } > + > + > + > +cat >>confdefs.h <<_ACEOF > +#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long > +_ACEOF > + > + > +fi > + > + > + ac_fn_c_check_decl "$LINENO" "basename(char *)" > "ac_cv_have_decl_basename_char_p_" "$ac_includes_default" > +if test "x$ac_cv_have_decl_basename_char_p_" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_BASENAME $ac_have_decl > +_ACEOF > +ac_fn_c_check_decl "$LINENO" "ffs" "ac_cv_have_decl_ffs" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_ffs" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_FFS $ac_have_decl > +_ACEOF > +ac_fn_c_check_decl "$LINENO" "asprintf" "ac_cv_have_decl_asprintf" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_asprintf" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_ASPRINTF $ac_have_decl > +_ACEOF > +ac_fn_c_check_decl "$LINENO" "vasprintf" "ac_cv_have_decl_vasprintf" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_vasprintf" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_VASPRINTF $ac_have_decl > +_ACEOF > +ac_fn_c_check_decl "$LINENO" "snprintf" "ac_cv_have_decl_snprintf" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_snprintf" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_SNPRINTF $ac_have_decl > +_ACEOF > +ac_fn_c_check_decl "$LINENO" "vsnprintf" "ac_cv_have_decl_vsnprintf" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_vsnprintf" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_VSNPRINTF $ac_have_decl > +_ACEOF > + > + ac_fn_c_check_decl "$LINENO" "strtol" "ac_cv_have_decl_strtol" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_strtol" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_STRTOL $ac_have_decl > +_ACEOF > +ac_fn_c_check_decl "$LINENO" "strtoul" "ac_cv_have_decl_strtoul" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_strtoul" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_STRTOUL $ac_have_decl > +_ACEOF > +ac_fn_c_check_decl "$LINENO" "strtoll" "ac_cv_have_decl_strtoll" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_strtoll" = x""yes; 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" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_STRTOULL $ac_have_decl > +_ACEOF > + > + ac_fn_c_check_decl "$LINENO" "strverscmp" "ac_cv_have_decl_strverscmp" > "$ac_includes_default" > +if test "x$ac_cv_have_decl_strverscmp" = x""yes; then : > + ac_have_decl=1 > +else > + ac_have_decl=0 > +fi > + > +cat >>confdefs.h <<_ACEOF > +#define HAVE_DECL_STRVERSCMP $ac_have_decl > +_ACEOF > + > + > + > + > ac_fn_c_check_decl "$LINENO" "strerror" "ac_cv_have_decl_strerror" > "$ac_includes_default" > if test "x$ac_cv_have_decl_strerror" = x""yes; then : > ac_have_decl=1 > diff --git a/gdb/gdbserver/configure.ac b/gdb/gdbserver/configure.ac > index f883adc..60636f7 100644 > --- a/gdb/gdbserver/configure.ac > +++ b/gdb/gdbserver/configure.ac > @@ -193,6 +193,8 @@ LIBS="$LIBS -ldl" > AC_CHECK_FUNCS(dladdr) > LIBS="$old_LIBS" > > +libiberty_INIT > + > AC_CHECK_DECLS([strerror, perror, vasprintf, vsnprintf]) > > AC_CHECK_TYPES(socklen_t, [], [], > diff --git a/libiberty/libiberty.m4 b/libiberty/libiberty.m4 > new file mode 100644 > index 0000000..6d9fd05 > --- /dev/null > +++ b/libiberty/libiberty.m4 > @@ -0,0 +1,33 @@ > +dnl Bits libiberty clients must do on their autoconf step. > +dnl > +dnl Copyright (C) 2012-2015 Free Software Foundation, Inc. > +dnl > +dnl This file is free software; you can redistribute it and/or modify > +dnl it under the terms of the GNU General Public License as published by > +dnl the Free Software Foundation; either version 3 of the License, or > +dnl (at your option) any later version. > +dnl > +dnl This program is distributed in the hope that it will be useful, > +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of > +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +dnl GNU General Public License for more details. > +dnl > +dnl You should have received a copy of the GNU General Public License > +dnl along with this program; see the file COPYING3. If not see > +dnl <http://www.gnu.org/licenses/>. > +dnl > + > +dnl Checks for declarations ansidecl.h and libiberty.h themselves > +dnl check with HAVE_DECL_XXX, etc. > + > +AC_DEFUN([libiberty_INIT], > +[ > + # Check for presence of long long. > + AC_CHECK_TYPE([long long], > + [AC_DEFINE(HAVE_LONG_LONG, 1, [Define if you have the `long long' > type.]) AC_CHECK_SIZEOF([long long])], > + []) > + > + AC_CHECK_DECLS([basename(char *), ffs, asprintf, vasprintf, snprintf, > vsnprintf]) > + AC_CHECK_DECLS([strtol, strtoul, strtoll, strtoull]) > + AC_CHECK_DECLS([strverscmp]) > +]) >