Magellan Linux

Contents of /trunk/binutils/patches/binutils-2.25-qt-gold.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2569 - (show annotations) (download)
Wed Nov 26 00:13:24 2014 UTC (9 years, 5 months ago) by niro
File size: 3299 byte(s)
-fix qt chrashes when linked with gold
1 diff --git a/gold/layout.cc b/gold/layout.cc
2 index bcdaac8..7836640 100644
3 --- a/gold/layout.cc
4 +++ b/gold/layout.cc
5 @@ -4873,7 +4873,8 @@ Layout::finish_dynamic_section(const Input_objects* input_objects,
6 flags |= elfcpp::DF_STATIC_TLS;
7 if (parameters->options().origin())
8 flags |= elfcpp::DF_ORIGIN;
9 - if (parameters->options().Bsymbolic())
10 + if (parameters->options().Bsymbolic()
11 + && !parameters->options().have_dynamic_list())
12 {
13 flags |= elfcpp::DF_SYMBOLIC;
14 // Add DT_SYMBOLIC for compatibility with older loaders.
15 diff --git a/gold/options.cc b/gold/options.cc
16 index 7eb8f27..7f1f69e 100644
17 --- a/gold/options.cc
18 +++ b/gold/options.cc
19 @@ -1200,13 +1200,6 @@ General_options::finalize()
20 // in the path, as appropriate.
21 this->add_sysroot();
22
23 - // --dynamic-list overrides -Bsymbolic and -Bsymbolic-functions.
24 - if (this->have_dynamic_list())
25 - {
26 - this->set_Bsymbolic(false);
27 - this->set_Bsymbolic_functions(false);
28 - }
29 -
30 // Now that we've normalized the options, check for contradictory ones.
31 if (this->shared() && this->is_static())
32 gold_fatal(_("-shared and -static are incompatible"));
33 diff --git a/gold/symtab.h b/gold/symtab.h
34 index aa0cb68..9413360 100644
35 --- a/gold/symtab.h
36 +++ b/gold/symtab.h
37 @@ -604,10 +604,8 @@ class Symbol
38 if (parameters->options().in_dynamic_list(this->name()))
39 return true;
40
41 - // If the user used -Bsymbolic or provided a --dynamic-list script,
42 - // then nothing (else) is preemptible.
43 - if (parameters->options().Bsymbolic()
44 - || parameters->options().have_dynamic_list())
45 + // If the user used -Bsymbolic, then nothing (else) is preemptible.
46 + if (parameters->options().Bsymbolic())
47 return false;
48
49 // If the user used -Bsymbolic-functions, then functions are not
50 diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am
51 index f767c21..7b73f9d 100644
52 --- a/gold/testsuite/Makefile.am
53 +++ b/gold/testsuite/Makefile.am
54 @@ -1518,7 +1518,7 @@ dynamic_list_lib1.o: dynamic_list_lib1.cc
55 $(CXXCOMPILE) -c -fpic -o $@ $<
56
57 dynamic_list_lib2.so: gcctestdir/ld dynamic_list_lib2.o $(srcdir)/dynamic_list_2.t
58 - $(CXXLINK) -Bgcctestdir/ -shared -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
59 + $(CXXLINK) -Bgcctestdir/ -shared -Wl,-Bsymbolic-functions -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
60 dynamic_list_lib2.o: dynamic_list_lib2.cc
61 $(CXXCOMPILE) -c -fpic -o $@ $<
62
63 diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in
64 index 217e472..b4ae3fd 100644
65 --- a/gold/testsuite/Makefile.in
66 +++ b/gold/testsuite/Makefile.in
67 @@ -5319,7 +5319,7 @@ uninstall-am:
68 @GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $<
69
70 @GCC_TRUE@@NATIVE_LINKER_TRUE@dynamic_list_lib2.so: gcctestdir/ld dynamic_list_lib2.o $(srcdir)/dynamic_list_2.t
71 -@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
72 +@GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXLINK) -Bgcctestdir/ -shared -Wl,-Bsymbolic-functions -Wl,--dynamic-list,$(srcdir)/dynamic_list_2.t dynamic_list_lib2.o
73 @GCC_TRUE@@NATIVE_LINKER_TRUE@dynamic_list_lib2.o: dynamic_list_lib2.cc
74 @GCC_TRUE@@NATIVE_LINKER_TRUE@ $(CXXCOMPILE) -c -fpic -o $@ $<
75
76 --
77 1.9.4
78