1/* bucomm.h -- binutils common include file. 2 Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 3 2002, 2003 Free Software Foundation, Inc. 4 5 This file is part of GNU Binutils. 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 2 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program; if not, write to the Free Software 19 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 20 21#ifndef _BUCOMM_H 22#define _BUCOMM_H 23 24#include "ansidecl.h" 25#include <stdio.h> 26#include <sys/types.h> 27 28#include "config.h" 29#include "bin-bugs.h" 30 31#ifdef ANSI_PROTOTYPES 32#include <stdarg.h> 33#else 34#include <varargs.h> 35#endif 36 37#ifdef USE_BINARY_FOPEN 38#include "fopen-bin.h" 39#else 40#include "fopen-same.h" 41#endif 42 43#include <errno.h> 44#ifndef errno 45extern int errno; 46#endif 47 48#ifdef HAVE_UNISTD_H 49#include <unistd.h> 50#endif 51 52#ifdef HAVE_STRING_H 53#include <string.h> 54#else 55#ifdef HAVE_STRINGS_H 56#include <strings.h> 57#else 58extern char *strchr (); 59extern char *strrchr (); 60#endif 61#endif 62 63#ifdef HAVE_STDLIB_H 64#include <stdlib.h> 65#endif 66 67#ifdef HAVE_FCNTL_H 68#include <fcntl.h> 69#else 70#ifdef HAVE_SYS_FILE_H 71#include <sys/file.h> 72#endif 73#endif 74 75#ifdef NEED_DECLARATION_STRSTR 76extern char *strstr (); 77#endif 78 79#ifdef HAVE_SBRK 80#ifdef NEED_DECLARATION_SBRK 81extern char *sbrk (); 82#endif 83#endif 84 85#ifdef NEED_DECLARATION_GETENV 86extern char *getenv (); 87#endif 88 89#ifdef NEED_DECLARATION_ENVIRON 90extern char **environ; 91#endif 92 93#ifndef O_RDONLY 94#define O_RDONLY 0 95#endif 96 97#ifndef O_RDWR 98#define O_RDWR 2 99#endif 100 101#ifndef SEEK_SET 102#define SEEK_SET 0 103#endif 104#ifndef SEEK_CUR 105#define SEEK_CUR 1 106#endif 107#ifndef SEEK_END 108#define SEEK_END 2 109#endif 110 111#if defined(__GNUC__) && !defined(C_ALLOCA) 112# undef alloca 113# define alloca __builtin_alloca 114#else 115# if defined(HAVE_ALLOCA_H) && !defined(C_ALLOCA) 116# include <alloca.h> 117# else 118# ifndef alloca /* predefined by HP cc +Olibcalls */ 119# if !defined (__STDC__) && !defined (__hpux) 120char *alloca (); 121# else 122void *alloca (); 123# endif /* __STDC__, __hpux */ 124# endif /* alloca */ 125# endif /* HAVE_ALLOCA_H */ 126#endif 127 128#ifdef HAVE_LOCALE_H 129# include <locale.h> 130#endif 131 132#ifdef ENABLE_NLS 133# include <libintl.h> 134# define _(String) gettext (String) 135# ifdef gettext_noop 136# define N_(String) gettext_noop (String) 137# else 138# define N_(String) (String) 139# endif 140#else 141# define gettext(Msgid) (Msgid) 142# define dgettext(Domainname, Msgid) (Msgid) 143# define dcgettext(Domainname, Msgid, Category) (Msgid) 144# define textdomain(Domainname) while (0) /* nothing */ 145# define bindtextdomain(Domainname, Dirname) while (0) /* nothing */ 146# define _(String) (String) 147# define N_(String) (String) 148#endif 149 150/* bucomm.c */ 151void bfd_nonfatal (const char *); 152 153void bfd_fatal (const char *) ATTRIBUTE_NORETURN; 154 155void report (const char *, va_list); 156 157void fatal (const char *, ...) ATTRIBUTE_PRINTF_1 ATTRIBUTE_NORETURN; 158 159void non_fatal (const char *, ...) ATTRIBUTE_PRINTF_1; 160 161void set_default_bfd_target (void); 162 163void list_matching_formats (char **); 164 165void list_supported_targets (const char *, FILE *); 166 167void list_supported_architectures (const char *, FILE *); 168 169int display_info (void); 170 171void print_arelt_descr (FILE *, bfd *, bfd_boolean); 172 173char *make_tempname (char *, int); 174 175bfd_vma parse_vma (const char *, const char *); 176 177off_t get_file_size (const char *); 178 179extern char *program_name; 180 181/* filemode.c */ 182void mode_string (unsigned long, char *); 183 184/* version.c */ 185extern void print_version (const char *); 186 187/* rename.c */ 188extern void set_times (const char *, const struct stat *); 189 190extern int smart_rename (const char *, const char *, int); 191 192/* libiberty. */ 193void *xmalloc (size_t); 194 195void *xrealloc (void *, size_t); 196 197#endif /* _BUCOMM_H */ 198