]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/cppdefault.c
rs6000: Correct prefix testsuite failures on AIX.
[thirdparty/gcc.git] / gcc / cppdefault.c
CommitLineData
60893f43 1/* CPP Library.
8d9254fc 2 Copyright (C) 1986-2020 Free Software Foundation, Inc.
60893f43
ZW
3 Contributed by Per Bothner, 1994-95.
4 Based on CCCP program by Paul Rubin, June 1986
5 Adapted to ANSI C, Richard Stallman, Jan 1987
6
9dcd6f09
NC
7 This program is free software; you can redistribute it and/or modify it
8 under the terms of the GNU General Public License as published by the
9 Free Software Foundation; either version 3, or (at your option) any
10 later version.
60893f43 11
9dcd6f09
NC
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.
60893f43 16
9dcd6f09
NC
17 You should have received a copy of the GNU General Public License
18 along with this program; see the file COPYING3. If not see
19 <http://www.gnu.org/licenses/>. */
60893f43 20
60893f43
ZW
21#include "config.h"
22#include "system.h"
4977bab6
ZW
23#include "coretypes.h"
24#include "tm.h"
60893f43
ZW
25#include "cppdefault.h"
26
08b2bad2
SB
27#ifndef NATIVE_SYSTEM_HEADER_COMPONENT
28#define NATIVE_SYSTEM_HEADER_COMPONENT 0
5793b276
NB
29#endif
30
2989d30c 31#if defined (CROSS_DIRECTORY_STRUCTURE) && !defined (TARGET_SYSTEM_ROOT)
5793b276 32# undef LOCAL_INCLUDE_DIR
859ed2a7 33# undef NATIVE_SYSTEM_HEADER_DIR
5793b276
NB
34#else
35# undef CROSS_INCLUDE_DIR
36#endif
37
60893f43
ZW
38const struct default_include cpp_include_defaults[]
39#ifdef INCLUDE_DEFAULTS
40= INCLUDE_DEFAULTS;
41#else
42= {
43#ifdef GPLUSPLUS_INCLUDE_DIR
e2187d3b 44 /* Pick up GNU C++ generic include files. */
17719d09
HS
45 { GPLUSPLUS_INCLUDE_DIR, "G++", 1, 1,
46 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
60893f43 47#endif
e2187d3b
BK
48#ifdef GPLUSPLUS_TOOL_INCLUDE_DIR
49 /* Pick up GNU C++ target-dependent include files. */
17719d09
HS
50 { GPLUSPLUS_TOOL_INCLUDE_DIR, "G++", 1, 1,
51 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 1 },
e2187d3b 52#endif
98c2359b
BK
53#ifdef GPLUSPLUS_BACKWARD_INCLUDE_DIR
54 /* Pick up GNU C++ backward and deprecated include files. */
17719d09
HS
55 { GPLUSPLUS_BACKWARD_INCLUDE_DIR, "G++", 1, 1,
56 GPLUSPLUS_INCLUDE_DIR_ADD_SYSROOT, 0 },
98c2359b 57#endif
da46381f
KT
58#ifdef GCC_INCLUDE_DIR
59 /* This is the dir for gcc's private headers. */
60 { GCC_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
61#endif
60893f43
ZW
62#ifdef LOCAL_INCLUDE_DIR
63 /* /usr/local/include comes before the fixincluded header files. */
e0cdc09f 64 { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 2 },
2b6dd222 65 { LOCAL_INCLUDE_DIR, 0, 0, 1, 1, 0 },
60893f43 66#endif
793e9558 67#ifdef PREFIX_INCLUDE_DIR
2b6dd222 68 { PREFIX_INCLUDE_DIR, 0, 0, 1, 0, 0 },
793e9558 69#endif
f686ec05
JM
70#ifdef FIXED_INCLUDE_DIR
71 /* This is the dir for fixincludes. */
14da6073
JM
72 { FIXED_INCLUDE_DIR, "GCC", 0, 0, 0,
73 /* A multilib suffix needs adding if different multilibs use
74 different headers. */
75#ifdef SYSROOT_HEADERS_SUFFIX_SPEC
76 1
77#else
78 0
79#endif
80 },
f686ec05 81#endif
60893f43
ZW
82#ifdef CROSS_INCLUDE_DIR
83 /* One place the target system's headers might be. */
2b6dd222 84 { CROSS_INCLUDE_DIR, "GCC", 0, 0, 0, 0 },
60893f43
ZW
85#endif
86#ifdef TOOL_INCLUDE_DIR
87 /* Another place the target system's headers might be. */
2b6dd222 88 { TOOL_INCLUDE_DIR, "BINUTILS", 0, 1, 0, 0 },
60893f43 89#endif
859ed2a7 90#ifdef NATIVE_SYSTEM_HEADER_DIR
60893f43 91 /* /usr/include comes dead last. */
e0cdc09f 92 { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 2 },
08b2bad2 93 { NATIVE_SYSTEM_HEADER_DIR, NATIVE_SYSTEM_HEADER_COMPONENT, 0, 0, 1, 0 },
859ed2a7 94#endif
2b6dd222 95 { 0, 0, 0, 0, 0, 0 }
60893f43
ZW
96 };
97#endif /* no INCLUDE_DEFAULTS */
98
99#ifdef GCC_INCLUDE_DIR
100const char cpp_GCC_INCLUDE_DIR[] = GCC_INCLUDE_DIR;
101const size_t cpp_GCC_INCLUDE_DIR_len = sizeof GCC_INCLUDE_DIR - 8;
102#else
103const char cpp_GCC_INCLUDE_DIR[] = "";
104const size_t cpp_GCC_INCLUDE_DIR_len = 0;
105#endif
76642aab
CD
106
107/* The configured prefix. */
108const char cpp_PREFIX[] = PREFIX;
109const size_t cpp_PREFIX_len = sizeof PREFIX - 1;
6d4817e3 110const char cpp_EXEC_PREFIX[] = STANDARD_EXEC_PREFIX;
76642aab
CD
111
112/* This value is set by cpp_relocated at runtime */
113const char *gcc_exec_prefix;
114
115/* Return true if the toolchain is relocated. */
116bool
117cpp_relocated (void)
118{
119 static int relocated = -1;
120
121 /* A relocated toolchain ignores standard include directories. */
122 if (relocated == -1)
123 {
124 /* Check if the toolchain was relocated? */
71f3e391 125 gcc_exec_prefix = getenv ("GCC_EXEC_PREFIX");
76642aab
CD
126 if (gcc_exec_prefix)
127 relocated = 1;
128 else
129 relocated = 0;
130 }
131
132 return relocated;
133}