From 8341e15b3424b7f42b101a93fa69abf9ede78d30 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Tue, 6 Oct 2009 20:14:06 +0000 Subject: [PATCH] Merge from gcc repository. --- include/ChangeLog | 16 ++++++++++++++++ include/plugin-api.h | 33 +++++++++++++++++++++++++++++++-- 2 files changed, 47 insertions(+), 2 deletions(-) diff --git a/include/ChangeLog b/include/ChangeLog index 8e3f70d5ecd..cbae66307f3 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,19 @@ +2009-10-05 Rafael Espindola + + * plugin-api.h (ld_plugin_status): Add LDPS_BAD_HANDLE. + (ld_plugin_get_input_file): New. + (ld_plugin_release_input_file): New. + (ld_plugin_add_input_library): New. + (ld_plugin_message): Mark format const. + (ld_plugin_level): Add LDPT_GET_INPUT_FILE, LDPT_RELEASE_INPUT_FILE and + LDPT_ADD_INPUT_LIBRARY. + (ld_plugin_tv): Add tv_get_input_file, tv_release_input_file and + tv_add_input_library. + +2009-10-04 Jerry Quinn + + * plugin-api.h: Fix compile. + 2009-09-29 Jason Merrill * demangle.h (enum demangle_component_type): Add diff --git a/include/plugin-api.h b/include/plugin-api.h index f536d57d751..530f3f44873 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 . 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; }; -- 2.30.2