Import vsnprintf from libiberty if not available.

vasprintf and vsnprintf are not available on LynxOS, at least not on
version 4.0.0.  This patch updates the configury to import them from
libiberty if not available out of the box.

gdbserver/
        * Makefile.in (vasprintf.o, vsnprintf.o): New rules.
        * configure.ac: Add check for vasprintf and vsnprintf.
        * configure, config.in: Regenerate.
        * server.h (vasprintf, vsnprintf): Add conditional declarations.
This commit is contained in:
Joel Brobecker 2010-09-01 18:56:45 +00:00
parent 0482b03b6a
commit bb0116a433
6 changed files with 65 additions and 6 deletions

View File

@ -1,3 +1,10 @@
2010-09-01 Joel Brobecker <brobecker@adacore.com>
* Makefile.in (vasprintf.o, vsnprintf.o): New rules.
* configure.ac: Add check for vasprintf and vsnprintf.
* configure, config.in: Regenerate.
* server.h (vasprintf, vsnprintf): Add conditional declarations.
2010-09-01 Joel Brobecker <brobecker@adacore.com>
* gdbreplay.c: Move include of alloca.h up, next to include of

View File

@ -357,6 +357,15 @@ signals.o: ../common/signals.c $(server_h) $(signals_def)
memmem.o: ../gnulib/memmem.c
$(CC) -o memmem.o -c $(CPPFLAGS) $(INTERNAL_WARN_CFLAGS) $<
# We build vasprintf with -DHAVE_CONFIG_H because we want that unit to
# include our config.h file. Otherwise, some system headers do not get
# included, and the compiler emits a warning about implicitly defined
# functions (missing declaration).
vasprintf.o: $(srcdir)/../../libiberty/vasprintf.c
$(CC) -o vasprintf.o -c $(CPPFLAGS) $(INTERNAL_CFLAGS) -DHAVE_CONFIG_H $<
vsnprintf.o: $(srcdir)/../../libiberty/vsnprintf.c
$(CC) -o vsnprintf.o -c $(CPPFLAGS) $(INTERNAL_CFLAGS) $<
i386_low_h = $(srcdir)/i386-low.h
i386-low.o: i386-low.c $(i386_low_h) $(server_h) $(target_h)

View File

@ -30,6 +30,14 @@
don't. */
#undef HAVE_DECL_STRERROR
/* 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 `dladdr' function. */
#undef HAVE_DLADDR
@ -172,6 +180,12 @@
/* Define if UST is available */
#undef HAVE_UST
/* Define to 1 if you have the `vasprintf' function. */
#undef HAVE_VASPRINTF
/* Define to 1 if you have the `vsnprintf' function. */
#undef HAVE_VSNPRINTF
/* Checking if errno must be defined */
#undef MUST_DEFINE_ERRNO

View File

@ -4014,12 +4014,14 @@ _ACEOF
fi
done
for ac_func in memmem
for ac_func in memmem vasprintf vsnprintf
do :
ac_fn_c_check_func "$LINENO" "memmem" "ac_cv_func_memmem"
if test "x$ac_cv_func_memmem" = x""yes; then :
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
eval as_val=\$$as_ac_var
if test "x$as_val" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_MEMMEM 1
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
else
@ -4274,6 +4276,26 @@ fi
cat >>confdefs.h <<_ACEOF
#define HAVE_DECL_MEMMEM $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" "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_type "$LINENO" "socklen_t" "ac_cv_type_socklen_t" "#include <sys/types.h>

View File

@ -44,7 +44,7 @@ AC_CHECK_HEADERS(sgtty.h termio.h termios.h sys/reg.h string.h dnl
sys/ioctl.h netinet/in.h sys/socket.h netdb.h dnl
netinet/tcp.h arpa/inet.h sys/wait.h)
AC_CHECK_FUNCS(pread pwrite pread64)
AC_REPLACE_FUNCS(memmem)
AC_REPLACE_FUNCS(memmem vasprintf vsnprintf)
# Check for UST
ustlibs=""
@ -161,7 +161,7 @@ AC_TRY_LINK([
[AC_MSG_RESULT(no)])
fi
AC_CHECK_DECLS([strerror, perror, memmem])
AC_CHECK_DECLS([strerror, perror, memmem, vasprintf, vsnprintf])
AC_CHECK_TYPES(socklen_t, [], [],
[#include <sys/types.h>

View File

@ -63,6 +63,13 @@ extern void perror (const char *);
extern void *memmem (const void *, size_t , const void *, size_t);
#endif
#if !HAVE_DECL_VASPRINTF
extern int vasprintf(char **strp, const char *fmt, va_list ap);
#endif
#if !HAVE_DECL_VSNPRINTF
int vsnprintf(char *str, size_t size, const char *format, va_list ap);
#endif
#ifndef ATTR_NORETURN
#if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 7))
#define ATTR_NORETURN __attribute__ ((noreturn))