From d77d04f542f0dbce3797d14a80d213206bb0b1ea Mon Sep 17 00:00:00 2001 From: Cary Coutant Date: Mon, 26 Sep 2011 23:00:17 +0000 Subject: [PATCH] include/ChangeLog gcc PR lto/47247 * plugin-api.h (enum ld_plugin_symbol_resolution): Add LDPR_PREVAILING_DEF_IRONLY_EXP. (enum ld_plugin_tag): Add LDPT_GET_SYMBOLS_V2. gold/ChangeLog gcc PR lto/47247 * plugin.cc (get_symbols_v2): New function. (Plugin::load): Add LDPT_GET_SYMBOLS_V2. (is_referenced_from_outside): New function. (Pluginobj::get_symbol_resolution_info): Add version parameter, return LDPR_PREVAILING_DEF_IRONLY_EXP when using new version. (get_symbols): Pass version parameter. (get_symbols_v2): New function. * plugin.h (Pluginobj::get_symbol_resolution_info): Add version parameter. * testsuite/plugin_test.c (get_symbols_v2): New static variable. (onload): Add LDPT_GET_SYMBOLS_V2. (all_symbols_read_hook): Use get_symbols_v2; check for LDPR_PREVAILING_DEF_IRONLY_EXP. * testsuite/plugin_test_3.sh: Update expected results. --- include/ChangeLog | 7 +++++++ include/plugin-api.h | 11 +++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/include/ChangeLog b/include/ChangeLog index fb7285a65..cef3f201d 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,10 @@ +2011-09-26 Cary Coutant + + gcc PR lto/47247 + * plugin-api.h (enum ld_plugin_symbol_resolution): Add + LDPR_PREVAILING_DEF_IRONLY_EXP. + (enum ld_plugin_tag): Add LDPT_GET_SYMBOLS_V2. + 2011-09-23 Cary Coutant PR 40831 diff --git a/include/plugin-api.h b/include/plugin-api.h index df0039372..122424c6c 100644 --- a/include/plugin-api.h +++ b/include/plugin-api.h @@ -155,7 +155,13 @@ enum ld_plugin_symbol_resolution LDPR_RESOLVED_EXEC, /* This symbol was resolved by a definition in a shared object. */ - LDPR_RESOLVED_DYN + LDPR_RESOLVED_DYN, + + /* This is the prevailing definition of the symbol, with no + references from regular objects. It is only referenced from IR + code, but the symbol is exported and may be referenced from + a dynamic object (not seen at link time). */ + LDPR_PREVAILING_DEF_IRONLY_EXP }; /* The plugin library's "claim file" handler. */ @@ -347,7 +353,8 @@ enum ld_plugin_tag LDPT_GET_INPUT_SECTION_NAME, LDPT_GET_INPUT_SECTION_CONTENTS, LDPT_UPDATE_SECTION_ORDER, - LDPT_ALLOW_SECTION_ORDERING + LDPT_ALLOW_SECTION_ORDERING, + LDPT_GET_SYMBOLS_V2 }; /* The plugin transfer vector. */