diff options
author | Ian Lance Taylor <iant@google.com> | 2009-10-16 18:08:45 +0400 |
---|---|---|
committer | Ian Lance Taylor <iant@google.com> | 2009-10-16 18:08:45 +0400 |
commit | 8323208c7504b1e239e63aee5be2fb775e35e44f (patch) | |
tree | 44a28820e3b42974cd326e43b9f1002b4129b75f | |
parent | 8b4db27a621e34829e3ff893dbd560ac1f7ac718 (diff) |
Sync plugin-api.h from trunk.
-rw-r--r-- | include/ChangeLog | 10 | ||||
-rw-r--r-- | include/plugin-api.h | 33 |
2 files changed, 41 insertions, 2 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index 9e6fb590d..244610a17 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,13 @@ +2009-10-09 Rafael Espindola <espindola@google.com> + + * plugin-api.h (ld_plugin_add_input_library): Change argument name to + libname. + +2008-10-03 Rafael Espindola <espindola@google.com> + + * plugin-api.h: New. + * lto-symtab.h: New. + 2009-09-09 Martin Thuresson <martin@mtme.org> * bfdlink.h (struct bfd_link_hash_common_entry): Move to top diff --git a/include/plugin-api.h b/include/plugin-api.h index f536d57d7..a026e7a00 100644 --- a/include/plugin-api.h +++ b/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; }; |