1/* sysdep.h -- handle host dependencies for the GNU linker
2   Copyright 1995, 1996, 1997, 1999, 2002, 2003
3   Free Software Foundation, Inc.
4
5   This file is part of GLD, the Gnu Linker.
6
7   GLD 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, or (at your option)
10   any later version.
11
12   GLD 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 GLD; see the file COPYING.  If not, write to the Free
19   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
20   02110-1301, USA.  */
21
22#ifndef LD_SYSDEP_H
23#define LD_SYSDEP_H
24
25#include "config.h"
26
27#include <stdio.h>
28#include <sys/types.h>
29#include <sys/stat.h>
30
31#ifdef HAVE_STRING_H
32#include <string.h>
33#else
34#ifdef HAVE_STRINGS_H
35#include <strings.h>
36#else
37extern char *strchr ();
38extern char *strrchr ();
39#endif
40#endif
41
42#ifdef HAVE_STDLIB_H
43#include <stdlib.h>
44#endif
45
46#ifdef HAVE_UNISTD_H
47#include <unistd.h>
48#endif
49
50/* for PATH_MAX */
51#ifdef HAVE_LIMITS_H
52#include <limits.h>
53#endif
54/* for MAXPATHLEN */
55#ifdef HAVE_SYS_PARAM_H
56#include <sys/param.h>
57#ifndef __PAST_END
58# define __PAST_END(array, offset) (((typeof(*(array)) *)(array))[offset])
59#endif
60#endif
61#ifdef PATH_MAX
62# define LD_PATHMAX PATH_MAX
63#else
64# ifdef MAXPATHLEN
65#  define LD_PATHMAX MAXPATHLEN
66# else
67#  define LD_PATHMAX 1024
68# endif
69#endif
70
71#ifdef HAVE_REALPATH
72# define REALPATH(a,b) realpath (a, b)
73#else
74# define REALPATH(a,b) NULL
75#endif
76
77#ifdef USE_BINARY_FOPEN
78#include "fopen-bin.h"
79#else
80#include "fopen-same.h"
81#endif
82
83#if !HAVE_DECL_STRSTR
84extern char *strstr ();
85#endif
86
87#if !HAVE_DECL_FREE
88extern void free ();
89#endif
90
91#if !HAVE_DECL_GETENV
92extern char *getenv ();
93#endif
94
95#if !HAVE_DECL_ENVIRON
96extern char **environ;
97#endif
98
99#endif /* ! defined (LD_SYSDEP_H) */
100