Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(479)

Side by Side Diff: binutils/include/plugin-api.h

Issue 3018030: [binutils] Bump binutils to 2.20.1 (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/nacl-toolchain.git
Patch Set: Created 10 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « binutils/include/elf/ppc.h ('k') | binutils/ld/ChangeLog » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* plugin-api.h -- External linker plugin API. */ 1 /* plugin-api.h -- External linker plugin API. */
2 2
3 /* Copyright 2008 Free Software Foundation, Inc. 3 /* Copyright 2009 Free Software Foundation, Inc.
4 Written by Cary Coutant <ccoutant@google.com>. 4 Written by Cary Coutant <ccoutant@google.com>.
5 5
6 This file is part of binutils. 6 This file is part of binutils.
7 7
8 This program is free software; you can redistribute it and/or modify 8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by 9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3 of the License, or 10 the Free Software Foundation; either version 3 of the License, or
11 (at your option) any later version. 11 (at your option) any later version.
12 12
13 This program is distributed in the hope that it will be useful, 13 This program is distributed in the hope that it will be useful,
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 LDPV_PROTECTED, 104 LDPV_PROTECTED,
105 LDPV_INTERNAL, 105 LDPV_INTERNAL,
106 LDPV_HIDDEN 106 LDPV_HIDDEN
107 }; 107 };
108 108
109 /* How a symbol is resolved. */ 109 /* How a symbol is resolved. */
110 110
111 enum ld_plugin_symbol_resolution 111 enum ld_plugin_symbol_resolution
112 { 112 {
113 LDPR_UNKNOWN = 0, 113 LDPR_UNKNOWN = 0,
114
115 /* Symbol is still undefined at this point. */
114 LDPR_UNDEF, 116 LDPR_UNDEF,
117
118 /* This is the prevailing definition of the symbol, with references from
119 regular object code. */
115 LDPR_PREVAILING_DEF, 120 LDPR_PREVAILING_DEF,
121
122 /* This is the prevailing definition of the symbol, with no
123 references from regular objects. It is only referenced from IR
124 code. */
116 LDPR_PREVAILING_DEF_IRONLY, 125 LDPR_PREVAILING_DEF_IRONLY,
126
127 /* This definition was pre-empted by a definition in a regular
128 object file. */
117 LDPR_PREEMPTED_REG, 129 LDPR_PREEMPTED_REG,
130
131 /* This definition was pre-empted by a definition in another IR file. */
118 LDPR_PREEMPTED_IR, 132 LDPR_PREEMPTED_IR,
133
134 /* This symbol was resolved by a definition in another IR file. */
119 LDPR_RESOLVED_IR, 135 LDPR_RESOLVED_IR,
136
137 /* This symbol was resolved by a definition in a regular object
138 linked into the main executable. */
120 LDPR_RESOLVED_EXEC, 139 LDPR_RESOLVED_EXEC,
140
141 /* This symbol was resolved by a definition in a shared object. */
121 LDPR_RESOLVED_DYN 142 LDPR_RESOLVED_DYN
122 }; 143 };
123 144
124 /* The plugin library's "claim file" handler. */ 145 /* The plugin library's "claim file" handler. */
125 146
126 typedef 147 typedef
127 enum ld_plugin_status 148 enum ld_plugin_status
128 (*ld_plugin_claim_file_handler) ( 149 (*ld_plugin_claim_file_handler) (
129 const struct ld_plugin_input_file *file, int *claimed); 150 const struct ld_plugin_input_file *file, int *claimed);
130 151
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 enum ld_plugin_status 207 enum ld_plugin_status
187 (*ld_plugin_get_symbols) (const void *handle, int nsyms, 208 (*ld_plugin_get_symbols) (const void *handle, int nsyms,
188 struct ld_plugin_symbol *syms); 209 struct ld_plugin_symbol *syms);
189 210
190 /* The linker's interface for adding a compiled input file. */ 211 /* The linker's interface for adding a compiled input file. */
191 212
192 typedef 213 typedef
193 enum ld_plugin_status 214 enum ld_plugin_status
194 (*ld_plugin_add_input_file) (char *pathname); 215 (*ld_plugin_add_input_file) (char *pathname);
195 216
217 /* The linker's interface for adding a library that should be searched. */
218
219 typedef
220 enum ld_plugin_status
221 (*ld_plugin_add_input_library) (char *libname);
222
196 /* The linker's interface for issuing a warning or error message. */ 223 /* The linker's interface for issuing a warning or error message. */
197 224
198 typedef 225 typedef
199 enum ld_plugin_status 226 enum ld_plugin_status
200 (*ld_plugin_message) (int level, const char *format, ...); 227 (*ld_plugin_message) (int level, const char *format, ...);
201 228
202 enum ld_plugin_level 229 enum ld_plugin_level
203 { 230 {
204 LDPL_INFO, 231 LDPL_INFO,
205 LDPL_WARNING, 232 LDPL_WARNING,
(...skipping 11 matching lines...) Expand all
217 LDPT_LINKER_OUTPUT, 244 LDPT_LINKER_OUTPUT,
218 LDPT_OPTION, 245 LDPT_OPTION,
219 LDPT_REGISTER_CLAIM_FILE_HOOK, 246 LDPT_REGISTER_CLAIM_FILE_HOOK,
220 LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK, 247 LDPT_REGISTER_ALL_SYMBOLS_READ_HOOK,
221 LDPT_REGISTER_CLEANUP_HOOK, 248 LDPT_REGISTER_CLEANUP_HOOK,
222 LDPT_ADD_SYMBOLS, 249 LDPT_ADD_SYMBOLS,
223 LDPT_GET_SYMBOLS, 250 LDPT_GET_SYMBOLS,
224 LDPT_ADD_INPUT_FILE, 251 LDPT_ADD_INPUT_FILE,
225 LDPT_MESSAGE, 252 LDPT_MESSAGE,
226 LDPT_GET_INPUT_FILE, 253 LDPT_GET_INPUT_FILE,
227 LDPT_RELEASE_INPUT_FILE 254 LDPT_RELEASE_INPUT_FILE,
255 LDPT_ADD_INPUT_LIBRARY
228 }; 256 };
229 257
230 /* The plugin transfer vector. */ 258 /* The plugin transfer vector. */
231 259
232 struct ld_plugin_tv 260 struct ld_plugin_tv
233 { 261 {
234 enum ld_plugin_tag tv_tag; 262 enum ld_plugin_tag tv_tag;
235 union 263 union
236 { 264 {
237 int tv_val; 265 int tv_val;
238 const char *tv_string; 266 const char *tv_string;
239 ld_plugin_register_claim_file tv_register_claim_file; 267 ld_plugin_register_claim_file tv_register_claim_file;
240 ld_plugin_register_all_symbols_read tv_register_all_symbols_read; 268 ld_plugin_register_all_symbols_read tv_register_all_symbols_read;
241 ld_plugin_register_cleanup tv_register_cleanup; 269 ld_plugin_register_cleanup tv_register_cleanup;
242 ld_plugin_add_symbols tv_add_symbols; 270 ld_plugin_add_symbols tv_add_symbols;
243 ld_plugin_get_symbols tv_get_symbols; 271 ld_plugin_get_symbols tv_get_symbols;
244 ld_plugin_add_input_file tv_add_input_file; 272 ld_plugin_add_input_file tv_add_input_file;
245 ld_plugin_message tv_message; 273 ld_plugin_message tv_message;
246 ld_plugin_get_input_file tv_get_input_file; 274 ld_plugin_get_input_file tv_get_input_file;
247 ld_plugin_release_input_file tv_release_input_file; 275 ld_plugin_release_input_file tv_release_input_file;
276 ld_plugin_add_input_library tv_add_input_library;
248 } tv_u; 277 } tv_u;
249 }; 278 };
250 279
251 /* The plugin library's "onload" entry point. */ 280 /* The plugin library's "onload" entry point. */
252 281
253 typedef 282 typedef
254 enum ld_plugin_status 283 enum ld_plugin_status
255 (*ld_plugin_onload) (struct ld_plugin_tv *tv); 284 (*ld_plugin_onload) (struct ld_plugin_tv *tv);
256 285
257 #ifdef __cplusplus 286 #ifdef __cplusplus
258 } 287 }
259 #endif 288 #endif
260 289
261 #endif /* !defined(PLUGIN_API_H) */ 290 #endif /* !defined(PLUGIN_API_H) */
OLDNEW
« no previous file with comments | « binutils/include/elf/ppc.h ('k') | binutils/ld/ChangeLog » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698