1/* sysdep.h -- handle host dependencies for the GNU linker
2   Copyright (C) 1995-2022 Free Software Foundation, Inc.
3
4   This file is part of the GNU Binutils.
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 3 of the License, or
9   (at your option) any later version.
10
11   This program is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU General Public License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with this program; if not, write to the Free Software
18   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
19   MA 02110-1301, USA.  */
20
21#ifndef LD_SYSDEP_H
22#define LD_SYSDEP_H
23
24#ifdef PACKAGE
25#error sysdep.h must be included in lieu of config.h
26#endif
27
28#include "config.h"
29
30#include <stdio.h>
31#ifdef HAVE_SYS_TYPES_H
32#include <sys/types.h>
33#endif
34#ifdef HAVE_SYS_STAT_H
35#include <sys/stat.h>
36#endif
37#include <stdlib.h>
38#include <string.h>
39#include <stdarg.h>
40#ifdef HAVE_UNISTD_H
41#include <unistd.h>
42#endif
43
44#ifdef HAVE_REALPATH
45# define REALPATH(a,b) realpath (a, b)
46#else
47# define REALPATH(a,b) NULL
48#endif
49
50#ifdef USE_BINARY_FOPEN
51#include "fopen-bin.h"
52#else
53#include "fopen-same.h"
54#endif
55
56#ifdef HAVE_FCNTL_H
57#include <fcntl.h>
58#else
59#ifdef HAVE_SYS_FILE_H
60#include <sys/file.h>
61#endif
62#endif
63
64#ifdef HAVE_DLFCN_H
65#include <dlfcn.h>
66#endif
67
68#ifndef O_RDONLY
69#define O_RDONLY 0
70#endif
71#ifndef O_WRONLY
72#define O_WRONLY 1
73#endif
74#ifndef O_RDWR
75#define O_RDWR 2
76#endif
77#ifndef O_ACCMODE
78#define O_ACCMODE (O_RDONLY | O_WRONLY | O_RDWR)
79#endif
80/* Systems that don't already define this, don't need it.  */
81#ifndef O_BINARY
82#define O_BINARY 0
83#endif
84
85#ifndef SEEK_SET
86#define SEEK_SET 0
87#endif
88#ifndef SEEK_CUR
89#define SEEK_CUR 1
90#endif
91#ifndef SEEK_END
92#define SEEK_END 2
93#endif
94
95#if !HAVE_DECL_ENVIRON
96extern char **environ;
97#endif
98
99#define POISON_BFD_BOOLEAN 1
100
101#endif /* ! defined (LD_SYSDEP_H) */
102