diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2006-02-09 11:54:15 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@libertysurf.fr> | 2006-02-09 11:54:15 +0000 |
commit | 6d74f28b36e29b8708881b60e2e6505047813b0b (patch) | |
tree | 4db3c41358a8c93a979bafdf6c33662d21f64d40 /gas | |
parent | db50c8404c624dfe903294d439c54a6db7c6d6c8 (diff) | |
download | gdb-6d74f28b36e29b8708881b60e2e6505047813b0b.zip gdb-6d74f28b36e29b8708881b60e2e6505047813b0b.tar.gz gdb-6d74f28b36e29b8708881b60e2e6505047813b0b.tar.bz2 |
2006-02-09 Eric Botcazou <ebotcazou@libertysurf.fr>
* configure.in (CHECK_DECLS): Add vsnprintf.
* configure: Regenerate.
* messages.c (errno.h, stdarg.h, varargs.h, va_list):
Do not include/declare here, but...
* as.h: Move code detecting VARARGS idiom to the top.
(errno.h, stdarg.h, varargs.h, va_list): ...here.
(vsnprintf): Declare if not already declared.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/as.h | 51 | ||||
-rwxr-xr-x | gas/configure | 73 | ||||
-rw-r--r-- | gas/configure.in | 2 | ||||
-rw-r--r-- | gas/messages.c | 22 |
4 files changed, 113 insertions, 35 deletions
@@ -68,6 +68,19 @@ extern void *alloca (); # endif /* HAVE_ALLOCA_H */ #endif /* __GNUC__ */ +/* Prefer varargs for non-ANSI compiler, since some will barf if the + ellipsis definition is used with a no-arguments declaration. */ +#if defined (HAVE_VARARGS_H) && !defined (__STDC__) +#undef HAVE_STDARG_H +#endif + +#if defined (HAVE_STDARG_H) +#define USE_STDARG +#endif +#if !defined (USE_STDARG) && defined (HAVE_VARARGS_H) +#define USE_VARARGS +#endif + /* Now, tend to the rest of the configuration. */ /* System include files first... */ @@ -90,6 +103,27 @@ extern void *alloca (); #include <sys/types.h> #endif +#ifdef HAVE_ERRNO_H +#include <errno.h> +#endif + +#ifdef USE_STDARG +#include <stdarg.h> +#endif + +#ifdef USE_VARARGS +#include <varargs.h> +#endif + +#if !defined (USE_STDARG) && !defined (USE_VARARGS) +/* Roll our own. */ +#define va_alist REST +#define va_dcl +typedef int * va_list; +#define va_start(ARGS) ARGS = &REST +#define va_end(ARGS) +#endif + #include "getopt.h" /* The first getopt value for machine-independent long options. 150 isn't special; it's just an arbitrary non-ASCII char value. */ @@ -145,6 +179,10 @@ extern PTR realloc (); extern char *strstr (); #endif +#if !HAVE_DECL_VSNPRINTF +extern int vsnprintf(char *, size_t, const char *, va_list); +#endif + /* This is needed for VMS. */ #if ! defined (HAVE_UNLINK) && defined (HAVE_REMOVE) #define unlink remove @@ -442,19 +480,6 @@ struct _pseudo_type typedef struct _pseudo_type pseudo_typeS; -/* Prefer varargs for non-ANSI compiler, since some will barf if the - ellipsis definition is used with a no-arguments declaration. */ -#if defined (HAVE_VARARGS_H) && !defined (__STDC__) -#undef HAVE_STDARG_H -#endif - -#if defined (HAVE_STDARG_H) -#define USE_STDARG -#endif -#if !defined (USE_STDARG) && defined (HAVE_VARARGS_H) -#define USE_VARARGS -#endif - #ifdef USE_STDARG #if (__GNUC__ >= 2) && !defined(VMS) /* for use with -Wformat */ diff --git a/gas/configure b/gas/configure index c32f16e..5cba97e 100755 --- a/gas/configure +++ b/gas/configure @@ -10943,6 +10943,79 @@ _ACEOF fi +echo "$as_me:$LINENO: checking whether vsnprintf is declared" >&5 +echo $ECHO_N "checking whether vsnprintf is declared... $ECHO_C" >&6 +if test "${ac_cv_have_decl_vsnprintf+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +#ifndef vsnprintf + char *p = (char *) vsnprintf; +#endif + + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext +if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 + (eval $ac_compile) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest.$ac_objext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_cv_have_decl_vsnprintf=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_cv_have_decl_vsnprintf=no +fi +rm -f conftest.err conftest.$ac_objext conftest.$ac_ext +fi +echo "$as_me:$LINENO: result: $ac_cv_have_decl_vsnprintf" >&5 +echo "${ECHO_T}$ac_cv_have_decl_vsnprintf" >&6 +if test $ac_cv_have_decl_vsnprintf = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_VSNPRINTF 1 +_ACEOF + + +else + cat >>confdefs.h <<_ACEOF +#define HAVE_DECL_VSNPRINTF 0 +_ACEOF + + +fi + + + ac_config_files="$ac_config_files Makefile doc/Makefile po/Makefile.in:po/Make-in" diff --git a/gas/configure.in b/gas/configure.in index 9929755..fd14bcf 100644 --- a/gas/configure.in +++ b/gas/configure.in @@ -663,6 +663,8 @@ GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers) GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers) GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers) +AC_CHECK_DECLS([vsnprintf]) + dnl This must come last. dnl We used to make symlinks to files in the source directory, but now diff --git a/gas/messages.c b/gas/messages.c index a8e309d..b1b94cd 100644 --- a/gas/messages.c +++ b/gas/messages.c @@ -21,28 +21,6 @@ #include "as.h" -#include <stdio.h> -#ifdef HAVE_ERRNO_H -#include <errno.h> -#endif - -#ifdef USE_STDARG -#include <stdarg.h> -#endif - -#ifdef USE_VARARGS -#include <varargs.h> -#endif - -#if !defined (USE_STDARG) && !defined (USE_VARARGS) -/* Roll our own. */ -#define va_alist REST -#define va_dcl -typedef int * va_list; -#define va_start(ARGS) ARGS = &REST -#define va_end(ARGS) -#endif - static void identify (char *); static void as_show_where (void); static void as_warn_internal (char *, unsigned int, char *); |