diff options
Diffstat (limited to 'include/plugin-api.h')
-rw-r--r-- | include/plugin-api.h | 33 |
1 files changed, 31 insertions, 2 deletions
diff --git a/include/plugin-api.h b/include/plugin-api.h index f536d57..530f3f4 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 *pathname); + /* 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; }; |