/* bucomm.h -- binutils common include file.
- Copyright (C) 1992, 93, 94, 95, 96, 1997, 1998 Free Software Foundation, Inc.
+ Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+ 2001, 2002, 2003 Free Software Foundation, Inc.
-This file is part of GNU Binutils.
+ This file is part of GNU Binutils.
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
\f
#ifndef _BUCOMM_H
#define _BUCOMM_H
#include <sys/types.h>
#include "config.h"
+#include "bin-bugs.h"
+
+#include <stdarg.h>
#ifdef USE_BINARY_FOPEN
#include "fopen-bin.h"
#endif
#endif
-#ifdef NEED_DECLARATION_STRSTR
+#if !HAVE_DECL_STPCPY
+extern char *stpcpy (char *, const char *);
+#endif
+
+#if !HAVE_DECL_STRSTR
extern char *strstr ();
#endif
#ifdef HAVE_SBRK
-#ifdef NEED_DECLARATION_SBRK
+#if !HAVE_DECL_SBRK
extern char *sbrk ();
#endif
#endif
-#ifdef NEED_DECLARATION_GETENV
+#if !HAVE_DECL_GETENV
extern char *getenv ();
#endif
+#if !HAVE_DECL_ENVIRON
+extern char **environ;
+#endif
+
#ifndef O_RDONLY
#define O_RDONLY 0
#endif
#define SEEK_END 2
#endif
-#ifdef __GNUC__
+#if defined(__GNUC__) && !defined(C_ALLOCA)
# undef alloca
# define alloca __builtin_alloca
#else
-# if HAVE_ALLOCA_H
+# if defined(HAVE_ALLOCA_H) && !defined(C_ALLOCA)
# include <alloca.h>
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
# endif /* HAVE_ALLOCA_H */
#endif
-#ifdef ENABLE_NLS
-#include <libintl.h>
-#define _(String) gettext (String)
-#ifdef gettext_noop
-#define N_(String) gettext_noop (String)
-#else
-#define N_(String) (String)
+#ifdef HAVE_LOCALE_H
+# include <locale.h>
#endif
+
+#ifdef ENABLE_NLS
+# include <libintl.h>
+# define _(String) gettext (String)
+# ifdef gettext_noop
+# define N_(String) gettext_noop (String)
+# else
+# define N_(String) (String)
+# endif
#else
-/* Stubs that do something close enough. */
-#define textdomain(String) (String)
-#define gettext(String) (String)
-#define dgettext(Domain,Message) (Message)
-#define dcgettext(Domain,Message,Type) (Message)
-#define bindtextdomain(Domain,Directory) (Domain)
-#define _(String) (String)
-#define N_(String) (String)
-/* In this case we don't care about the value. */
-#ifndef LC_MESSAGES
-#define LC_MESSAGES 0
-#endif
+# define gettext(Msgid) (Msgid)
+# define dgettext(Domainname, Msgid) (Msgid)
+# define dcgettext(Domainname, Msgid, Category) (Msgid)
+# define textdomain(Domainname) while (0) /* nothing */
+# define bindtextdomain(Domainname, Dirname) while (0) /* nothing */
+# define _(String) (String)
+# define N_(String) (String)
#endif
+/* Used by ar.c and objcopy.c. */
+#define BUFSIZE 8192
+
/* bucomm.c */
-void bfd_nonfatal PARAMS ((CONST char *));
-void bfd_fatal PARAMS ((CONST char *));
+/* Return the filename in a static buffer. */
+const char *bfd_get_archive_filename (bfd *);
+
+void bfd_nonfatal (const char *);
+
+void bfd_fatal (const char *) ATTRIBUTE_NORETURN;
+
+void report (const char *, va_list) ATTRIBUTE_PRINTF(1,0);
+
+void fatal (const char *, ...) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN;
-void fatal PARAMS ((CONST char *, ...));
+void non_fatal (const char *, ...) ATTRIBUTE_PRINTF_1;
-void set_default_bfd_target PARAMS ((void));
+void set_default_bfd_target (void);
-void list_matching_formats PARAMS ((char **p));
+void list_matching_formats (char **);
-void list_supported_targets PARAMS ((const char *, FILE *));
+void list_supported_targets (const char *, FILE *);
-void print_arelt_descr PARAMS ((FILE *file, bfd *abfd, boolean verbose));
+void list_supported_architectures (const char *, FILE *);
-char *make_tempname PARAMS ((char *));
+int display_info (void);
-bfd_vma parse_vma PARAMS ((const char *, const char *));
+void print_arelt_descr (FILE *, bfd *, bfd_boolean);
+
+char *make_tempname (char *);
+
+bfd_vma parse_vma (const char *, const char *);
+
+off_t get_file_size (const char *);
extern char *program_name;
/* filemode.c */
-void mode_string PARAMS ((unsigned long mode, char *buf));
+void mode_string (unsigned long, char *);
/* version.c */
-extern void print_version PARAMS ((const char *));
+extern void print_version (const char *);
+
+/* rename.c */
+extern void set_times (const char *, const struct stat *);
+
+extern int smart_rename (const char *, const char *, int);
-/* libiberty */
-PTR xmalloc PARAMS ((size_t));
+/* libiberty. */
+void *xmalloc (size_t);
-PTR xrealloc PARAMS ((PTR, size_t));
+void *xrealloc (void *, size_t);
#endif /* _BUCOMM_H */