| Index: binutils/include/plugin-api.h
|
| diff --git a/binutils/include/plugin-api.h b/binutils/include/plugin-api.h
|
| index f536d57d751f5bb98794b4d121f2da38539e574e..a026e7a004bc71d0d25f526caeb14c360d700c42 100644
|
| --- a/binutils/include/plugin-api.h
|
| +++ b/binutils/include/plugin-api.h
|
| @@ -1,6 +1,6 @@
|
| /* plugin-api.h -- External linker plugin API. */
|
|
|
| -/* Copyright 2008 Free Software Foundation, Inc.
|
| +/* Copyright 2009 Free Software Foundation, Inc.
|
| Written by Cary Coutant <ccoutant@google.com>.
|
|
|
| This file is part of binutils.
|
| @@ -111,13 +111,34 @@ enum ld_plugin_symbol_visibility
|
| enum ld_plugin_symbol_resolution
|
| {
|
| LDPR_UNKNOWN = 0,
|
| +
|
| + /* Symbol is still undefined at this point. */
|
| LDPR_UNDEF,
|
| +
|
| + /* This is the prevailing definition of the symbol, with references from
|
| + regular object code. */
|
| LDPR_PREVAILING_DEF,
|
| +
|
| + /* This is the prevailing definition of the symbol, with no
|
| + references from regular objects. It is only referenced from IR
|
| + code. */
|
| LDPR_PREVAILING_DEF_IRONLY,
|
| +
|
| + /* This definition was pre-empted by a definition in a regular
|
| + object file. */
|
| LDPR_PREEMPTED_REG,
|
| +
|
| + /* This definition was pre-empted by a definition in another IR file. */
|
| LDPR_PREEMPTED_IR,
|
| +
|
| + /* This symbol was resolved by a definition in another IR file. */
|
| LDPR_RESOLVED_IR,
|
| +
|
| + /* This symbol was resolved by a definition in a regular object
|
| + linked into the main executable. */
|
| LDPR_RESOLVED_EXEC,
|
| +
|
| + /* This symbol was resolved by a definition in a shared object. */
|
| LDPR_RESOLVED_DYN
|
| };
|
|
|
| @@ -193,6 +214,12 @@ typedef
|
| enum ld_plugin_status
|
| (*ld_plugin_add_input_file) (char *pathname);
|
|
|
| +/* The linker's interface for adding a library that should be searched. */
|
| +
|
| +typedef
|
| +enum ld_plugin_status
|
| +(*ld_plugin_add_input_library) (char *libname);
|
| +
|
| /* The linker's interface for issuing a warning or error message. */
|
|
|
| typedef
|
| @@ -224,7 +251,8 @@ enum ld_plugin_tag
|
| LDPT_ADD_INPUT_FILE,
|
| LDPT_MESSAGE,
|
| LDPT_GET_INPUT_FILE,
|
| - LDPT_RELEASE_INPUT_FILE
|
| + LDPT_RELEASE_INPUT_FILE,
|
| + LDPT_ADD_INPUT_LIBRARY
|
| };
|
|
|
| /* The plugin transfer vector. */
|
| @@ -245,6 +273,7 @@ struct ld_plugin_tv
|
| ld_plugin_message tv_message;
|
| ld_plugin_get_input_file tv_get_input_file;
|
| ld_plugin_release_input_file tv_release_input_file;
|
| + ld_plugin_add_input_library tv_add_input_library;
|
| } tv_u;
|
| };
|
|
|
|
|