diff options
Diffstat (limited to 'meta/recipes-devtools/binutils/binutils/0166-2012-04-27-Doug-Kwan-dougkwan-google.com.patch')
-rw-r--r-- | meta/recipes-devtools/binutils/binutils/0166-2012-04-27-Doug-Kwan-dougkwan-google.com.patch | 169 |
1 files changed, 169 insertions, 0 deletions
diff --git a/meta/recipes-devtools/binutils/binutils/0166-2012-04-27-Doug-Kwan-dougkwan-google.com.patch b/meta/recipes-devtools/binutils/binutils/0166-2012-04-27-Doug-Kwan-dougkwan-google.com.patch new file mode 100644 index 0000000000..bd1ff5bd95 --- /dev/null +++ b/meta/recipes-devtools/binutils/binutils/0166-2012-04-27-Doug-Kwan-dougkwan-google.com.patch | |||
@@ -0,0 +1,169 @@ | |||
1 | Upstream-Status: Backport | ||
2 | |||
3 | From b6db4b7975d21ec53da5975ddac021098da13bf3 Mon Sep 17 00:00:00 2001 | ||
4 | From: Doug Kwan <dougkwan@google.com> | ||
5 | Date: Thu, 26 Apr 2012 18:08:19 +0000 | ||
6 | Subject: [PATCH 166/262] 2012-04-27 Doug Kwan <dougkwan@google.com> | ||
7 | |||
8 | Backport from mainline: | ||
9 | |||
10 | 2012-03-16 Doug Kwan <dougkwan@google.com> | ||
11 | |||
12 | * testsuite/Makefile.am: Disable test initpri3b. | ||
13 | * testsuite/Makefile.in: Regenerate. | ||
14 | |||
15 | 2012-03-14 Doug Kwan <dougkwan@google.com> | ||
16 | |||
17 | * gold/arm.cc (Target_arm::Scan::global): Generate | ||
18 | R_ARM_GLOB_DAT dynamic relocations for protected symbols in | ||
19 | shared objects. | ||
20 | --- | ||
21 | gold/ChangeLog | 15 +++++++++++++++ | ||
22 | gold/arm.cc | 4 +++- | ||
23 | gold/testsuite/Makefile.am | 15 ++++++++++----- | ||
24 | gold/testsuite/Makefile.in | 32 +++++++++++++------------------- | ||
25 | 4 files changed, 41 insertions(+), 25 deletions(-) | ||
26 | |||
27 | diff --git a/gold/arm.cc b/gold/arm.cc | ||
28 | index 72c3670..a1e8e4c 100644 | ||
29 | --- a/gold/arm.cc | ||
30 | +++ b/gold/arm.cc | ||
31 | @@ -8374,7 +8374,9 @@ Target_arm<big_endian>::Scan::global(Symbol_table* symtab, | ||
32 | Reloc_section* rel_dyn = target->rel_dyn_section(layout); | ||
33 | if (gsym->is_from_dynobj() | ||
34 | || gsym->is_undefined() | ||
35 | - || gsym->is_preemptible()) | ||
36 | + || gsym->is_preemptible() | ||
37 | + || (gsym->visibility() == elfcpp::STV_PROTECTED | ||
38 | + && parameters->options().shared())) | ||
39 | got->add_global_with_rel(gsym, GOT_TYPE_STANDARD, | ||
40 | rel_dyn, elfcpp::R_ARM_GLOB_DAT); | ||
41 | else | ||
42 | diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am | ||
43 | index 9b8605b..97d6457 100644 | ||
44 | --- a/gold/testsuite/Makefile.am | ||
45 | +++ b/gold/testsuite/Makefile.am | ||
46 | @@ -870,11 +870,16 @@ initpri3a_DEPENDENCIES = gcctestdir/ld | ||
47 | initpri3a_LDFLAGS = -Bgcctestdir/ | ||
48 | initpri3a_LDADD = | ||
49 | |||
50 | -check_PROGRAMS += initpri3b | ||
51 | -initpri3b_SOURCES = initpri3.c | ||
52 | -initpri3b_DEPENDENCIES = gcctestdir/ld | ||
53 | -initpri3b_LDFLAGS = -Bgcctestdir/ -Wl,--no-ctors-in-init-array | ||
54 | -initpri3b_LDADD = | ||
55 | +# This test fails on targets not using .ctors and .dtors sections (e.g. ARM | ||
56 | +# EABI). Given that gcc is moving towards using .init_array in all cases, | ||
57 | +# this test is commented out. A better fix would be checking whether gcc | ||
58 | +# uses .ctors or .init_array sections in configure. | ||
59 | + | ||
60 | +# check_PROGRAMS += initpri3b | ||
61 | +# initpri3b_SOURCES = initpri3.c | ||
62 | +# initpri3b_DEPENDENCIES = gcctestdir/ld | ||
63 | +# initpri3b_LDFLAGS = -Bgcctestdir/ -Wl,--no-ctors-in-init-array | ||
64 | +# initpri3b_LDADD = | ||
65 | |||
66 | # Test --detect-odr-violations | ||
67 | check_SCRIPTS += debug_msg.sh | ||
68 | diff --git a/gold/testsuite/Makefile.in b/gold/testsuite/Makefile.in | ||
69 | index 785dcdd..518d32b 100644 | ||
70 | --- a/gold/testsuite/Makefile.in | ||
71 | +++ b/gold/testsuite/Makefile.in | ||
72 | @@ -56,6 +56,17 @@ check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ | ||
73 | @NATIVE_OR_CROSS_LINKER_TRUE@am__append_1 = object_unittest \ | ||
74 | @NATIVE_OR_CROSS_LINKER_TRUE@ binary_unittest | ||
75 | |||
76 | +# This test fails on targets not using .ctors and .dtors sections (e.g. ARM | ||
77 | +# EABI). Given that gcc is moving towards using .init_array in all cases, | ||
78 | +# this test is commented out. A better fix would be checking whether gcc | ||
79 | +# uses .ctors or .init_array sections in configure. | ||
80 | + | ||
81 | +# check_PROGRAMS += initpri3b | ||
82 | +# initpri3b_SOURCES = initpri3.c | ||
83 | +# initpri3b_DEPENDENCIES = gcctestdir/ld | ||
84 | +# initpri3b_LDFLAGS = -Bgcctestdir/ -Wl,--no-ctors-in-init-array | ||
85 | +# initpri3b_LDADD = | ||
86 | + | ||
87 | # Test --detect-odr-violations | ||
88 | |||
89 | # Similar to --detect-odr-violations: check for undefined symbols in .so's | ||
90 | @@ -189,7 +200,7 @@ check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ | ||
91 | # Test -o when emitting to a special file (such as something in /dev). | ||
92 | @GCC_TRUE@@NATIVE_LINKER_TRUE@am__append_24 = many_sections_test \ | ||
93 | @GCC_TRUE@@NATIVE_LINKER_TRUE@ many_sections_r_test initpri1 \ | ||
94 | -@GCC_TRUE@@NATIVE_LINKER_TRUE@ initpri2 initpri3a initpri3b \ | ||
95 | +@GCC_TRUE@@NATIVE_LINKER_TRUE@ initpri2 initpri3a \ | ||
96 | @GCC_TRUE@@NATIVE_LINKER_TRUE@ flagstest_o_specialfile | ||
97 | @GCC_FALSE@many_sections_test_DEPENDENCIES = | ||
98 | @NATIVE_LINKER_FALSE@many_sections_test_DEPENDENCIES = | ||
99 | @@ -204,8 +215,6 @@ check_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \ | ||
100 | @NATIVE_LINKER_FALSE@initpri2_DEPENDENCIES = | ||
101 | @GCC_FALSE@initpri3a_DEPENDENCIES = | ||
102 | @NATIVE_LINKER_FALSE@initpri3a_DEPENDENCIES = | ||
103 | -@GCC_FALSE@initpri3b_DEPENDENCIES = | ||
104 | -@NATIVE_LINKER_FALSE@initpri3b_DEPENDENCIES = | ||
105 | |||
106 | # Check that --detect-odr-violations works with compressed debug sections. | ||
107 | @GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@am__append_27 = debug_msg_cdebug.err | ||
108 | @@ -712,7 +721,6 @@ libgoldtest_a_OBJECTS = $(am_libgoldtest_a_OBJECTS) | ||
109 | @GCC_TRUE@@NATIVE_LINKER_TRUE@ initpri1$(EXEEXT) \ | ||
110 | @GCC_TRUE@@NATIVE_LINKER_TRUE@ initpri2$(EXEEXT) \ | ||
111 | @GCC_TRUE@@NATIVE_LINKER_TRUE@ initpri3a$(EXEEXT) \ | ||
112 | -@GCC_TRUE@@NATIVE_LINKER_TRUE@ initpri3b$(EXEEXT) \ | ||
113 | @GCC_TRUE@@NATIVE_LINKER_TRUE@ flagstest_o_specialfile$(EXEEXT) | ||
114 | @GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@am__EXEEXT_21 = flagstest_compress_debug_sections$(EXEEXT) \ | ||
115 | @GCC_TRUE@@HAVE_ZLIB_TRUE@@NATIVE_LINKER_TRUE@ flagstest_o_specialfile_and_compress_debug_sections$(EXEEXT) | ||
116 | @@ -1200,11 +1208,6 @@ initpri2_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(initpri2_LDFLAGS) \ | ||
117 | initpri3a_OBJECTS = $(am_initpri3a_OBJECTS) | ||
118 | initpri3a_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(initpri3a_LDFLAGS) \ | ||
119 | $(LDFLAGS) -o $@ | ||
120 | -@GCC_TRUE@@NATIVE_LINKER_TRUE@am_initpri3b_OBJECTS = \ | ||
121 | -@GCC_TRUE@@NATIVE_LINKER_TRUE@ initpri3.$(OBJEXT) | ||
122 | -initpri3b_OBJECTS = $(am_initpri3b_OBJECTS) | ||
123 | -initpri3b_LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(initpri3b_LDFLAGS) \ | ||
124 | - $(LDFLAGS) -o $@ | ||
125 | @GCC_TRUE@@NATIVE_LINKER_TRUE@am_justsyms_OBJECTS = \ | ||
126 | @GCC_TRUE@@NATIVE_LINKER_TRUE@ justsyms_1.$(OBJEXT) | ||
127 | justsyms_OBJECTS = $(am_justsyms_OBJECTS) | ||
128 | @@ -1698,7 +1701,7 @@ SOURCES = $(libgoldtest_a_SOURCES) basic_pic_test.c basic_pie_test.c \ | ||
129 | incremental_copy_test.c incremental_test_2.c \ | ||
130 | incremental_test_3.c incremental_test_4.c incremental_test_5.c \ | ||
131 | incremental_test_6.c $(initpri1_SOURCES) $(initpri2_SOURCES) \ | ||
132 | - $(initpri3a_SOURCES) $(initpri3b_SOURCES) $(justsyms_SOURCES) \ | ||
133 | + $(initpri3a_SOURCES) $(justsyms_SOURCES) \ | ||
134 | $(justsyms_exec_SOURCES) $(large_SOURCES) local_labels_test.c \ | ||
135 | many_sections_r_test.c $(many_sections_test_SOURCES) \ | ||
136 | $(object_unittest_SOURCES) permission_test.c plugin_test_1.c \ | ||
137 | @@ -2281,10 +2284,6 @@ LDADD = libgoldtest.a ../libgold.a ../../libiberty/libiberty.a $(LIBINTL) \ | ||
138 | @GCC_TRUE@@NATIVE_LINKER_TRUE@initpri3a_DEPENDENCIES = gcctestdir/ld | ||
139 | @GCC_TRUE@@NATIVE_LINKER_TRUE@initpri3a_LDFLAGS = -Bgcctestdir/ | ||
140 | @GCC_TRUE@@NATIVE_LINKER_TRUE@initpri3a_LDADD = | ||
141 | -@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri3b_SOURCES = initpri3.c | ||
142 | -@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri3b_DEPENDENCIES = gcctestdir/ld | ||
143 | -@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri3b_LDFLAGS = -Bgcctestdir/ -Wl,--no-ctors-in-init-array | ||
144 | -@GCC_TRUE@@NATIVE_LINKER_TRUE@initpri3b_LDADD = | ||
145 | @GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_SOURCES = ver_test_main.cc | ||
146 | @GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_DEPENDENCIES = gcctestdir/ld ver_test_1.so ver_test_2.so ver_test_4.so | ||
147 | @GCC_TRUE@@NATIVE_LINKER_TRUE@ver_test_LDFLAGS = -Bgcctestdir/ -Wl,-R,. | ||
148 | @@ -2928,9 +2927,6 @@ initpri2$(EXEEXT): $(initpri2_OBJECTS) $(initpri2_DEPENDENCIES) | ||
149 | initpri3a$(EXEEXT): $(initpri3a_OBJECTS) $(initpri3a_DEPENDENCIES) | ||
150 | @rm -f initpri3a$(EXEEXT) | ||
151 | $(initpri3a_LINK) $(initpri3a_OBJECTS) $(initpri3a_LDADD) $(LIBS) | ||
152 | -initpri3b$(EXEEXT): $(initpri3b_OBJECTS) $(initpri3b_DEPENDENCIES) | ||
153 | - @rm -f initpri3b$(EXEEXT) | ||
154 | - $(initpri3b_LINK) $(initpri3b_OBJECTS) $(initpri3b_LDADD) $(LIBS) | ||
155 | justsyms$(EXEEXT): $(justsyms_OBJECTS) $(justsyms_DEPENDENCIES) | ||
156 | @rm -f justsyms$(EXEEXT) | ||
157 | $(justsyms_LINK) $(justsyms_OBJECTS) $(justsyms_LDADD) $(LIBS) | ||
158 | @@ -3869,8 +3865,6 @@ initpri2.log: initpri2$(EXEEXT) | ||
159 | @p='initpri2$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) | ||
160 | initpri3a.log: initpri3a$(EXEEXT) | ||
161 | @p='initpri3a$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) | ||
162 | -initpri3b.log: initpri3b$(EXEEXT) | ||
163 | - @p='initpri3b$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) | ||
164 | flagstest_o_specialfile.log: flagstest_o_specialfile$(EXEEXT) | ||
165 | @p='flagstest_o_specialfile$(EXEEXT)'; $(am__check_pre) $(LOG_COMPILE) "$$tst" $(am__check_post) | ||
166 | flagstest_compress_debug_sections.log: flagstest_compress_debug_sections$(EXEEXT) | ||
167 | -- | ||
168 | 1.7.9.5 | ||
169 | |||