Rev 5199 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
5199 | serge | 1 | /* ldlex.h - |
6324 | serge | 2 | Copyright (C) 1991-2015 Free Software Foundation, Inc. |
5199 | serge | 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 LDLEX_H |
||
22 | #define LDLEX_H |
||
23 | |||
24 | #include |
||
25 | |||
26 | /* Codes used for the long options with no short synonyms. 150 isn't |
||
27 | special; it's just an arbitrary non-ASCII char value. */ |
||
28 | enum option_values |
||
29 | { |
||
30 | OPTION_ASSERT = 150, |
||
31 | OPTION_CALL_SHARED, |
||
32 | OPTION_CREF, |
||
33 | OPTION_DEFSYM, |
||
34 | OPTION_DEMANGLE, |
||
35 | OPTION_DYNAMIC_LINKER, |
||
6324 | serge | 36 | OPTION_NO_DYNAMIC_LINKER, |
5199 | serge | 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, |
||
71 | OPTION_TRODATA_SEGMENT, |
||
72 | OPTION_TLDATA_SEGMENT, |
||
73 | OPTION_TRADITIONAL_FORMAT, |
||
74 | OPTION_UR, |
||
75 | OPTION_VERBOSE, |
||
76 | OPTION_VERSION, |
||
77 | OPTION_VERSION_SCRIPT, |
||
78 | OPTION_VERSION_EXPORTS_SECTION, |
||
79 | OPTION_DYNAMIC_LIST, |
||
80 | OPTION_DYNAMIC_LIST_CPP_NEW, |
||
81 | OPTION_DYNAMIC_LIST_CPP_TYPEINFO, |
||
82 | OPTION_DYNAMIC_LIST_DATA, |
||
83 | OPTION_WARN_COMMON, |
||
84 | OPTION_WARN_CONSTRUCTORS, |
||
85 | OPTION_WARN_FATAL, |
||
86 | OPTION_NO_WARN_FATAL, |
||
87 | OPTION_WARN_MULTIPLE_GP, |
||
88 | OPTION_WARN_ONCE, |
||
89 | OPTION_WARN_SECTION_ALIGN, |
||
90 | OPTION_SPLIT_BY_RELOC, |
||
91 | OPTION_SPLIT_BY_FILE , |
||
92 | OPTION_WHOLE_ARCHIVE, |
||
93 | OPTION_ADD_DT_NEEDED_FOR_DYNAMIC, |
||
94 | OPTION_NO_ADD_DT_NEEDED_FOR_DYNAMIC, |
||
95 | OPTION_ADD_DT_NEEDED_FOR_REGULAR, |
||
96 | OPTION_NO_ADD_DT_NEEDED_FOR_REGULAR, |
||
97 | OPTION_WRAP, |
||
98 | OPTION_FORCE_EXE_SUFFIX, |
||
99 | OPTION_GC_SECTIONS, |
||
100 | OPTION_NO_GC_SECTIONS, |
||
101 | OPTION_PRINT_GC_SECTIONS, |
||
102 | OPTION_NO_PRINT_GC_SECTIONS, |
||
103 | OPTION_HASH_SIZE, |
||
104 | OPTION_CHECK_SECTIONS, |
||
105 | OPTION_NO_CHECK_SECTIONS, |
||
106 | OPTION_NO_UNDEFINED, |
||
107 | OPTION_INIT, |
||
108 | OPTION_FINI, |
||
109 | OPTION_SECTION_START, |
||
110 | OPTION_UNIQUE, |
||
111 | OPTION_TARGET_HELP, |
||
112 | OPTION_ALLOW_SHLIB_UNDEFINED, |
||
113 | OPTION_NO_ALLOW_SHLIB_UNDEFINED, |
||
114 | OPTION_ALLOW_MULTIPLE_DEFINITION, |
||
115 | OPTION_NO_UNDEFINED_VERSION, |
||
116 | OPTION_DEFAULT_SYMVER, |
||
117 | OPTION_DEFAULT_IMPORTED_SYMVER, |
||
118 | OPTION_DISCARD_NONE, |
||
119 | OPTION_SPARE_DYNAMIC_TAGS, |
||
120 | OPTION_NO_DEFINE_COMMON, |
||
121 | OPTION_NOSTDLIB, |
||
122 | OPTION_NO_OMAGIC, |
||
123 | OPTION_STRIP_DISCARDED, |
||
124 | OPTION_NO_STRIP_DISCARDED, |
||
125 | OPTION_ACCEPT_UNKNOWN_INPUT_ARCH, |
||
126 | OPTION_NO_ACCEPT_UNKNOWN_INPUT_ARCH, |
||
127 | OPTION_PIE, |
||
128 | OPTION_UNRESOLVED_SYMBOLS, |
||
129 | OPTION_WARN_UNRESOLVED_SYMBOLS, |
||
130 | OPTION_ERROR_UNRESOLVED_SYMBOLS, |
||
131 | OPTION_WARN_SHARED_TEXTREL, |
||
132 | OPTION_WARN_ALTERNATE_EM, |
||
133 | OPTION_REDUCE_MEMORY_OVERHEADS, |
||
134 | #ifdef ENABLE_PLUGINS |
||
135 | OPTION_PLUGIN, |
||
136 | OPTION_PLUGIN_OPT, |
||
137 | #endif /* ENABLE_PLUGINS */ |
||
138 | OPTION_DEFAULT_SCRIPT, |
||
139 | OPTION_PRINT_OUTPUT_FORMAT, |
||
6324 | serge | 140 | OPTION_PRINT_SYSROOT, |
5199 | serge | 141 | OPTION_IGNORE_UNRESOLVED_SYMBOL, |
6324 | serge | 142 | OPTION_PUSH_STATE, |
143 | OPTION_POP_STATE, |
||
144 | OPTION_PRINT_MEMORY_USAGE, |
||
145 | OPTION_REQUIRE_DEFINED_SYMBOL, |
||
146 | OPTION_ORPHAN_HANDLING, |
||
5199 | serge | 147 | }; |
148 | |||
149 | /* The initial parser states. */ |
||
150 | typedef enum input_enum { |
||
151 | input_selected, /* We've set the initial state. */ |
||
152 | input_script, |
||
153 | input_mri_script, |
||
154 | input_version_script, |
||
155 | input_dynamic_list, |
||
156 | input_defsym |
||
157 | } input_type; |
||
158 | |||
159 | extern input_type parser_input; |
||
160 | |||
161 | extern unsigned int lineno; |
||
162 | extern const char *lex_string; |
||
163 | |||
164 | /* In ldlex.l. */ |
||
165 | extern int yylex (void); |
||
166 | extern void lex_push_file (FILE *, const char *, unsigned int); |
||
167 | extern void lex_redirect (const char *, const char *, unsigned int); |
||
168 | extern void ldlex_script (void); |
||
6324 | serge | 169 | extern void ldlex_inputlist (void); |
5199 | serge | 170 | extern void ldlex_mri_script (void); |
171 | extern void ldlex_version_script (void); |
||
172 | extern void ldlex_version_file (void); |
||
173 | extern void ldlex_defsym (void); |
||
174 | extern void ldlex_expression (void); |
||
175 | extern void ldlex_both (void); |
||
176 | extern void ldlex_command (void); |
||
177 | extern void ldlex_popstate (void); |
||
178 | extern const char* ldlex_filename (void); |
||
179 | |||
180 | /* In lexsup.c. */ |
||
181 | extern int lex_input (void); |
||
182 | extern void lex_unput (int); |
||
183 | #ifndef yywrap |
||
184 | extern int yywrap (void); |
||
185 | #endif |
||
186 | extern void parse_args (unsigned, char **); |
||
187 | |||
188 | #endif |