From f9a0d0a5f9a982a64b5c6f235928f4845bd3ca69 Mon Sep 17 00:00:00 2001 From: Adrian Dudau Date: Thu, 27 Oct 2016 14:11:32 +0200 Subject: Revert "binutils: revert to version 2.25.1 for e500mc targets" This reverts commit 043564f3b4dc1d2801c2170e92ec4b84403a1d0d. The boot issue that originally caused this commit has been fixed in the 4.1 kernel. Signed-off-by: Adrian Dudau Signed-off-by: Martin Borg Conflicts: conf/layer.conf --- ...-list-so-that-symbols-not-in-the-list-are.patch | 131 --------------------- 1 file changed, 131 deletions(-) delete mode 100644 recipes-devtools/binutils/binutils/0015-Fix-dynamic-list-so-that-symbols-not-in-the-list-are.patch (limited to 'recipes-devtools/binutils/binutils/0015-Fix-dynamic-list-so-that-symbols-not-in-the-list-are.patch') diff --git a/recipes-devtools/binutils/binutils/0015-Fix-dynamic-list-so-that-symbols-not-in-the-list-are.patch b/recipes-devtools/binutils/binutils/0015-Fix-dynamic-list-so-that-symbols-not-in-the-list-are.patch deleted file mode 100644 index ee49c38..0000000 --- a/recipes-devtools/binutils/binutils/0015-Fix-dynamic-list-so-that-symbols-not-in-the-list-are.patch +++ /dev/null @@ -1,131 +0,0 @@ -From e9c1bdad269c0c3352eebcc9481ed65144001b0b Mon Sep 17 00:00:00 2001 -From: Cary Coutant -Date: Mon, 16 Feb 2015 22:15:12 -0800 -Subject: [PATCH] Fix --dynamic-list so that symbols not in the list are still - exported. - -In PR 13577, the complaint was that -Bsymbolic was overriding the binding -behavior for symbols listed in the --dynamic-list by setting the DT_SYMBOLIC -tag in the dynamic table. In reading the Gnu ld manual, I decided that ---dynamic-list should be mutually exclusive of -Bsymbolic, and modified -gold so that --dynamic-list would treat symbols listed as preemptible, -and all other symbols as internally bound. I was wrong. - -PR 16992 shows that with --dynamic-list (and not -Bsymbolic), a symbol -not listed in the dynamic list is being internally bound within the -shared library, but because it's still in the dynamic symbol table, we -expose it to a COPY relocation, and things go really bad from there. - -(I can reproduce the same failure, simply by turning on -Bsymbolic-functions -with the Gnu linker. Even though the symbol is bound internally, it's -still exported to the dynamic symbol table, and is exposed to a COPY -relocation.) - -I've backed out part of the fix for PR 13577, and -Bsymbolic (or --Bsymbolic-functions) can now be used with --dynamic-list, but if the -two are used together, we do not set DT_SYMBOLIC or DF_SYMBOLIC -(this matches Gnu ld behavior). We now treat symbols listed in the -dynamic list as premptible, but we do not automatically treat symbols -not listed there as non-premptible. - -gold/ - PR gold/13577 - PR gold/16992 - * layout.cc (Layout::finish_dynamic_section): Don't set DT_SYMBOLIC or - DF_SYMBOLIC if --dynamic-list option is used. - * options.cc (General_options::finalize): --dynamic-list is not - mutually exclusive with -Bsymbolic. - * symtab.h (Symbol::is_preemptible): Don't exclude dynamic symbols not - listed in --dynamic-list. - * testsuite/Makefile.am (dynamic_list_lib2.so): Add - -Bsymbolic-functions. - * testsuite/Makefile.in: Regenerate. ---- -Upstream-Status: Backport - - gold/ChangeLog | 14 ++++++++++++++ - gold/layout.cc | 3 ++- - gold/options.cc | 7 ------- - gold/symtab.h | 6 ++---- - gold/testsuite/Makefile.am | 2 +- - gold/testsuite/Makefile.in | 2 +- - 6 files changed, 20 insertions(+), 14 deletions(-) - -diff --git a/gold/layout.cc b/gold/layout.cc -index bcdaac8..7836640 100644 ---- a/gold/layout.cc -+++ b/gold/layout.cc -@@ -4873,7 +4873,8 @@ Layout::finish_dynamic_section(const Input_objects* input_objects, - flags |= elfcpp::DF_STATIC_TLS; - if (parameters->options().origin()) - flags |= elfcpp::DF_ORIGIN; -- if (parameters->options().Bsymbolic()) -+ if (parameters->options().Bsymbolic() -+ && !parameters->options().have_dynamic_list()) - { - flags |= elfcpp::DF_SYMBOLIC; - // Add DT_SYMBOLIC for compatibility with older loaders. -diff --git a/gold/options.cc b/gold/options.cc -index 7eb8f27..7f1f69e 100644 ---- a/gold/options.cc -+++ b/gold/options.cc -@@ -1200,13 +1200,6 @@ General_options::finalize() - // in the path, as appropriate. - this->add_sysroot(); - -- // --dynamic-list overrides -Bsymbolic and -Bsymbolic-functions. -- if (this->have_dynamic_list()) -- { -- this->set_Bsymbolic(false); -- this->set_Bsymbolic_functions(false); -- } -- - // Now that we've normalized the options, check for contradictory ones. - if (this->shared() && this->is_static()) - gold_fatal(_("-shared and -static are incompatible")); -diff --git a/gold/symtab.h b/gold/symtab.h -index aa0cb68..9413360 100644 ---- a/gold/symtab.h -+++ b/gold/symtab.h -@@ -604,10 +604,8 @@ class Symbol - if (parameters->options().in_dynamic_list(this->name())) - return true; - -- // If the user used -Bsymbolic or provided a --dynamic-list script, -- // then nothing (else) is preemptible. -- if (parameters->options().Bsymbolic() -- || parameters->options().have_dynamic_list()) -+ // If the user used -Bsymbolic, then nothing (else) is preemptible. -+ if (parameters->options().Bsymbolic()) - return false; - - // If the user used -Bsymbolic-functions, then functions are not -diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am -index f767c21..7b73f9d 100644 ---- a/gold/testsuite/Makefile.am -+++ b/gold/testsuite/Makefile.am -@@ -1518,7 +1518,7 @@ dynamic_list_lib1.o: dynamic_list_lib1.cc - $(CXXCOMPILE) -c -fpic -o $@ $< - - dynamic_list_lib2.so: gcctestdir/ld dynamic_list_lib2.o $(srcdir)/dynamic_list_2.t -- $(CXXLINK) -Bgcctestdir/ -shared -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o -+ $(CXXLINK) -Bgcctestdir/ -shared -Wl,-Bsymbolic-functions -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o - dynamic_list_lib2.o: dynamic_list_lib2.cc - $(CXXCOMPILE) -c -fpic -o $@ $< - -diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in -index 217e472..b4ae3fd 100644 ---- a/gold/testsuite/Makefile.in -+++ b/gold/testsuite/Makefile.in -@@ -5319,7 +5319,7 @@ uninstall-am: - @GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $< - - @GCC_TRUE@@NATIVE_LINKER_TRUE@dynamic_list_lib2.so: gcctestdir/ld dynamic_list_lib2.o $(srcdir)/dynamic_list_2.t --@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o -+@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared -Wl,-Bsymbolic-functions -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o - @GCC_TRUE@@NATIVE_LINKER_TRUE@dynamic_list_lib2.o: dynamic_list_lib2.cc - @GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $< - --- -1.9.1 - -- cgit v1.2.3-54-g00ecf