]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - ld/ldlex.h
* ld-elf/pr14926.d: Disable for d10v, msp, xstormy.
[thirdparty/binutils-gdb.git] / ld / ldlex.h
CommitLineData
252b5132 1/* ldlex.h -
dab69f68
AM
2 Copyright 1991, 1992, 1993, 1994, 1995, 1997, 2000, 2003, 2005, 2006,
3 2007, 2012 Free Software Foundation, Inc.
252b5132 4
f96b4a7b 5 This file is part of the GNU Binutils.
252b5132 6
f96b4a7b 7 This program is free software; you can redistribute it and/or modify
252b5132 8 it under the terms of the GNU General Public License as published by
f96b4a7b
NC
9 the Free Software Foundation; either version 3 of the License, or
10 (at your option) any later version.
252b5132 11
f96b4a7b 12 This program is distributed in the hope that it will be useful,
252b5132
RH
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
f96b4a7b
NC
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. */
252b5132
RH
21
22#ifndef LDLEX_H
23#define LDLEX_H
24
25#include <stdio.h>
26
f05eb3b7
AM
27/* Codes used for the long options with no short synonyms. 150 isn't
28 special; it's just an arbitrary non-ASCII char value. */
29enum option_values
30{
31 OPTION_ASSERT = 150,
32 OPTION_CALL_SHARED,
33 OPTION_CREF,
34 OPTION_DEFSYM,
35 OPTION_DEMANGLE,
36 OPTION_DYNAMIC_LINKER,
37 OPTION_SYSROOT,
38 OPTION_EB,
39 OPTION_EL,
40 OPTION_EMBEDDED_RELOCS,
41 OPTION_EXPORT_DYNAMIC,
42 OPTION_NO_EXPORT_DYNAMIC,
43 OPTION_HELP,
44 OPTION_IGNORE,
45 OPTION_MAP,
46 OPTION_NO_DEMANGLE,
47 OPTION_NO_KEEP_MEMORY,
48 OPTION_NO_WARN_MISMATCH,
49 OPTION_NO_WARN_SEARCH_MISMATCH,
50 OPTION_NOINHIBIT_EXEC,
51 OPTION_NON_SHARED,
52 OPTION_NO_WHOLE_ARCHIVE,
53 OPTION_OFORMAT,
54 OPTION_RELAX,
55 OPTION_NO_RELAX,
56 OPTION_RETAIN_SYMBOLS_FILE,
57 OPTION_RPATH,
58 OPTION_RPATH_LINK,
59 OPTION_SHARED,
60 OPTION_SONAME,
61 OPTION_SORT_COMMON,
62 OPTION_SORT_SECTION,
63 OPTION_STATS,
64 OPTION_SYMBOLIC,
65 OPTION_SYMBOLIC_FUNCTIONS,
66 OPTION_TASK_LINK,
67 OPTION_TBSS,
68 OPTION_TDATA,
69 OPTION_TTEXT,
70 OPTION_TTEXT_SEGMENT,
9d5777a3 71 OPTION_TRODATA_SEGMENT,
f05eb3b7
AM
72 OPTION_TRADITIONAL_FORMAT,
73 OPTION_UR,
74 OPTION_VERBOSE,
75 OPTION_VERSION,
76 OPTION_VERSION_SCRIPT,
77 OPTION_VERSION_EXPORTS_SECTION,
78 OPTION_DYNAMIC_LIST,
79 OPTION_DYNAMIC_LIST_CPP_NEW,
80 OPTION_DYNAMIC_LIST_CPP_TYPEINFO,
81 OPTION_DYNAMIC_LIST_DATA,
82 OPTION_WARN_COMMON,
83 OPTION_WARN_CONSTRUCTORS,
84 OPTION_WARN_FATAL,
85 OPTION_NO_WARN_FATAL,
86 OPTION_WARN_MULTIPLE_GP,
87 OPTION_WARN_ONCE,
88 OPTION_WARN_SECTION_ALIGN,
89 OPTION_SPLIT_BY_RELOC,
90 OPTION_SPLIT_BY_FILE ,
91 OPTION_WHOLE_ARCHIVE,
92 OPTION_ADD_DT_NEEDED_FOR_DYNAMIC,
93 OPTION_NO_ADD_DT_NEEDED_FOR_DYNAMIC,
94 OPTION_ADD_DT_NEEDED_FOR_REGULAR,
95 OPTION_NO_ADD_DT_NEEDED_FOR_REGULAR,
96 OPTION_WRAP,
97 OPTION_FORCE_EXE_SUFFIX,
98 OPTION_GC_SECTIONS,
99 OPTION_NO_GC_SECTIONS,
100 OPTION_PRINT_GC_SECTIONS,
101 OPTION_NO_PRINT_GC_SECTIONS,
102 OPTION_HASH_SIZE,
103 OPTION_CHECK_SECTIONS,
104 OPTION_NO_CHECK_SECTIONS,
105 OPTION_NO_UNDEFINED,
106 OPTION_INIT,
107 OPTION_FINI,
108 OPTION_SECTION_START,
109 OPTION_UNIQUE,
110 OPTION_TARGET_HELP,
111 OPTION_ALLOW_SHLIB_UNDEFINED,
112 OPTION_NO_ALLOW_SHLIB_UNDEFINED,
113 OPTION_ALLOW_MULTIPLE_DEFINITION,
114 OPTION_NO_UNDEFINED_VERSION,
115 OPTION_DEFAULT_SYMVER,
116 OPTION_DEFAULT_IMPORTED_SYMVER,
117 OPTION_DISCARD_NONE,
118 OPTION_SPARE_DYNAMIC_TAGS,
119 OPTION_NO_DEFINE_COMMON,
120 OPTION_NOSTDLIB,
121 OPTION_NO_OMAGIC,
122 OPTION_STRIP_DISCARDED,
123 OPTION_NO_STRIP_DISCARDED,
124 OPTION_ACCEPT_UNKNOWN_INPUT_ARCH,
125 OPTION_NO_ACCEPT_UNKNOWN_INPUT_ARCH,
126 OPTION_PIE,
127 OPTION_UNRESOLVED_SYMBOLS,
128 OPTION_WARN_UNRESOLVED_SYMBOLS,
129 OPTION_ERROR_UNRESOLVED_SYMBOLS,
130 OPTION_WARN_SHARED_TEXTREL,
131 OPTION_WARN_ALTERNATE_EM,
132 OPTION_REDUCE_MEMORY_OVERHEADS,
133#ifdef ENABLE_PLUGINS
134 OPTION_PLUGIN,
135 OPTION_PLUGIN_OPT,
136#endif /* ENABLE_PLUGINS */
137 OPTION_DEFAULT_SCRIPT,
138 OPTION_PRINT_OUTPUT_FORMAT,
0e86e20e 139 OPTION_IGNORE_UNRESOLVED_SYMBOL,
f05eb3b7
AM
140};
141
252b5132
RH
142/* The initial parser states. */
143typedef enum input_enum {
144 input_selected, /* We've set the initial state. */
145 input_script,
146 input_mri_script,
147 input_version_script,
55255dae 148 input_dynamic_list,
252b5132
RH
149 input_defsym
150} input_type;
151
152extern input_type parser_input;
153
154extern unsigned int lineno;
155extern const char *lex_string;
156
157/* In ldlex.l. */
1579bae1 158extern int yylex (void);
f4a23d42 159extern void lex_push_file (FILE *, const char *, unsigned int);
dab69f68 160extern void lex_redirect (const char *, const char *, unsigned int);
1579bae1
AM
161extern void ldlex_script (void);
162extern void ldlex_mri_script (void);
163extern void ldlex_version_script (void);
164extern void ldlex_version_file (void);
165extern void ldlex_defsym (void);
166extern void ldlex_expression (void);
167extern void ldlex_both (void);
168extern void ldlex_command (void);
169extern void ldlex_popstate (void);
dab69f68 170extern const char* ldlex_filename (void);
252b5132
RH
171
172/* In lexsup.c. */
1579bae1
AM
173extern int lex_input (void);
174extern void lex_unput (int);
252b5132 175#ifndef yywrap
1579bae1 176extern int yywrap (void);
252b5132 177#endif
1579bae1 178extern void parse_args (unsigned, char **);
252b5132
RH
179
180#endif