Automatic date update in version.in
[deliverable/binutils-gdb.git] / bfd / sysdep.h
1 /* sysdep.h -- handle host dependencies for the BFD library
2 Copyright (C) 1995-2019 Free Software Foundation, Inc.
3 Written by Cygnus Support.
4
5 This file is part of BFD, the Binary File Descriptor library.
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 3 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., 51 Franklin Street - Fifth Floor, Boston,
20 MA 02110-1301, USA. */
21
22 #ifndef BFD_SYSDEP_H
23 #define BFD_SYSDEP_H
24
25 #ifdef PACKAGE
26 #error sysdep.h must be included in lieu of config.h
27 #endif
28
29 #include "config.h"
30
31 #ifdef HAVE_STDDEF_H
32 #include <stddef.h>
33 #endif
34
35 #include <stdio.h>
36 #include <sys/types.h>
37
38 #include <errno.h>
39 #if !(defined(errno) || defined(_MSC_VER) && defined(_INC_ERRNO))
40 extern int errno;
41 #endif
42
43 #ifdef STRING_WITH_STRINGS
44 #include <string.h>
45 #include <strings.h>
46 #else
47 #ifdef HAVE_STRING_H
48 #include <string.h>
49 #else
50 #ifdef HAVE_STRINGS_H
51 #include <strings.h>
52 #else
53 extern char *strchr ();
54 extern char *strrchr ();
55 #endif
56 #endif
57 #endif
58
59 #ifdef HAVE_STDLIB_H
60 #include <stdlib.h>
61 #endif
62
63 #ifdef TIME_WITH_SYS_TIME
64 #include <sys/time.h>
65 #include <time.h>
66 #else
67 #ifdef HAVE_SYS_TIME_H
68 #include <sys/time.h>
69 #else
70 #include <time.h>
71 #endif
72 #endif
73
74 #ifdef HAVE_UNISTD_H
75 #include <unistd.h>
76 #endif
77
78 #ifdef HAVE_SYS_RESOURCE_H
79 #include <sys/resource.h>
80 #endif /* HAVE_SYS_RESOURCE_H */
81
82 #ifdef USE_BINARY_FOPEN
83 #include "fopen-bin.h"
84 #else
85 #include "fopen-same.h"
86 #endif
87
88 #ifdef HAVE_FCNTL_H
89 #include <fcntl.h>
90 #else
91 #ifdef HAVE_SYS_FILE_H
92 #include <sys/file.h>
93 #endif
94 #endif
95
96 #ifndef O_RDONLY
97 #define O_RDONLY 0
98 #endif
99 #ifndef O_WRONLY
100 #define O_WRONLY 1
101 #endif
102 #ifndef O_RDWR
103 #define O_RDWR 2
104 #endif
105 #ifndef O_ACCMODE
106 #define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
107 #endif
108 /* Systems that don't already define this, don't need it. */
109 #ifndef O_BINARY
110 #define O_BINARY 0
111 #endif
112
113 #ifndef SEEK_SET
114 #define SEEK_SET 0
115 #endif
116 #ifndef SEEK_CUR
117 #define SEEK_CUR 1
118 #endif
119
120 #include "filenames.h"
121
122 #if !HAVE_DECL_FFS
123 extern int ffs (int);
124 #endif
125
126 #if !HAVE_DECL_FREE
127 extern void free ();
128 #endif
129
130 #if !HAVE_DECL_GETENV
131 extern char *getenv ();
132 #endif
133
134 #if !HAVE_DECL_MALLOC
135 extern PTR malloc ();
136 #endif
137
138 #if !HAVE_DECL_REALLOC
139 extern PTR realloc ();
140 #endif
141
142 #if !HAVE_DECL_STPCPY
143 extern char *stpcpy (char *__dest, const char *__src);
144 #endif
145
146 #if !HAVE_DECL_STRSTR
147 extern char *strstr ();
148 #endif
149
150 #ifdef HAVE_FTELLO
151 #if !HAVE_DECL_FTELLO
152 extern off_t ftello (FILE *stream);
153 #endif
154 #endif
155
156 #ifdef HAVE_FTELLO64
157 #if !HAVE_DECL_FTELLO64
158 extern off64_t ftello64 (FILE *stream);
159 #endif
160 #endif
161
162 #ifdef HAVE_FSEEKO
163 #if !HAVE_DECL_FSEEKO
164 extern int fseeko (FILE *stream, off_t offset, int whence);
165 #endif
166 #endif
167
168 #ifdef HAVE_FSEEKO64
169 #if !HAVE_DECL_FSEEKO64
170 extern int fseeko64 (FILE *stream, off64_t offset, int whence);
171 #endif
172 #endif
173
174 #if !HAVE_DECL_STRNLEN
175 size_t strnlen (const char *, size_t);
176 #endif
177
178 /* Define offsetof for those systems which lack it */
179
180 #ifndef offsetof
181 #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
182 #endif
183
184 #ifdef ENABLE_NLS
185 # include <libintl.h>
186 /* Note the redefinition of gettext and ngettext here to use PACKAGE.
187
188 This is because the code in this directory is used to build a
189 library which will be linked with code in other directories to form
190 programs. We want to maintain a seperate translation file for this
191 directory however, rather than being forced to merge it with that
192 of any program linked to libbfd. This is a library, so it cannot
193 depend on the catalog currently loaded.
194
195 In order to do this, we have to make sure that when we extract
196 messages we use the BFD domain rather than the domain of the
197 program that included the bfd library, (eg OBJDUMP). Hence we use
198 dgettext (PACKAGE, String) and define PACKAGE to be 'bfd'.
199 (See the code in configure). */
200 # undef gettext
201 # define gettext(Msgid) dgettext (PACKAGE, Msgid)
202 # undef ngettext
203 # define ngettext(Msgid1, Msgid2, n) dngettext (PACKAGE, Msgid1, Msgid2, n)
204 # define _(String) gettext (String)
205 # ifdef gettext_noop
206 # define N_(String) gettext_noop (String)
207 # else
208 # define N_(String) (String)
209 # endif
210 #else
211 # define gettext(Msgid) (Msgid)
212 # define dgettext(Domainname, Msgid) (Msgid)
213 # define dcgettext(Domainname, Msgid, Category) (Msgid)
214 # define ngettext(Msgid1, Msgid2, n) \
215 (n == 1 ? Msgid1 : Msgid2)
216 # define dngettext(Domainname, Msgid1, Msgid2, n) \
217 (n == 1 ? Msgid1 : Msgid2)
218 # define dcngettext(Domainname, Msgid1, Msgid2, n, Category) \
219 (n == 1 ? Msgid1 : Msgid2)
220 # define textdomain(Domainname) do {} while (0)
221 # define bindtextdomain(Domainname, Dirname) do {} while (0)
222 # define _(String) (String)
223 # define N_(String) (String)
224 #endif
225
226 #endif /* ! defined (BFD_SYSDEP_H) */
This page took 0.033012 seconds and 4 git commands to generate.