Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1396)

Unified Diff: third_party/binutils/plugin-dso-fix.patch

Issue 1950343004: Update third_party/binutils to 2.26, add ICF fix (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/binutils/long-plt.patch ('k') | third_party/binutils/unlock-thin.patch » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/binutils/plugin-dso-fix.patch
diff --git a/third_party/binutils/plugin-dso-fix.patch b/third_party/binutils/plugin-dso-fix.patch
deleted file mode 100644
index 558975686dce55a65cb43faca3bb2e8d5481d602..0000000000000000000000000000000000000000
--- a/third_party/binutils/plugin-dso-fix.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-commit 3c537f7fdb11f02f7082749f3f21dfdd2c2025e8
-Author: Peter Collingbourne <pcc@google.com>
-Date: Wed Feb 4 09:47:28 2015 -0800
-
- Resolve forwarding symbols in plugins.
-
- 2015-02-04 Peter Collingbourne <pcc@google.com>
-
- * plugin.cc (Pluginobj::get_symbol_resolution_info): Resolve
- forwarding symbols when computing symbol resolution info for plugins.
-
-diff --git a/gold/plugin.cc b/gold/plugin.cc
-index bde8c78..68da8e3 100644
---- a/gold/plugin.cc
-+++ b/gold/plugin.cc
-@@ -914,7 +914,8 @@ is_visible_from_outside(Symbol* lsym)
- // Get symbol resolution info.
-
- ld_plugin_status
--Pluginobj::get_symbol_resolution_info(int nsyms,
-+Pluginobj::get_symbol_resolution_info(Symbol_table* symtab,
-+ int nsyms,
- ld_plugin_symbol* syms,
- int version) const
- {
-@@ -943,6 +944,8 @@ Pluginobj::get_symbol_resolution_info(int nsyms,
- {
- ld_plugin_symbol* isym = &syms[i];
- Symbol* lsym = this->symbols_[i];
-+ if (lsym->is_forwarder())
-+ lsym = symtab->resolve_forwards(lsym);
- ld_plugin_symbol_resolution res = LDPR_UNKNOWN;
-
- if (lsym->is_undefined())
-@@ -1511,14 +1514,16 @@ static enum ld_plugin_status
- get_symbols(const void* handle, int nsyms, ld_plugin_symbol* syms)
- {
- gold_assert(parameters->options().has_plugins());
-- Object* obj = parameters->options().plugins()->object(
-+ Plugin_manager* plugins = parameters->options().plugins();
-+ Object* obj = plugins->object(
- static_cast<unsigned int>(reinterpret_cast<intptr_t>(handle)));
- if (obj == NULL)
- return LDPS_ERR;
- Pluginobj* plugin_obj = obj->pluginobj();
- if (plugin_obj == NULL)
- return LDPS_ERR;
-- return plugin_obj->get_symbol_resolution_info(nsyms, syms, 1);
-+ Symbol_table* symtab = plugins->symtab();
-+ return plugin_obj->get_symbol_resolution_info(symtab, nsyms, syms, 1);
- }
-
- // Version 2 of the above. The only difference is that this version
-@@ -1528,14 +1533,16 @@ static enum ld_plugin_status
- get_symbols_v2(const void* handle, int nsyms, ld_plugin_symbol* syms)
- {
- gold_assert(parameters->options().has_plugins());
-- Object* obj = parameters->options().plugins()->object(
-+ Plugin_manager* plugins = parameters->options().plugins();
-+ Object* obj = plugins->object(
- static_cast<unsigned int>(reinterpret_cast<intptr_t>(handle)));
- if (obj == NULL)
- return LDPS_ERR;
- Pluginobj* plugin_obj = obj->pluginobj();
- if (plugin_obj == NULL)
- return LDPS_ERR;
-- return plugin_obj->get_symbol_resolution_info(nsyms, syms, 2);
-+ Symbol_table* symtab = plugins->symtab();
-+ return plugin_obj->get_symbol_resolution_info(symtab, nsyms, syms, 2);
- }
-
- // Add a new (real) input file generated by a plugin.
-diff --git a/gold/plugin.h b/gold/plugin.h
-index ef78b84..f926879 100644
---- a/gold/plugin.h
-+++ b/gold/plugin.h
-@@ -282,6 +282,10 @@ class Plugin_manager
- input_objects() const
- { return this->input_objects_; }
-
-+ Symbol_table*
-+ symtab()
-+ { return this->symtab_; }
-+
- Layout*
- layout()
- { return this->layout_; }
-@@ -396,7 +400,8 @@ class Pluginobj : public Object
-
- // Fill in the symbol resolution status for the given plugin symbols.
- ld_plugin_status
-- get_symbol_resolution_info(int nsyms,
-+ get_symbol_resolution_info(Symbol_table* symtab,
-+ int nsyms,
- ld_plugin_symbol* syms,
- int version) const;
-
« no previous file with comments | « third_party/binutils/long-plt.patch ('k') | third_party/binutils/unlock-thin.patch » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698