diff options
author | Ian Lance Taylor <ian@airs.com> | 2009-10-06 20:14:06 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 2009-10-06 20:14:06 +0000 |
commit | 8341e15b3424b7f42b101a93fa69abf9ede78d30 (patch) | |
tree | b9672f53ec53c75941063781d8e668203770b017 /include/plugin-api.h | |
parent | 8654b68afabde90abc1b2e5dfe0e91907bb22982 (diff) | |
download | gdb-8341e15b3424b7f42b101a93fa69abf9ede78d30.zip gdb-8341e15b3424b7f42b101a93fa69abf9ede78d30.tar.gz gdb-8341e15b3424b7f42b101a93fa69abf9ede78d30.tar.bz2 |
Merge from gcc repository.
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; }; |