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; |
}; |