xref: /netbsd-src/external/gpl3/binutils.old/dist/gold/ChangeLog-2016 (revision e6c7e151de239c49d2e38720a061ed9d1fa99309)
1*e6c7e151Schristos2016-12-28  Andreas Schwab  <schwab@linux-m68k.org>
2*e6c7e151Schristos
3*e6c7e151Schristos	* copy-relocs.h: Fix comment typo.
4*e6c7e151Schristos
5*e6c7e151Schristos2016-12-28  Cary Coutant  <ccoutant@gmail.com>
6*e6c7e151Schristos
7*e6c7e151Schristos	PR gold/20996
8*e6c7e151Schristos	* object.cc (build_compressed_section_map): Add explicit instantiations.
9*e6c7e151Schristos
10*e6c7e151Schristos2016-12-27  Cary Coutant  <ccoutant@gmail.com>
11*e6c7e151Schristos
12*e6c7e151Schristos	PR ld/20995
13*e6c7e151Schristos	* copy-relocs.cc (Copy_relocs::make_copy_reloc): Use .data.rel.ro for
14*e6c7e151Schristos	read-only data when linking with -z relro.
15*e6c7e151Schristos	* copy-relocs.h (Copy_relocs::dynrelro_): New data member.
16*e6c7e151Schristos	* testsuite/Makefile.am (copy_test_relro): New test case.
17*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
18*e6c7e151Schristos	* testsuite/copy_test_relro.cc: New source file.
19*e6c7e151Schristos	* testsuite/copy_test_relro_1.cc: New source file.
20*e6c7e151Schristos
21*e6c7e151Schristos2016-12-23  Cary Coutant  <ccoutant@gmail.com>
22*e6c7e151Schristos
23*e6c7e151Schristos	* NEWS: Add new features in 1.14.
24*e6c7e151Schristos	* version.cc (version_string): Bump to 1.14.
25*e6c7e151Schristos
26*e6c7e151Schristos2016-12-22  Cary Coutant  <ccoutant@gmail.com>
27*e6c7e151Schristos
28*e6c7e151Schristos	PR gold/17643
29*e6c7e151Schristos	* options.h (-z bndplt): New option.
30*e6c7e151Schristos	* x86_64.cc (Output_data_plt_x86_64::regular_count): New method.
31*e6c7e151Schristos	(Output_data_plt_x86_64::address_for_global): Move implementation into
32*e6c7e151Schristos	virtual method.
33*e6c7e151Schristos	(Output_data_plt_x86_64::address_for_local): Likewise.
34*e6c7e151Schristos	(Output_data_plt_x86_64::got): New method.
35*e6c7e151Schristos	(Output_data_plt_x86_64::got_plt): New method.
36*e6c7e151Schristos	(Output_data_plt_x86_64::got_irelative): New method.
37*e6c7e151Schristos	(Output_data_plt_x86_64::do_address_for_global): New virtual method.
38*e6c7e151Schristos	(Output_data_plt_x86_64::do_address_for_local): New virtual method.
39*e6c7e151Schristos	(class Output_data_plt_x86_64_bnd): New class.
40*e6c7e151Schristos	(Target_x86_64::do_make_data_plt): Move out of line and specialize
41*e6c7e151Schristos	for each size (both overloads).
42*e6c7e151Schristos	(Output_data_plt_x86_64::set_final_data_size): Cosmetic changes.
43*e6c7e151Schristos	* testsuite/Makefile.am (bnd_plt_1): New test case.
44*e6c7e151Schristos	(bnd_ifunc_1): New test case.
45*e6c7e151Schristos	(bnd_ifunc_2): New test case.
46*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
47*e6c7e151Schristos	* testsuite/bnd_ifunc_1.s: New source file.
48*e6c7e151Schristos	* testsuite/bnd_ifunc_1.sh: New shell script.
49*e6c7e151Schristos	* testsuite/bnd_ifunc_2.s: New source file.
50*e6c7e151Schristos	* testsuite/bnd_ifunc_2.sh: New shell script.
51*e6c7e151Schristos	* testsuite/bnd_plt_1.s: New source file.
52*e6c7e151Schristos	* testsuite/bnd_plt_1.sh: New shell script.
53*e6c7e151Schristos
54*e6c7e151Schristos2016-12-22  Cary Coutant  <ccoutant@gmail.com>
55*e6c7e151Schristos
56*e6c7e151Schristos	* layout.cc (Layout::finalize): Track count of forced-local symbols
57*e6c7e151Schristos	in .dynsym.
58*e6c7e151Schristos	(Layout::create_symtab_sections): Add local_dynamic_count parameter;
59*e6c7e151Schristos	use that instead of sh_info value.
60*e6c7e151Schristos	(Layout::create_dynamic_symtab): Add pforced_local_dynamic_count
61*e6c7e151Schristos	parameter; pass it to Symtab::set_dynsym_indexes().  Include forced
62*e6c7e151Schristos	locals in sh_info value.  Pass index of first real global to
63*e6c7e151Schristos	Dynobj::create_gnu_hash_table() and Dynobj::create_elf_hash_table().
64*e6c7e151Schristos	* layout.h (Layout::create_symtab_sections): Add local_dynamic_count
65*e6c7e151Schristos	parameter.
66*e6c7e151Schristos	(Layout::create_dynamic_symtab): Add pforced_local_dynamic_count
67*e6c7e151Schristos	parameter.
68*e6c7e151Schristos	* symtab.cc (Symbol_table::set_dynsym_indexes): Add pforced_local_count
69*e6c7e151Schristos	parameter.  Process forced-local symbols first and return the count.
70*e6c7e151Schristos	(Symbol_table::finalize): Update comments.
71*e6c7e151Schristos	* symtab.h (Symbol_table::set_dynsym_indexes): Add pforced_local_count
72*e6c7e151Schristos	parameter.
73*e6c7e151Schristos	(Symbol_table::first_dynamic_global_index_): Update comment.
74*e6c7e151Schristos	(Symbol_table::dynamic_count_): Update comment.
75*e6c7e151Schristos	* testsuite/Makefile.am (ifuncmod1.sh): New test case.
76*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
77*e6c7e151Schristos	* testsuite/ifuncmod1.sh: New shell script.
78*e6c7e151Schristos
79*e6c7e151Schristos2016-12-21  Cary Coutant  <ccoutant@gmail.com>
80*e6c7e151Schristos
81*e6c7e151Schristos	* symtab.cc (Symbol_table::define_special_symbol): Add is_forced_local
82*e6c7e151Schristos	parameter; if set, do not check version script.
83*e6c7e151Schristos	(Symbol_table::do_define_in_output_data): Pass is_forced_local for
84*e6c7e151Schristos	STB_LOCAL predefined symbols.
85*e6c7e151Schristos	(Symbol_table::do_define_in_output_segment): Likewise.
86*e6c7e151Schristos	(Symbol_table::do_define_in_output_segment): Likewise.
87*e6c7e151Schristos	(Symbol_table::do_define_as_constant): Likewise.
88*e6c7e151Schristos	* symtab.h (Symbol_table::define_special_symbol): Add is_forced_local
89*e6c7e151Schristos	parameter. Adjust all callers.
90*e6c7e151Schristos	* testsuite/Makefile.am (ver_test_8.sh): New test case.
91*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
92*e6c7e151Schristos	* ver_test_8.sh: New test script.
93*e6c7e151Schristos
94*e6c7e151Schristos2016-12-21  Cary Coutant  <ccoutant@gmail.com>
95*e6c7e151Schristos
96*e6c7e151Schristos	* output.cc (Output_segment::first_section): Return NULL if there are
97*e6c7e151Schristos	no sections in the segment.
98*e6c7e151Schristos	* output.h (Output_segment::first_section_load_address): Assert that
99*e6c7e151Schristos	first section is not NULL.
100*e6c7e151Schristos	* symtab.cc (Symbol_table::sized_write_globals): Attach linker-created
101*e6c7e151Schristos	segment-relative symbols to first section of the segment.
102*e6c7e151Schristos
103*e6c7e151Schristos2016-12-21  Alan Modra  <amodra@gmail.com>
104*e6c7e151Schristos
105*e6c7e151Schristos	* arm.cc: Fix comment chars with high bit set.
106*e6c7e151Schristos
107*e6c7e151Schristos2016-12-20  Cary Coutant  <ccoutant@gmail.com>
108*e6c7e151Schristos
109*e6c7e151Schristos	* testsuite/Makefile.am: Add missing dependencies on gcctestdir/ld
110*e6c7e151Schristos	or ../ld-new.
111*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
112*e6c7e151Schristos
113*e6c7e151Schristos2016-12-19  Cary Coutant  <ccoutant@gmail.com>
114*e6c7e151Schristos
115*e6c7e151Schristos	PR gold/20949
116*e6c7e151Schristos	* script.cc (Lex::get_token): Don't look ahead past NUL characters.
117*e6c7e151Schristos
118*e6c7e151Schristos2016-12-19  Cary Coutant  <ccoutant@gmail.com>
119*e6c7e151Schristos
120*e6c7e151Schristos	PR gold/14676
121*e6c7e151Schristos	PR gold/20983
122*e6c7e151Schristos	* layout.h (Layout::choose_output_section): Add match_input_spec
123*e6c7e151Schristos	parameter. Adjust all callers.
124*e6c7e151Schristos	* layout.cc (Layout::choose_output_section): Likewise.  Pass
125*e6c7e151Schristos	match_input_spec to Script_sections::output_section_name().
126*e6c7e151Schristos	(Layout::create_note): Pass true for match_input_spec.
127*e6c7e151Schristos	* script-sections.h (Script_sections::output_section_name): Add
128*e6c7e151Schristos	match_input_spec parameter.
129*e6c7e151Schristos	* script-sections.cc (Sections_element::output_section_name): Likewise.
130*e6c7e151Schristos	(Output_section_definition::output_section_name): Likewise.
131*e6c7e151Schristos	(Script_sections::output_section_name): Likewise.
132*e6c7e151Schristos
133*e6c7e151Schristos2016-12-19  Igor Kudrin  <ikudrin@accesssoftek.com>
134*e6c7e151Schristos
135*e6c7e151Schristos	* arm.cc (Target_arm::Target_arm): Move initialization code ...
136*e6c7e151Schristos	(Target_arm::do_select_as_default_target): ... to here.
137*e6c7e151Schristos	* testsuite/Makefile.am (arm_target_lazy_init): New test case.
138*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
139*e6c7e151Schristos	* testsuite/arm_target_lazy_init.s: New source file.
140*e6c7e151Schristos	* testsuite/arm_target_lazy_init.t: New linker script.
141*e6c7e151Schristos
142*e6c7e151Schristos2016-12-19  Cary Coutant  <ccoutant@gmail.com>
143*e6c7e151Schristos
144*e6c7e151Schristos	PR gold/20976
145*e6c7e151Schristos	* symtab.cc (Symbol_table::sized_write_globals): Use address of
146*e6c7e151Schristos	output section, not input section.
147*e6c7e151Schristos	* testsuite/Makefile.am (pr20976): New test case.
148*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
149*e6c7e151Schristos	* testsuite/pr20976.c: New source file.
150*e6c7e151Schristos
151*e6c7e151Schristos2016-12-13  Cary Coutant  <ccoutant@gmail.com>
152*e6c7e151Schristos
153*e6c7e151Schristos	PR gold/20749
154*e6c7e151Schristos	* options.h (--orphan-handling): New option.
155*e6c7e151Schristos	(General_options::Orphan_handling): New enum.
156*e6c7e151Schristos	(General_options::orphan_handling_enum): New method.
157*e6c7e151Schristos	(General_options::set_orphan_handling_enum): New method.
158*e6c7e151Schristos	(General_options::orphan_handling_enum_): New data member.
159*e6c7e151Schristos	* options.cc (General_options::General_options): Initialize new member.
160*e6c7e151Schristos	(General_options::finalize): Convert --orphan-handling argument to enum.
161*e6c7e151Schristos	* script-sections.cc (Script_sections::output_section_name): Check it.
162*e6c7e151Schristos
163*e6c7e151Schristos2016-12-13  Cary Coutant  <ccoutant@gmail.com>
164*e6c7e151Schristos
165*e6c7e151Schristos	PR gold/20522
166*e6c7e151Schristos	* layout.cc (Layout::choose_output_section): Add is_reloc parameter.
167*e6c7e151Schristos	Adjust all callers.  Do not use linker script for is_reloc sections.
168*e6c7e151Schristos	(Layout::layout_reloc): Pass is_reloc == true.
169*e6c7e151Schristos	* layout.h (Layout::choose_output_section): Add is_reloc parameter.
170*e6c7e151Schristos
171*e6c7e151Schristos2016-12-12  Igor Kudrin  <ikudrin@accesssoftek.com>
172*e6c7e151Schristos	    Cary Coutant  <ccoutant@gmail.com>
173*e6c7e151Schristos
174*e6c7e151Schristos	PR gold/14676
175*e6c7e151Schristos	* script-sections.cc (Output_section_definition::output_section_name):
176*e6c7e151Schristos	For linker-generated sections, compare with output section name.
177*e6c7e151Schristos	* testsuite/Makefile.am (script_test_13): New test.
178*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
179*e6c7e151Schristos	* testsuite/script_test_13.c: New source file.
180*e6c7e151Schristos	* testsuite/script_test_13.sh: New script.
181*e6c7e151Schristos	* testsuite/script_test_13.t: New linker script.
182*e6c7e151Schristos
183*e6c7e151Schristos2016-12-12  Cary Coutant  <ccoutant@gmail.com>
184*e6c7e151Schristos
185*e6c7e151Schristos	* script-sections.cc (Orphan_section_placement::update_last_alloc):
186*e6c7e151Schristos	New method.
187*e6c7e151Schristos	(Orphan_section_placement::find_place): Place orphan .data section
188*e6c7e151Schristos	after either RODATA or TEXT.
189*e6c7e151Schristos	(Script_sections::place_orphan): Call update_last_alloc for allocated
190*e6c7e151Schristos	sections.
191*e6c7e151Schristos	(Script_sections::create_segments): Improve handling of BSS.
192*e6c7e151Schristos
193*e6c7e151Schristos2016-12-13  Alan Modra  <amodra@gmail.com>
194*e6c7e151Schristos
195*e6c7e151Schristos	PR gold/16711
196*e6c7e151Schristos	* testsuite/script_test_15a.sh: Allows larger p_filesz.
197*e6c7e151Schristos	* testsuite/script_test_15b.sh: Likewise.
198*e6c7e151Schristos	* testsuite/script_test_15c.sh: Likewise.
199*e6c7e151Schristos
200*e6c7e151Schristos2016-12-13  Alan Modra  <amodra@gmail.com>
201*e6c7e151Schristos
202*e6c7e151Schristos	PR gold/20717
203*e6c7e151Schristos	* testsuite/pr20717.t: Add .got output section containing .toc.
204*e6c7e151Schristos
205*e6c7e151Schristos2016-12-11  Igor Kudrin  <ikudrin@accesssoftek.com>
206*e6c7e151Schristos
207*e6c7e151Schristos	PR gold/20717
208*e6c7e151Schristos	* testsuite/Makefile.am (pr20717): New test.
209*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
210*e6c7e151Schristos	* testsuite/pr20717.c: New test source file.
211*e6c7e151Schristos	* testsuite/pr20717.sh: New test script.
212*e6c7e151Schristos	* testsuite/pr20717.t: New test linker script.
213*e6c7e151Schristos
214*e6c7e151Schristos2016-12-11  Cary Coutant  <ccoutant@gmail.com>
215*e6c7e151Schristos
216*e6c7e151Schristos	PR gold/16711
217*e6c7e151Schristos	* output.cc (Output_section::set_final_data_size): Calculate data size
218*e6c7e151Schristos	based on relative offset rather than file offset.
219*e6c7e151Schristos	(Output_segment::set_section_addresses): Track file offset separately
220*e6c7e151Schristos	from address offset.
221*e6c7e151Schristos	(Output_segment::set_section_list_addresses): Add pfoff parameter.
222*e6c7e151Schristos	Track file offset separately.  Don't move file offset for BSS
223*e6c7e151Schristos	sections.
224*e6c7e151Schristos	* output.h (Output_segment::set_section_list_addresses): Add pfoff
225*e6c7e151Schristos	parameter.
226*e6c7e151Schristos	* script-sections.cc (Orphan_section_placement): Add PLACE_LAST_ALLOC.
227*e6c7e151Schristos	(Orphan_section_placement::Orphan_section_placement): Initialize it.
228*e6c7e151Schristos	(Orphan_section_placement::output_section_init): Track last allocated
229*e6c7e151Schristos	section.
230*e6c7e151Schristos	(Orphan_section_placement::find_place): Place BSS after last allocated
231*e6c7e151Schristos	section.
232*e6c7e151Schristos	(Output_section_element_input::set_section_addresses): Always override
233*e6c7e151Schristos	input section alignment when SUBALIGN is specified.
234*e6c7e151Schristos	(Output_section_definition::set_section_addresses): Override alignment
235*e6c7e151Schristos	of output section when SUBALIGN is specified.
236*e6c7e151Schristos
237*e6c7e151Schristos	* testsuite/Makefile.am (script_test_15a, script_test_15b)
238*e6c7e151Schristos	(script_test_15c): New test cases.
239*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
240*e6c7e151Schristos	* testsuite/script_test_2.cc: Adjust expected layout.
241*e6c7e151Schristos	* testsuite/script_test_15.c: New source file.
242*e6c7e151Schristos	* testsuite/script_test_15a.sh: New shell script.
243*e6c7e151Schristos	* testsuite/script_test_15a.t: New linker script.
244*e6c7e151Schristos	* testsuite/script_test_15b.sh: New shell script.
245*e6c7e151Schristos	* testsuite/script_test_15b.t: New linker script.
246*e6c7e151Schristos	* testsuite/script_test_15c.sh: New shell script.
247*e6c7e151Schristos	* testsuite/script_test_15c.t: New linker script.
248*e6c7e151Schristos
249*e6c7e151Schristos2016-12-08  Alan Modra  <amodra@gmail.com>
250*e6c7e151Schristos
251*e6c7e151Schristos	* powerpc.cc (Powerpc_relobj::stub_table): Return NULL rather
252*e6c7e151Schristos	then asserting.
253*e6c7e151Schristos
254*e6c7e151Schristos2016-12-08  Alan Modra  <amodra@gmail.com>
255*e6c7e151Schristos
256*e6c7e151Schristos	* options.h (--stub-group-multi): Fix typo.
257*e6c7e151Schristos
258*e6c7e151Schristos2016-12-07  Alan Modra  <amodra@gmail.com>
259*e6c7e151Schristos
260*e6c7e151Schristos	* options.h (--stub-group-multi): New PowerPC option.
261*e6c7e151Schristos	* powerpc.cc (Stub_control): Add multi_os_ var and param
262*e6c7e151Schristos	to constructor.  Sort start_ var later.  Comment State.
263*e6c7e151Schristos	(Stub_control::can_add_to_stub_group): Heed multi_os_.
264*e6c7e151Schristos	(Target_powerpc::group_sections): Update.
265*e6c7e151Schristos
266*e6c7e151Schristos2016-12-07  Alan Modra  <amodra@gmail.com>
267*e6c7e151Schristos
268*e6c7e151Schristos	PR gold/20878
269*e6c7e151Schristos	* powerpc.cc (Stub_control): Replace stubs_always_before_branch_
270*e6c7e151Schristos	with stubs_always_after_branch_, group_end_addr_ with
271*e6c7e151Schristos	group_start_addr_.
272*e6c7e151Schristos	(Stub_control::can_add_to_stub_group): Rewrite to suit scanning
273*e6c7e151Schristos	sections by increasing address.
274*e6c7e151Schristos	(Target_powerpc::group_sections): Scan that way.  Delete corner
275*e6c7e151Schristos	case.
276*e6c7e151Schristos	* options.h (--stub-group-size): Update help string.
277*e6c7e151Schristos
278*e6c7e151Schristos2016-12-07  Alan Modra  <amodra@gmail.com>
279*e6c7e151Schristos
280*e6c7e151Schristos	* powerpc.cc (Stub_table_owner): Provide constructor.
281*e6c7e151Schristos	(Powerpc_relobj::set_stub_table): Resize fill with -1.
282*e6c7e151Schristos	(Target_powerpc::Branch_info::make_stub): Provide target debug
283*e6c7e151Schristos	output on returning false.
284*e6c7e151Schristos
285*e6c7e151Schristos2016-12-05  Cary Coutant  <ccoutant@gmail.com>
286*e6c7e151Schristos	    Tristan Gingold  <gingold@adacore.com>
287*e6c7e151Schristos
288*e6c7e151Schristos	* object.cc (Sized_relobj_file::do_count_local_symbols): Check
289*e6c7e151Schristos	is_ordinary before using shndx.
290*e6c7e151Schristos	* testsuite/Makefile.am (file_in_many_sections_test.sh): New test case.
291*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
292*e6c7e151Schristos	* testsuite/file_in_many_sections.c: New source file.
293*e6c7e151Schristos	* testsuite/file_in_many_sections_test.sh: New script.
294*e6c7e151Schristos
295*e6c7e151Schristos2016-12-01  Cary Coutant  <ccoutant@gmail.com>
296*e6c7e151Schristos	    Igor Kudrin  <ikudrin@accesssoftek.com>
297*e6c7e151Schristos
298*e6c7e151Schristos	PR gold/20717
299*e6c7e151Schristos	* script-sections.cc (Script_sections): Set *keep to false when
300*e6c7e151Schristos	no match.
301*e6c7e151Schristos
302*e6c7e151Schristos2016-12-01  Cary Coutant  <ccoutant@gmail.com>
303*e6c7e151Schristos
304*e6c7e151Schristos	PR gold/20834
305*e6c7e151Schristos	* target.h (Target::default_text_segment_address): Bump default
306*e6c7e151Schristos	start address up to ABI page size.
307*e6c7e151Schristos
308*e6c7e151Schristos2016-12-01  Cary Coutant  <ccoutant@gmail.com>
309*e6c7e151Schristos
310*e6c7e151Schristos	PR gold/18989
311*e6c7e151Schristos	* options.cc (General_options::object_format_to_string): New function.
312*e6c7e151Schristos	(General_options::copy_from_posdep_options): New function.
313*e6c7e151Schristos	(General_options::parse_push_state): New function.
314*e6c7e151Schristos	(General_options::parse_pop_state): New function.
315*e6c7e151Schristos	* options.h (--push-state, --pop-state): New options.
316*e6c7e151Schristos	(General_options::object_format_to_string): New method.
317*e6c7e151Schristos	(General_options::set_incremental_disposition): New method.
318*e6c7e151Schristos	(General_options::copy_from_posdep_options): New method.
319*e6c7e151Schristos	(General_options::options_stack_): New data member.
320*e6c7e151Schristos
321*e6c7e151Schristos2016-12-01  Cary Coutant  <ccoutant@gmail.com>
322*e6c7e151Schristos
323*e6c7e151Schristos	PR gold/20807
324*e6c7e151Schristos	* aarch64.cc (Target_aarch64::scan_reloc_section_for_stubs): Handle
325*e6c7e151Schristos	section symbols correctly.
326*e6c7e151Schristos	* arm.cc (Target_arm): Likewise.
327*e6c7e151Schristos	* powerpc.cc (Target_powerpc): Likewise.
328*e6c7e151Schristos
329*e6c7e151Schristos2016-11-27  Ambrogino Modigliani  <ambrogino.modigliani@gmail.com>
330*e6c7e151Schristos
331*e6c7e151Schristos	* aarch64-reloc.def: Fix spelling in comments.
332*e6c7e151Schristos
333*e6c7e151Schristos2016-11-27  Ambrogino Modigliani  <ambrogino.modigliani@gmail.com>
334*e6c7e151Schristos
335*e6c7e151Schristos	* aarch64.cc: Fix spelling in comments.
336*e6c7e151Schristos	* arm.cc: Fix spelling in comments.
337*e6c7e151Schristos	* icf.cc: Fix spelling in comments.
338*e6c7e151Schristos	* layout.cc: Fix spelling in comments.
339*e6c7e151Schristos	* layout.h: Fix spelling in comments.
340*e6c7e151Schristos	* mips.cc: Fix spelling in comments.
341*e6c7e151Schristos	* output.h: Fix spelling in comments.
342*e6c7e151Schristos	* plugin.h: Fix spelling in comments.
343*e6c7e151Schristos	* script-sections.h: Fix spelling in comments.
344*e6c7e151Schristos	* script.h: Fix spelling in comments.
345*e6c7e151Schristos	* stringpool.h: Fix spelling in comments.
346*e6c7e151Schristos	* tilegx.cc: Fix spelling in comments.
347*e6c7e151Schristos
348*e6c7e151Schristos2016-11-22  Cary Coutant  <ccoutant@gmail.com>
349*e6c7e151Schristos
350*e6c7e151Schristos	PR gold/20346
351*e6c7e151Schristos	* options.cc (One_option::print): Print "(default)" when appropriate.
352*e6c7e151Schristos	* options.h: Clean up and re-sort options.
353*e6c7e151Schristos	(One_option::is_default): New data member.
354*e6c7e151Schristos	(One_option::One_option): Add is_default parameter; adjust all calls.
355*e6c7e151Schristos	(DEFINE_var): Add is_default__ parameter; adjust all calls.
356*e6c7e151Schristos	(DEFINE_bool): Set is_default based on default_value__.
357*e6c7e151Schristos	(DEFINE_bool_ignore): New macro.
358*e6c7e151Schristos	(--no-eh-frame-hdr): New option.
359*e6c7e151Schristos	(--enable-new-dtags): Remove mention of DT_FLAGS.
360*e6c7e151Schristos
361*e6c7e151Schristos2016-11-22  Ambrogino Modigliani  <ambrogino.modigliani@gmail.com>
362*e6c7e151Schristos
363*e6c7e151Schristos	* configure: Regenerate.
364*e6c7e151Schristos
365*e6c7e151Schristos2016-11-21  Cary Coutant  <ccoutant@gmail.com>
366*e6c7e151Schristos
367*e6c7e151Schristos	PR gold/20693
368*e6c7e151Schristos	* gold.cc (queue_middle_tasks): Force valid target earlier.
369*e6c7e151Schristos
370*e6c7e151Schristos2016-11-21  Igor Kudrin  <ikudrin@accesssoftek.com>
371*e6c7e151Schristos
372*e6c7e151Schristos	* layout.cc: Include windows.h and rpcdce.h (for MinGW32).
373*e6c7e151Schristos	(Layout::create_build_id): Generate uuid using UuidCreate().
374*e6c7e151Schristos
375*e6c7e151Schristos2016-11-04  Loïc Yhuel <loic.yhuel@softathome.com>
376*e6c7e151Schristos
377*e6c7e151Schristos	* configure.ac: add missing '$'.
378*e6c7e151Schristos	* configure: Regenerate.
379*e6c7e151Schristos
380*e6c7e151Schristos2016-10-21  Gergely Nagy  <ngg@tresorit.com>
381*e6c7e151Schristos
382*e6c7e151Schristos	PR gold/17704
383*e6c7e151Schristos	* icf.cc (match_sections): Add new parameter section_addraligns.
384*e6c7e151Schristos	Check section alignment and keep the section with the strictest
385*e6c7e151Schristos	alignment.
386*e6c7e151Schristos	(find_identical_sections): New local variable section_addraligns.
387*e6c7e151Schristos	Store each section's alignment.
388*e6c7e151Schristos	* testsuite/pr17704a_test.s: New file.
389*e6c7e151Schristos	* testsuite/Makefile.am (pr17704a_test): New test.
390*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
391*e6c7e151Schristos
392*e6c7e151Schristos2016-10-06  Alan Modra  <amodra@gmail.com>
393*e6c7e151Schristos
394*e6c7e151Schristos	* powerpc.cc (Target_powerpc::Relocate::relocate): Add fall
395*e6c7e151Schristos	through comment.
396*e6c7e151Schristos	* tilegx.cc (Target_tilegx::Relocate::relocate): Likewise.
397*e6c7e151Schristos
398*e6c7e151Schristos2016-10-06  Alan Modra  <amodra@gmail.com>
399*e6c7e151Schristos
400*e6c7e151Schristos	* aarch64.cc: Spell fall through comments as "// Fall through.".
401*e6c7e151Schristos	* arm.cc: Likewise.
402*e6c7e151Schristos	* mips.cc: Likewise.
403*e6c7e151Schristos	* powerpc.cc: Likewise.
404*e6c7e151Schristos	* s390.cc: Likewise.
405*e6c7e151Schristos	* sparc.cc: Likewise.
406*e6c7e151Schristos	* x86_64.cc: Likewise.
407*e6c7e151Schristos	* powerpc.cc (Target_powerpc::Relocate::relocate): Add missing
408*e6c7e151Schristos	fall through comments.
409*e6c7e151Schristos	* sparc.cc: (Target_sparc::Scan::global): Likewise.
410*e6c7e151Schristos	(Target_sparc::Relocate::relocate): Likewise.
411*e6c7e151Schristos	* tilegx.cc (Target_tilegx::Relocate::relocate): Likewise.
412*e6c7e151Schristos	* resolve.cc (symbol_to_bits): Add missing break.
413*e6c7e151Schristos
414*e6c7e151Schristos2016-09-26  Cary Coutant  <ccoutant@gmail.com>
415*e6c7e151Schristos
416*e6c7e151Schristos	PR gold/20238
417*e6c7e151Schristos	* symtab.cc (Symbol_table::define_default_version): Check that
418*e6c7e151Schristos	unversioned symbol is defined.
419*e6c7e151Schristos
420*e6c7e151Schristos2016-09-26  Vlad Zakharov  <vzakhar@synopsys.com>
421*e6c7e151Schristos
422*e6c7e151Schristos	* Makefile.in: Regenerate.
423*e6c7e151Schristos	* configure: Likewise.
424*e6c7e151Schristos	* testsuite/Makefile.in: Likewise.
425*e6c7e151Schristos
426*e6c7e151Schristos2016-09-26  Alan Modra  <amodra@gmail.com>
427*e6c7e151Schristos
428*e6c7e151Schristos	* aarch64.cc (Target_aarch64::is_erratum_835769_sequence): Avoid
429*e6c7e151Schristos	compiler warning.
430*e6c7e151Schristos	* output.cc (Output_segment::set_section_addresses): Likewise.
431*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
432*e6c7e151Schristos
433*e6c7e151Schristos2016-09-02  Doug Kwan  <dougkwan@google.com>
434*e6c7e151Schristos
435*e6c7e151Schristos	* arm.cc (Target_arm::Target_arm): Move method definition outside of
436*e6c7e151Schristos	class definition.  Add code to handle --target1-rel, --target1-abs
437*e6c7e151Schristos	and --target2= options.
438*e6c7e151Schristos	(Target_arm::get_reloc_reloc_type): Change method to be non-static
439*e6c7e151Schristos	and const.
440*e6c7e151Schristos	(Target_arm::target1_is_rel_, Target_arm::target2_reloc_): New data
441*e6c7e151Schristos	member declaration.
442*e6c7e151Schristos	(Target_arm::Scan::local, Target_arm::Scan::global,
443*e6c7e151Schristos	Target_arm::Relocate::relocate,
444*e6c7e151Schristos	Target_arm::Relocatable_size_for_reloc::get_size_for_reloc): Adjust
445*e6c7e151Schristos	call to Target_arm::get_real_reloc_type.
446*e6c7e151Schristos	(Target_arm::get_real_reloc_type): Use command line options to
447*e6c7e151Schristos	determine real types of R_ARM_TARGET1 and R_ARM_TARGET2.
448*e6c7e151Schristos	* options.h (--target1-rel, --target1-abs, --target2): New ARM-only
449*e6c7e151Schristos	options.
450*e6c7e151Schristos
451*e6c7e151Schristos2016-08-31  Alan Modra  <amodra@gmail.com>
452*e6c7e151Schristos
453*e6c7e151Schristos	* powerpc.cc (class Stub_control): Delete stub14_group_size_
454*e6c7e151Schristos	and has14_.  Add group_size_.
455*e6c7e151Schristos	(Stub_control::can_add_to_stub_group): Adjust to suit.  Print
456*e6c7e151Schristos	debug info when switching to adding sections before stubs.
457*e6c7e151Schristos
458*e6c7e151Schristos2016-08-31  Alan Modra  <amodra@gmail.com>
459*e6c7e151Schristos
460*e6c7e151Schristos	* debug.h (DEBUG_TARGET): New.
461*e6c7e151Schristos	(DEBUG_ALL): Add DEBUG_TARGET.
462*e6c7e151Schristos	(gold_debug): Delete FORMAT param.
463*e6c7e151Schristos	* powerpc.cc (Stub_control::can_add_to_stub_group): Print debug ourput.
464*e6c7e151Schristos
465*e6c7e151Schristos2016-08-30  Alan Modra  <amodra@gmail.com>
466*e6c7e151Schristos
467*e6c7e151Schristos	PR 20523
468*e6c7e151Schristos	* powerpc.cc (class Stub_control): Add has14_.  Comment owner_.
469*e6c7e151Schristos	(Stub_control::can_add_to_stub_group): Correct grouping of
470*e6c7e151Schristos	sections containing 14-bit external branches.  When returning
471*e6c7e151Schristos	false, set state_ to reflect the fact that we have one section
472*e6c7e151Schristos	for the next group.  Rewrite most of function for clarity.
473*e6c7e151Schristos	Add and expand comments.
474*e6c7e151Schristos	(Target_powerpc::do_relax): Print stub group size retry in hex.
475*e6c7e151Schristos
476*e6c7e151Schristos2016-08-26  Han Shen  <shenhan@google.com>
477*e6c7e151Schristos
478*e6c7e151Schristos	PR gold/20529 - relaxing loop never ends.
479*e6c7e151Schristos
480*e6c7e151Schristos	* powerpc.cc (Stub_table::min_size_threshold_): New member to
481*e6c7e151Schristos	limit size.
482*e6c7e151Schristos	(Stub_table::set_min_size_threshold): New member function.
483*e6c7e151Schristos	(Stub_table::set_address_and_size): Add code to only allow size
484*e6c7e151Schristos	increase.
485*e6c7e151Schristos	(Target_powerpc::do_relax): Add code to record last size.
486*e6c7e151Schristos
487*e6c7e151Schristos2016-08-23  Roland McGrath  <roland@hack.frob.com>
488*e6c7e151Schristos
489*e6c7e151Schristos	* options.h (General_options): Grok -z stack-size.
490*e6c7e151Schristos	* output.h (Output_segment::set_size): New method.
491*e6c7e151Schristos	* layout.cc (Layout::create_executable_stack_info): Renamed to ...
492*e6c7e151Schristos	(Layout::create_stack_segment): ... this.  Always create the
493*e6c7e151Schristos	segment if -z stack-size was used.
494*e6c7e151Schristos	(Layout::set_segment_offsets): Don't call ->set_offset on the
495*e6c7e151Schristos	PT_GNU_STACK segment.
496*e6c7e151Schristos
497*e6c7e151Schristos2016-08-15  Bharathi Seshadri  <bseshadr@cisco.com>
498*e6c7e151Schristos
499*e6c7e151Schristos	* options.h (General_options): Add --be8 option.
500*e6c7e151Schristos	* arm.cc (Arm_relobj::do_relocate_sections): Add code to swap for be8.
501*e6c7e151Schristos	(Output_data_plt_arm_standard::do_fill_first_plt_entry): Likewise.
502*e6c7e151Schristos	(Output_data_plt_arm_short::do_fill_plt_entry): Likewise.
503*e6c7e151Schristos	(Output_data_plt_arm_long::do_fill_plt_entry): Likewise.
504*e6c7e151Schristos	(Target_arm::do_adjust_elf_header): Do EF_ARM_BE8 adjustment.
505*e6c7e151Schristos
506*e6c7e151Schristos2016-08-17  Cary Coutant  <ccoutant@gmail.com>
507*e6c7e151Schristos
508*e6c7e151Schristos	* i386.cc (Target_i386): Reset skip_call_tls_get_addr_ after printing
509*e6c7e151Schristos	error message.
510*e6c7e151Schristos	* testsuite/Makefile.am (pr20216a): Add missing dependencies.
511*e6c7e151Schristos	(pr20308a): Add -Bgcctestdir/ to compile rules.
512*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
513*e6c7e151Schristos
514*e6c7e151Schristos2016-08-12  Roland McGrath  <roland@hack.frob.com>
515*e6c7e151Schristos
516*e6c7e151Schristos	PR gold/20462
517*e6c7e151Schristos	* script-sections.cc (Script_sections::release_segments):
518*e6c7e151Schristos	Reset this->segments_created_.
519*e6c7e151Schristos
520*e6c7e151Schristos2016-08-12  Roland McGrath  <roland@hack.frob.com>
521*e6c7e151Schristos
522*e6c7e151Schristos	* yyscript.y (HIDDEN): New %token.
523*e6c7e151Schristos	(assignment): Handle HIDDEN(string = expr) syntax.
524*e6c7e151Schristos	* script.cc (script_keyword_parsecodes): Add HIDDEN.
525*e6c7e151Schristos
526*e6c7e151Schristos2016-08-10  Cary Coutant  <ccoutant@gmail.com>
527*e6c7e151Schristos
528*e6c7e151Schristos	PR gold/20216
529*e6c7e151Schristos	* x86_64.cc (Target_x86_64::Relocate::relocate): Add check for
530*e6c7e151Schristos	R_X86_64_GOTPCREL. Reset skip_call_tls_get_addr_ after printing
531*e6c7e151Schristos	error message.
532*e6c7e151Schristos	* testsuite/Makefile.am (pr20216_gd.o): Add -Bgcctestdir/.
533*e6c7e151Schristos	(pr20216_ld.o): Likewise.
534*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
535*e6c7e151Schristos
536*e6c7e151Schristos2016-08-10  James Clarke  <jrtc27@jrtc27.com>
537*e6c7e151Schristos
538*e6c7e151Schristos	PR gold/20443
539*e6c7e151Schristos	* symtab.cc (Symbol_table::add_from_relobj): Handle NULL symbols,
540*e6c7e151Schristos	which will be present for STT_SPARC_REGISTER.
541*e6c7e151Schristos	(Symbol_table::add_from_pluginobj): Likewise.
542*e6c7e151Schristos	(Symbol_table::add_from_dynobj): Likewise.
543*e6c7e151Schristos	(Symbol_table::add_from_incrobj): Removed dead code.
544*e6c7e151Schristos
545*e6c7e151Schristos2016-08-10  James Clarke  <jrtc27@jrtc27.com>
546*e6c7e151Schristos
547*e6c7e151Schristos	PR gold/20442
548*e6c7e151Schristos	* sparc.cc (Target_sparc::Relocate::relocate): R_SPARC_GOTDATA_OP_LOX10
549*e6c7e151Schristos	should fall back on R_SPARC_GOT10, not R_SPARC_GOT13.
550*e6c7e151Schristos
551*e6c7e151Schristos2016-08-10  James Clarke  <jrtc27@jrtc27.com>
552*e6c7e151Schristos
553*e6c7e151Schristos	PR gold/20441
554*e6c7e151Schristos	* sparc.cc (Target_sparc::Scan::check_non_pic): Allow R_SPARC_32 on
555*e6c7e151Schristos	sparc64.
556*e6c7e151Schristos
557*e6c7e151Schristos2016-06-29  Cary Coutant  <ccoutant@gmail.com>
558*e6c7e151Schristos
559*e6c7e151Schristos	PR gold/20310
560*e6c7e151Schristos	* testsuite/dynamic_list.sh: Remove check for _ZdlPv.
561*e6c7e151Schristos
562*e6c7e151Schristos2016-06-29  Cary Coutant  <ccoutant@gmail.com>
563*e6c7e151Schristos
564*e6c7e151Schristos	* testsuite/Makefile.am (MOSTLYCLEANFILES): Add eh_test_2.
565*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
566*e6c7e151Schristos
567*e6c7e151Schristos2016-06-30  Alan Modra  <amodra@gmail.com>
568*e6c7e151Schristos
569*e6c7e151Schristos	* testsuite/Makefile.am (memory_test, memory_test_2): Pass
570*e6c7e151Schristos	-Wl,-z to gcc, not plain -z.
571*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
572*e6c7e151Schristos
573*e6c7e151Schristos2016-06-29  H.J. Lu  <hongjiu.lu@intel.com>
574*e6c7e151Schristos
575*e6c7e151Schristos	PR gold/20308
576*e6c7e151Schristos	* i386.cc (Target_i386::Relocate::relocate): Allow
577*e6c7e151Schristos	R_386_GOT32X relocation against ___tls_get_addr.
578*e6c7e151Schristos	(Target_i386::Relocate::tls_gd_to_ie): Support indirect
579*e6c7e151Schristos	call to __tls_get_addr.
580*e6c7e151Schristos	(Target_i386::Relocate::tls_gd_to_le): Likewise.
581*e6c7e151Schristos	(Target_i386::Relocate::tls_ld_to_le): Likewise.
582*e6c7e151Schristos	* testsuite/Makefile.am (check_PROGRAMS): Add pr20308a_test,
583*e6c7e151Schristos	pr20308b_test, pr20308c_test, pr20308d_test, pr20308e_test.
584*e6c7e151Schristos	(pr20308a_test_SOURCES): New.
585*e6c7e151Schristos	(pr20308a_test_DEPENDENCIES): Likewise.
586*e6c7e151Schristos	(pr20308a_test_CFLAGS): Likewise.
587*e6c7e151Schristos	(pr20308a_test_LDFLAGS): Likewise.
588*e6c7e151Schristos	(pr20308a_test_LDADD): Likewise.
589*e6c7e151Schristos	(pr20308b_test_SOURCES): Likewise.
590*e6c7e151Schristos	(pr20308b_test_DEPENDENCIES): Likewise.
591*e6c7e151Schristos	(pr20308b_test_CFLAGS): Likewise.
592*e6c7e151Schristos	(pr20308b_test_LDFLAGS): Likewise.
593*e6c7e151Schristos	(pr20308b_test_LDADD): Likewise.
594*e6c7e151Schristos	(pr20308c_test_SOURCES): Likewise.
595*e6c7e151Schristos	(pr20308c_test_DEPENDENCIES): Likewise.
596*e6c7e151Schristos	(pr20308c_test_CFLAGS): Likewise.
597*e6c7e151Schristos	(pr20308c_test_LDFLAGS): Likewise.
598*e6c7e151Schristos	(pr20308c_test_LDADD): Likewise.
599*e6c7e151Schristos	(pr20308d_test_SOURCES): Likewise.
600*e6c7e151Schristos	(pr20308d_test_DEPENDENCIES): Likewise.
601*e6c7e151Schristos	(pr20308d_test_CFLAGS): Likewise.
602*e6c7e151Schristos	(pr20308d_test_LDFLAGS): Likewise.
603*e6c7e151Schristos	(pr20308d_test_LDADD): Likewise.
604*e6c7e151Schristos	(pr20308e_test_SOURCES): Likewise.
605*e6c7e151Schristos	(pr20308e_test_DEPENDENCIES): Likewise.
606*e6c7e151Schristos	(pr20308e_test_CFLAGS): Likewise.
607*e6c7e151Schristos	(pr20308e_test_LDFLAGS): Likewise.
608*e6c7e151Schristos	(pr20308e_test_LDADD): Likewise.
609*e6c7e151Schristos	(pr20308a.so): Likewise.
610*e6c7e151Schristos	(pr20308b.so): Likewise.
611*e6c7e151Schristos	(pr20308_gd.o): Likewise.
612*e6c7e151Schristos	(pr20308_ld.o): Likewise.
613*e6c7e151Schristos	(MOSTLYCLEANFILES): Add pr20308a.so pr20308b.so.
614*e6c7e151Schristos	* testsuite/Makefile.in: Regenerated.
615*e6c7e151Schristos	* testsuite/pr20308_def.c: New file.
616*e6c7e151Schristos	* testsuite/pr20308_gd.S: Likewise.
617*e6c7e151Schristos	* testsuite/pr20308_ld.S: Likewise.
618*e6c7e151Schristos	* testsuite/pr20308_main.c: Likewise.
619*e6c7e151Schristos
620*e6c7e151Schristos2016-06-29  H.J. Lu  <hongjiu.lu@intel.com>
621*e6c7e151Schristos
622*e6c7e151Schristos	PR gold/20216
623*e6c7e151Schristos	* configure.ac (DEFAULT_TARGET_X86_64_OR_X32): New
624*e6c7e151Schristos	AM_CONDITIONAL.
625*e6c7e151Schristos	* configure: Regenerated.
626*e6c7e151Schristos	* x86_64.cc (Target_x86_64<size>::Relocate::relocate): Allow
627*e6c7e151Schristos	R_X86_64_GOTPCRELX relocation against __tls_get_addr.
628*e6c7e151Schristos	(Target_x86_64<size>::Relocate::tls_gd_to_ie): Support indirect
629*e6c7e151Schristos	call to __tls_get_addr.
630*e6c7e151Schristos	(Target_x86_64<size>::Relocate::tls_gd_to_le): Likewise.
631*e6c7e151Schristos	(Target_x86_64<size>::Relocate::tls_ld_to_le): Likewise.
632*e6c7e151Schristos	* testsuite/Makefile.am (check_PROGRAMS): Add pr20216a_test,
633*e6c7e151Schristos	pr20216b_test, pr20216c_test, pr20216d_test, pr20216e_test.
634*e6c7e151Schristos	(pr20216a_test_SOURCES): New.
635*e6c7e151Schristos	(pr20216a_test_DEPENDENCIES): Likewise.
636*e6c7e151Schristos	(pr20216a_test_CFLAGS): Likewise.
637*e6c7e151Schristos	(pr20216a_test_LDFLAGS): Likewise.
638*e6c7e151Schristos	(pr20216a_test_LDADD): Likewise.
639*e6c7e151Schristos	(pr20216b_test_SOURCES): Likewise.
640*e6c7e151Schristos	(pr20216b_test_DEPENDENCIES): Likewise.
641*e6c7e151Schristos	(pr20216b_test_CFLAGS): Likewise.
642*e6c7e151Schristos	(pr20216b_test_LDFLAGS): Likewise.
643*e6c7e151Schristos	(pr20216b_test_LDADD): Likewise.
644*e6c7e151Schristos	(pr20216c_test_SOURCES): Likewise.
645*e6c7e151Schristos	(pr20216c_test_DEPENDENCIES): Likewise.
646*e6c7e151Schristos	(pr20216c_test_CFLAGS): Likewise.
647*e6c7e151Schristos	(pr20216c_test_LDFLAGS): Likewise.
648*e6c7e151Schristos	(pr20216c_test_LDADD): Likewise.
649*e6c7e151Schristos	(pr20216d_test_SOURCES): Likewise.
650*e6c7e151Schristos	(pr20216d_test_DEPENDENCIES): Likewise.
651*e6c7e151Schristos	(pr20216d_test_CFLAGS): Likewise.
652*e6c7e151Schristos	(pr20216d_test_LDFLAGS): Likewise.
653*e6c7e151Schristos	(pr20216d_test_LDADD): Likewise.
654*e6c7e151Schristos	(pr20216e_test_SOURCES): Likewise.
655*e6c7e151Schristos	(pr20216e_test_DEPENDENCIES): Likewise.
656*e6c7e151Schristos	(pr20216e_test_CFLAGS): Likewise.
657*e6c7e151Schristos	(pr20216e_test_LDFLAGS): Likewise.
658*e6c7e151Schristos	(pr20216e_test_LDADD): Likewise.
659*e6c7e151Schristos	(pr20216a.so): Likewise.
660*e6c7e151Schristos	(pr20216b.so): Likewise.
661*e6c7e151Schristos	(pr20216_gd.o): Likewise.
662*e6c7e151Schristos	(pr20216_ld.o): Likewise.
663*e6c7e151Schristos	(MOSTLYCLEANFILES): Add pr20216a.so pr20216b.so.
664*e6c7e151Schristos	* testsuite/Makefile.in: Regenerated.
665*e6c7e151Schristos	* testsuite/pr20216_def.c: New file.
666*e6c7e151Schristos	* testsuite/pr20216_gd.S: Likewise.
667*e6c7e151Schristos	* testsuite/pr20216_ld.S: Likewise.
668*e6c7e151Schristos	* testsuite/pr20216_main.c: Likewise.
669*e6c7e151Schristos
670*e6c7e151Schristos2016-06-29  Alan Modra  <amodra@gmail.com>
671*e6c7e151Schristos
672*e6c7e151Schristos	* script_test_12.t: Delete .plt, specify 64k page size.
673*e6c7e151Schristos	* script_test_12i.t: Likewise.
674*e6c7e151Schristos
675*e6c7e151Schristos2016-06-29  Alan Modra  <amodra@gmail.com>
676*e6c7e151Schristos
677*e6c7e151Schristos	* testsuite/plugin_layout_with_alignment.c: Explicitly align all
678*e6c7e151Schristos	variables.
679*e6c7e151Schristos
680*e6c7e151Schristos2016-06-29  Alan Modra  <amodra@gmail.com>
681*e6c7e151Schristos
682*e6c7e151Schristos	* testsuite/Makefile.am (copy_test_protected): Disable for powerpc.
683*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
684*e6c7e151Schristos
685*e6c7e151Schristos2016-06-28  Igor Kudrin  <ikudrin@accesssoftek.com>
686*e6c7e151Schristos
687*e6c7e151Schristos	* aarch64-reloc.def (NONE): New relocation.
688*e6c7e151Schristos	* aarch64.cc (Target_aarch64::Scan::local): Handle R_AARCH64_NONE.
689*e6c7e151Schristos	(Target_aarch64::Scan::global): Likewise.
690*e6c7e151Schristos	* testsuite/Makefile.am (aarch64_reloc_none): New test.
691*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
692*e6c7e151Schristos	* testsuite/aarch64_reloc_none.s: New test source file.
693*e6c7e151Schristos	* testsuite/aarch64_reloc_none.sh: New test script.
694*e6c7e151Schristos
695*e6c7e151Schristos2016-06-28  Sriraman Tallam  <tmsriram@google.com>
696*e6c7e151Schristos
697*e6c7e151Schristos	* x86_64.cc (Lazy_view): New class.
698*e6c7e151Schristos	(can_convert_mov_to_lea): Templatize function.  Make the function
699*e6c7e151Schristos	check for appropriate relocation types and use the view parameter
700*e6c7e151Schristos	to get section contents.
701*e6c7e151Schristos	(can_convert_callq_to_direct): New function.
702*e6c7e151Schristos	(Target_x86_64<size>::Scan::global): Refactor.
703*e6c7e151Schristos	(Target_x86_64<size>::Relocate::relocate): Refactor. Change any indirect
704*e6c7e151Schristos	call via GOT that can be converted.
705*e6c7e151Schristos	* testsuite/Makefile.am (x86_64_indirect_call_to_direct.sh): New test.
706*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
707*e6c7e151Schristos	* testsuite/x86_64_indirect_call_to_direct1.s: New file.
708*e6c7e151Schristos	* testsuite/x86_64_indirect_jump_to_direct1.s: New file.
709*e6c7e151Schristos
710*e6c7e151Schristos2016-06-28  Igor Kudrin  <ikudrin@accesssoftek.com>
711*e6c7e151Schristos
712*e6c7e151Schristos	* aarch64.cc (Target_aarch64::Scan::local): Move the call to got_section
713*e6c7e151Schristos	from the top level to the places of its use.
714*e6c7e151Schristos
715*e6c7e151Schristos2016-06-28  Igor Kudrin  <ikudrin@accesssoftek.com>
716*e6c7e151Schristos
717*e6c7e151Schristos	PR gold/18098
718*e6c7e151Schristos	* script-c.h (Sort_wildcard): Add SORT_WILDCARD_BY_INIT_PRIORITY.
719*e6c7e151Schristos	* script-sections.cc (Input_section_sorter::get_init_priority): New method.
720*e6c7e151Schristos	(Input_section_sorter::operator()): Handle SORT_WILDCARD_BY_INIT_PRIORITY.
721*e6c7e151Schristos	(Output_section_element_input::print): Likewise.
722*e6c7e151Schristos	* script.cc (script_keyword_parsecodes): Add entry SORT_BY_INIT_PRIORITY.
723*e6c7e151Schristos	* yyscript.y (SORT_BY_INIT_PRIORITY): New token.
724*e6c7e151Schristos	(wildcard_section): Handle SORT_BY_INIT_PRIORITY.
725*e6c7e151Schristos
726*e6c7e151Schristos	* testsuite/Makefile.am (script_test_14): New test.
727*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
728*e6c7e151Schristos	* testsuite/script_test_14.s: New test source file.
729*e6c7e151Schristos	* testsuite/script_test_14.sh: New test script.
730*e6c7e151Schristos	* testsuite/script_test_14.t: New test linker script.
731*e6c7e151Schristos
732*e6c7e151Schristos2016-06-28  James Clarke  <jrtc27@jrtc27.com>
733*e6c7e151Schristos
734*e6c7e151Schristos	* sparc.cc (Target_sparc::Scan::local): Don't convert R_SPARC_32
735*e6c7e151Schristos	to R_SPARC_RELATIVE if class is ELFCLASS64.
736*e6c7e151Schristos	(Target_sparc::Scan::global): Likewise.
737*e6c7e151Schristos
738*e6c7e151Schristos2016-06-23  Cary Coutant  <ccoutant@gmail.com>
739*e6c7e151Schristos	    Igor Kudrin  <ikudrin@accesssoftek.com>
740*e6c7e151Schristos
741*e6c7e151Schristos	PR gold/15370
742*e6c7e151Schristos	* script-sections.cc
743*e6c7e151Schristos	(Output_section_element_input::set_section_addresses): Keep bin_count
744*e6c7e151Schristos	separate from input_pattern_count.
745*e6c7e151Schristos	* testsuite/script_test_12.t: Add another section .x4.
746*e6c7e151Schristos	* testsuite/script_test_12i.t: Likewise.
747*e6c7e151Schristos	* testsuite/script_test_12a.c: Likewise.
748*e6c7e151Schristos	* testsuite/script_test_12b.c: Likewise.
749*e6c7e151Schristos
750*e6c7e151Schristos2016-06-23  Igor Kudrin  <ikudrin@accesssoftek.com>
751*e6c7e151Schristos
752*e6c7e151Schristos	* gold-threads.cc (impl_threads::Lock_impl_threads): Fix typos.
753*e6c7e151Schristos
754*e6c7e151Schristos2016-06-22  H.J. Lu  <hongjiu.lu@intel.com>
755*e6c7e151Schristos
756*e6c7e151Schristos	PR ld/20283
757*e6c7e151Schristos	* NEWS: Mention --enable-relro.
758*e6c7e151Schristos	* configure.ac: Add --enable-relro.
759*e6c7e151Schristos	(DEFAULT_LD_Z_RELRO): New.  Set by --enable-relro and default
760*e6c7e151Schristos	to 1.
761*e6c7e151Schristos	* config.in: Regenerated.
762*e6c7e151Schristos	* configure: Likewise.
763*e6c7e151Schristos	* options.h (General_options::relro): Default to
764*e6c7e151Schristos	DEFAULT_LD_Z_RELRO.
765*e6c7e151Schristos
766*e6c7e151Schristos2016-06-20  Cary Coutant  <ccoutant@gmail.com>
767*e6c7e151Schristos
768*e6c7e151Schristos	* NEWS: Add new features in 1.12.
769*e6c7e151Schristos	* version.cc (version_string): Bump to 1.12.
770*e6c7e151Schristos
771*e6c7e151Schristos2016-06-20  H.J. Lu  <hongjiu.lu@intel.com>
772*e6c7e151Schristos
773*e6c7e151Schristos	PR gold/20245
774*e6c7e151Schristos	* i386.cc (Target_i386::first_plt_entry_offset): Return 0 if
775*e6c7e151Schristos	plt_ is NULL.
776*e6c7e151Schristos	(Target_i386::plt_entry_size): Likewise.
777*e6c7e151Schristos	(Target_x86_64<size>::first_plt_entry_offset): Likewise.
778*e6c7e151Schristos	(Target_x86_64<size>::plt_entry_size): Likewise.
779*e6c7e151Schristos
780*e6c7e151Schristos2016-06-20  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
781*e6c7e151Schristos
782*e6c7e151Schristos	* mips.cc (Target_mips::Target_mips): Initialize rld_map_.
783*e6c7e151Schristos	(Target_mips::rld_map_): New data member.
784*e6c7e151Schristos	(Target_mips::do_finalize_sections): Add support for
785*e6c7e151Schristos	DT_MIPS_RLD_MAP and DT_MIPS_RLD_MAP_REL dynamic tags,
786*e6c7e151Schristos	.rld_map section, and __RLD_MAP symbol.
787*e6c7e151Schristos	(Target_mips::do_dynamic_tag_custom_value): Add support for
788*e6c7e151Schristos	DT_MIPS_RLD_MAP_REL dynamic tag.
789*e6c7e151Schristos	* output.cc (Output_data_dynamic::get_entry_offset): New method
790*e6c7e151Schristos	definition.
791*e6c7e151Schristos	* output.h (Output_data_dynamic::get_entry_offset): New method
792*e6c7e151Schristos	declaration.
793*e6c7e151Schristos
794*e6c7e151Schristos2016-06-20  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
795*e6c7e151Schristos
796*e6c7e151Schristos	* mips.cc (Mips_relocate_functions::relpc16): Add unaligned check.
797*e6c7e151Schristos
798*e6c7e151Schristos2016-06-20  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
799*e6c7e151Schristos
800*e6c7e151Schristos	* mips.cc (relocation_needs_la25_stub): Add support for relocs:
801*e6c7e151Schristos	R_MIPS_PC21_S2 and R_MIPS_PC26_S2.
802*e6c7e151Schristos	(hi16_reloc): Add support for R_MIPS_PCHI16 relocation.
803*e6c7e151Schristos	(is_matching_lo16_reloc): Likewise.
804*e6c7e151Schristos	(lo16_reloc): Add support for R_MIPS_PCLO16 relocation.
805*e6c7e151Schristos	(Mips_output_data_plt::plt_entry_r6): New static data member for
806*e6c7e151Schristos	R6 PLT entry.
807*e6c7e151Schristos	(Target_mips::is_output_r6): New method.
808*e6c7e151Schristos	(Target_mips::Mips_mach): Add new enum constants.
809*e6c7e151Schristos	(Mips_relocate_functions::Status): Likewise.
810*e6c7e151Schristos	(Mips_relocate_functions::pchi16_relocs): New static data member.
811*e6c7e151Schristos	(Mips_relocate_functions::relpc21): New method.
812*e6c7e151Schristos	(Mips_relocate_functions::relpc26): Likewise.
813*e6c7e151Schristos	(Mips_relocate_functions::relpc18): Likewise.
814*e6c7e151Schristos	(Mips_relocate_functions::relpc19): Likewise.
815*e6c7e151Schristos	(Mips_relocate_functions::relpchi16): Likewise.
816*e6c7e151Schristos	(Mips_relocate_functions::do_relpchi16): Likewise.
817*e6c7e151Schristos	(Mips_relocate_functions::relpclo16): Likewise.
818*e6c7e151Schristos	(Mips_output_data_plt::do_write): Add support for Mips r6 plt
819*e6c7e151Schristos	entry.
820*e6c7e151Schristos	(Target_mips::mips_32bit_flags): Add E_MIPS_ARCH_32R6 support.
821*e6c7e151Schristos	(Target_mips::elf_mips_mach): Add E_MIPS_ARCH_32R6 and
822*e6c7e151Schristos	E_MIPS_ARCH_64R6 support.
823*e6c7e151Schristos	(Target_mips::update_abiflags_isa): Likewise.
824*e6c7e151Schristos	(mips_get_size_for_reloc): Add support for relocs: R_MIPS_PCHI16,
825*e6c7e151Schristos	R_MIPS_PCLO16, R_MIPS_PC21_S2, R_MIPS_PC26_S2, R_MIPS_PC18_S3 and
826*e6c7e151Schristos	R_MIPS_PC19_S2.
827*e6c7e151Schristos	(Target_mips::Scan::local): Add support for relocs: R_MIPS_PCHI16
828*e6c7e151Schristos	and R_MIPS_PCLO16.
829*e6c7e151Schristos	(Target_mips::Scan::global): Add support for relocs:
830*e6c7e151Schristos	R_MIPS_PC21_S2 and R_MIPS_PC26_S2.
831*e6c7e151Schristos	(Target_mips::Relocate::relocate): Call functions for resolving
832*e6c7e151Schristos	Mips32r6 and Mips64r6 relocations, and print error message for
833*e6c7e151Schristos	STATUS_PCREL_UNALIGNED.
834*e6c7e151Schristos	(Target_mips::Scan::get_reference_flags): Add support for relocs:
835*e6c7e151Schristos	R_MIPS_PCHI16, R_MIPS_PCLO16, R_MIPS_PC21_S2, R_MIPS_PC26_S2,
836*e6c7e151Schristos	R_MIPS_PC18_S3 and R_MIPS_PC19_S2.
837*e6c7e151Schristos	(Target_mips::elf_mips_mach_name): Add E_MIPS_ARCH_32R6 and
838*e6c7e151Schristos	E_MIPS_ARCH_64R6 support.
839*e6c7e151Schristos
840*e6c7e151Schristos2016-06-13  H.J. Lu  <hongjiu.lu@intel.com>
841*e6c7e151Schristos
842*e6c7e151Schristos	PR gold/20246
843*e6c7e151Schristos	* testsuite/script_test_2.t: Add .got.plt after .got.
844*e6c7e151Schristos
845*e6c7e151Schristos2016-06-10  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
846*e6c7e151Schristos
847*e6c7e151Schristos	* mips.cc (struct Mips_abiflags): New struct.
848*e6c7e151Schristos	(Mips_relobj::Mips_relobj): Initialize attributes_section_data_
849*e6c7e151Schristos	and abiflags_.
850*e6c7e151Schristos	(Mips_relobj::~Mips_relobj): Delete object pointed by
851*e6c7e151Schristos	attributes_section_data_.
852*e6c7e151Schristos	(Mips_relobj::abiflags): New method.
853*e6c7e151Schristos	(Mips_relobj::attributes_section_data): Likewise.
854*e6c7e151Schristos	(Mips_relobj::attributes_section_data_): New data member.
855*e6c7e151Schristos	(Mips_relobj::abiflags_): Likewise.
856*e6c7e151Schristos	(class Mips_output_section_abiflags): New class.
857*e6c7e151Schristos	(Target_mips::Target_mips): Initialize attributes_section_data_,
858*e6c7e151Schristos	abiflags_ and has_abiflags_section_.
859*e6c7e151Schristos	(Target_mips::do_should_include_section): Don't emit input
860*e6c7e151Schristos	.MIPS.abiflags sections to output .MIPS.abiflags.
861*e6c7e151Schristos	(Target_mips::Mips_mach): Add new enum constants.
862*e6c7e151Schristos	(Target_mips::mips_isa_ext_mach): New method.
863*e6c7e151Schristos	(Target_mips::mips_isa_ext): Likewise.
864*e6c7e151Schristos	(Target_mips::update_abiflags_isa): Likewise.
865*e6c7e151Schristos	(Target_mips::infer_abiflags): Likewise.
866*e6c7e151Schristos	(Target_mips::create_abiflags): Likewise.
867*e6c7e151Schristos	(Target_mips::fp_abi_string): Likewise.
868*e6c7e151Schristos	(Target_mips::select_fp_abi): Likewise.
869*e6c7e151Schristos	(Target_mips::merge_obj_attributes): Likewise.
870*e6c7e151Schristos	(Target_mips::merge_obj_abiflags): Likewise.
871*e6c7e151Schristos	(Target_mips::level_rev): Likewise.
872*e6c7e151Schristos	(Target_mips::merge_obj_e_flags): Rename from
873*e6c7e151Schristos	merge_processor_specific_flags. Remove dyn_obj argument,
874*e6c7e151Schristos	call update_abiflags_isa when needed, compare NaN encodings and
875*e6c7e151Schristos	compare FP64 state.
876*e6c7e151Schristos	(Target_mips::add_machine_extensions): Add two machine extensions
877*e6c7e151Schristos	and fix one.
878*e6c7e151Schristos	(Target_mips::attributes_section_data_): New data member.
879*e6c7e151Schristos	(Target_mips::abiflags_): Likewise.
880*e6c7e151Schristos	(Target_mips::has_abiflags_section_): Likewise.
881*e6c7e151Schristos	(Mips_relobj::do_read_symbols): Read .gnu.attributes and
882*e6c7e151Schristos	.MIPS.abiflags sections if they exists.
883*e6c7e151Schristos	(Target_mips::elf_mips_mach): Add E_MIPS_MACH_5900 and
884*e6c7e151Schristos	E_MIPS_MACH_OCTEON3 support.
885*e6c7e151Schristos	(Target_mips::do_adjust_elf_header): Setup EI_ABIVERSION flag.
886*e6c7e151Schristos	(Target_mips::do_finalize_sections): Merge .gnu.attributes and
887*e6c7e151Schristos	.MIPS.abiflags sections from input. Create these sections if
888*e6c7e151Schristos	needed.
889*e6c7e151Schristos	(Target_mips::elf_mips_mach_name): Add E_MIPS_MACH_5900 and
890*e6c7e151Schristos	E_MIPS_MACH_OCTEON3 support, and change strings for
891*e6c7e151Schristos	E_MIPS_MACH_LS2E, E_MIPS_MACH_LS2F and E_MIPS_MACH_LS3A just
892*e6c7e151Schristos	to match bfd.
893*e6c7e151Schristos
894*e6c7e151Schristos2016-06-10  Vladimir Radosavljevic  <Vladimir.Radosavljevic@imgtec.com>
895*e6c7e151Schristos
896*e6c7e151Schristos	* mips.cc (Mips_relobj::Mips_relobj): Initialize
897*e6c7e151Schristos	has_reginfo_section_.
898*e6c7e151Schristos	(Mips_relobj::has_reginfo_section_): New data member.
899*e6c7e151Schristos	(Mips_relobj::has_reginfo_section): New method.
900*e6c7e151Schristos	(class Mips_output_section_reginfo): Change base class to
901*e6c7e151Schristos	Output_section_data, and set masks of the output .reginfo section
902*e6c7e151Schristos	in constructor.
903*e6c7e151Schristos	(Mips_output_section_reginfo::as_mips_output_section_reginfo):
904*e6c7e151Schristos	Remove.
905*e6c7e151Schristos	(Mips_output_section_reginfo::set_masks): Likewise.
906*e6c7e151Schristos	(Mips_output_section_reginfo::set_final_data_size): Likewise.
907*e6c7e151Schristos	(Mips_output_section_reginfo::do_print_to_mapfile): New method.
908*e6c7e151Schristos	(Target_mips::do_make_output_section): Remove.
909*e6c7e151Schristos	(Mips_relobj::do_read_symbols): Set has_reginfo_section_ to true
910*e6c7e151Schristos	if the object contains a .reginfo section.
911*e6c7e151Schristos	(Target_mips::do_finalize_sections): Create a .reginfo output
912*e6c7e151Schristos	section if needed.
913*e6c7e151Schristos
914*e6c7e151Schristos2016-06-09  Artemiy Volkov  <artemiyv@acm.org>
915*e6c7e151Schristos
916*e6c7e151Schristos	* mips.cc (Mips_output_data_got::do_write): Add missing template
917*e6c7e151Schristos	args via typedef.
918*e6c7e151Schristos
919*e6c7e151Schristos2016-05-30  Marcin Kościelnicki  <koriakin@0x04.net>
920*e6c7e151Schristos
921*e6c7e151Schristos	PR/19960
922*e6c7e151Schristos	* s390.cc (Target_s390::ss_code_st_r14): Removed.
923*e6c7e151Schristos	(Target_s390::ss_code_l_r14): Removed.
924*e6c7e151Schristos	(Target_s390::ss_code_ear): Removed.
925*e6c7e151Schristos	(Target_s390::ss_code_c): Removed.
926*e6c7e151Schristos	(Target_s390::ss_match_st_r14): New function.
927*e6c7e151Schristos	(Target_s390::ss_match_l_r14): New function.
928*e6c7e151Schristos	(Target_s390::ss_match_mcount): Call ss_match_{l,st}_r14 instead
929*e6c7e151Schristos	of matching code directly.
930*e6c7e151Schristos	(Target_s390::ss_match_ear): New function.
931*e6c7e151Schristos	(Target_s390::ss_match_c): New function.
932*e6c7e151Schristos	(Target_s390::do_calls_non_split): Call ss_match_{ear,c} instead
933*e6c7e151Schristos	of matching code directly.
934*e6c7e151Schristos
935*e6c7e151Schristos2016-05-19  Cary Coutant  <ccoutant@gmail.com>
936*e6c7e151Schristos
937*e6c7e151Schristos	PR gold/19823
938*e6c7e151Schristos	* copy-relocs.cc (Copy_relocs::make_copy_reloc): Add object
939*e6c7e151Schristos	parameter; check for protected symbol.
940*e6c7e151Schristos	* copy-relocs.h (Copy_relocs::make_copy_reloc): Add object parameter.
941*e6c7e151Schristos	* mips.cc (Mips_copy_relocs): Adjust call to make_copy_reloc.
942*e6c7e151Schristos	* symtab.cc (Symbol::init_fields): Initialize is_protected_.
943*e6c7e151Schristos	(Symbol_table::add_from_dynobj): Mark protected symbols.
944*e6c7e151Schristos	* symtab.h (Symbol::is_protected): New method.
945*e6c7e151Schristos	(Symbol::set_is_protected): New method.
946*e6c7e151Schristos	(Symbol::is_protected_): New data member.
947*e6c7e151Schristos
948*e6c7e151Schristos	* testsuite/Makefile.am (copy_test_protected): New test.
949*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
950*e6c7e151Schristos	* testsuite/copy_test.cc (main): Add legal reference to protected
951*e6c7e151Schristos	symbol.
952*e6c7e151Schristos	* testsuite/copy_test_v1.cc (main): Likewise.
953*e6c7e151Schristos	* testsuite/copy_test_2.cc (ip): Add protected symbol.
954*e6c7e151Schristos	* testsuite/copy_test_protected.cc: New test source file.
955*e6c7e151Schristos	* testsuite/copy_test_protected.sh: New test script.
956*e6c7e151Schristos
957*e6c7e151Schristos2016-05-19  Vladimir Radosavljevic  <vladimir.radosavljevic@imgtec.com>
958*e6c7e151Schristos
959*e6c7e151Schristos	* mips.cc (Mips_got_entry::Mips_got_entry): Remove object argument
960*e6c7e151Schristos	for global got symbols, and set addend to 0.
961*e6c7e151Schristos	(Mips_got_entry::hash): Change hash algorithm.
962*e6c7e151Schristos	(Mips_got_entry::equals): Refactor.
963*e6c7e151Schristos	(Mips_got_entry::object): Return input object for local got symbols
964*e6c7e151Schristos	from union d.
965*e6c7e151Schristos	(Mips_got_entry::addend): Change return of the relocation addend.
966*e6c7e151Schristos	(Mips_got_entry::addend_): Move from union d.
967*e6c7e151Schristos	(Mips_got_entry::object_): Move into union d.
968*e6c7e151Schristos	(class Mips_symbol_hash): New class.
969*e6c7e151Schristos	(Mips_got_info::Global_got_entry_set): New type.
970*e6c7e151Schristos	(Mips_got_info::global_got_symbols): Change return type to
971*e6c7e151Schristos	Global_got_entry_set.
972*e6c7e151Schristos	(Mips_got_info::global_got_symbols_): Change type to
973*e6c7e151Schristos	Global_got_entry_set.
974*e6c7e151Schristos	(Mips_symbol::hash): New method.
975*e6c7e151Schristos	(Mips_output_data_la25_stub::symbols_): Change type to std::vector.
976*e6c7e151Schristos	(Mips_output_data_mips_stubs::Mips_stubs_entry_set): New type.
977*e6c7e151Schristos	(Mips_output_data_mips_stubs::symbols_): Change type to
978*e6c7e151Schristos	Mips_stubs_entry_set.
979*e6c7e151Schristos	(Mips_got_info::record_global_got_symbol): Don't pass object
980*e6c7e151Schristos	argument when creating global got symbol.
981*e6c7e151Schristos	(Mips_got_info::record_got_entry): Remove find before inserting
982*e6c7e151Schristos	got entries.
983*e6c7e151Schristos	(Mips_got_info::add_reloc_only_entries): Change type of iterator
984*e6c7e151Schristos	to Global_got_entry_set.
985*e6c7e151Schristos	(Mips_got_info::count_got_symbols): Likewise.
986*e6c7e151Schristos	(Mips_output_data_la25_stub::create_la25_stub): Use push_back
987*e6c7e151Schristos	for adding entries to symbols_.
988*e6c7e151Schristos	(Mips_output_data_la25_stub::do_write): Change type of iterator
989*e6c7e151Schristos	to std::vector.
990*e6c7e151Schristos	(Mips_output_data_mips_stubs::set_lazy_stub_offsets): Change type
991*e6c7e151Schristos	of iterator to Mips_stubs_entry_set.
992*e6c7e151Schristos	(Mips_output_data_mips_stubs::set_needs_dynsym_value): Likewise.
993*e6c7e151Schristos	(Mips_output_data_mips_stubs::do_write): Likewise.
994*e6c7e151Schristos
995*e6c7e151Schristos2016-05-06  Han Shen  <shenhan@google.com>
996*e6c7e151Schristos
997*e6c7e151Schristos	PR gold/19987.
998*e6c7e151Schristos
999*e6c7e151Schristos	* aarch64-reloc.def: New relocation type.
1000*e6c7e151Schristos	* aarch64.cc (AArch64_relocate_functions::Page): Changed to public.
1001*e6c7e151Schristos	(Target_aarch64::Scan::local): Add R_AARCH64_LD64_GOTPAGE_LO15.
1002*e6c7e151Schristos	(Target_aarch64::Scan::global): Add R_AARCH64_LD64_GOTPAGE_LO15.
1003*e6c7e151Schristos	(Target_aarch64::Relocate::relocate): Implement R_AARCH64_LD64_GOTPAGE_LO15.
1004*e6c7e151Schristos
1005*e6c7e151Schristos2016-04-28  Nick Clifton  <nickc@redhat.com>
1006*e6c7e151Schristos
1007*e6c7e151Schristos	* po/zh_CN.po: Updated Chinese (simplified) translation.
1008*e6c7e151Schristos
1009*e6c7e151Schristos2016-04-15  H.J. Lu  <hongjiu.lu@intel.com>
1010*e6c7e151Schristos
1011*e6c7e151Schristos	* Makefile.in: Regenerated with automake 1.11.6.
1012*e6c7e151Schristos	* aclocal.m4: Likewise.
1013*e6c7e151Schristos	* testsuite/Makefile.in: Likewise.
1014*e6c7e151Schristos
1015*e6c7e151Schristos2016-03-30  Cary Coutant  <ccoutant@gmail.com>
1016*e6c7e151Schristos
1017*e6c7e151Schristos	PR gold/16979
1018*e6c7e151Schristos	* symtab.cc (Symbol_table::define_default_version): Check for case
1019*e6c7e151Schristos	where symbols are both in different shared objects.
1020*e6c7e151Schristos
1021*e6c7e151Schristos2016-03-27  Cary Coutant  <ccoutant@gmail.com>
1022*e6c7e151Schristos
1023*e6c7e151Schristos	PR gold/16111
1024*e6c7e151Schristos	* i386.cc (Target_i386): Add check for fully-resolved symbol for
1025*e6c7e151Schristos	R_386_GOTOFF.
1026*e6c7e151Schristos
1027*e6c7e151Schristos2016-03-22  Nick Clifton  <nickc@redhat.com>
1028*e6c7e151Schristos
1029*e6c7e151Schristos	* configure: Regenerate.
1030*e6c7e151Schristos
1031*e6c7e151Schristos2016-03-21  Cary Coutant  <ccoutant@gmail.com>
1032*e6c7e151Schristos
1033*e6c7e151Schristos	PR gold/19842
1034*e6c7e151Schristos	* errors.cc (Errors::undefined_symbol): Add info message when
1035*e6c7e151Schristos	symbol should have been provided by a plugin.
1036*e6c7e151Schristos	* target-reloc.h (issue_undefined_symbol_error): Check for
1037*e6c7e151Schristos	placeholder symbols defined in discarded sections.
1038*e6c7e151Schristos	* testsuite/Makefile.am (plugin_test_9b): New test case.
1039*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
1040*e6c7e151Schristos	* testsuite/plugin_test_9b_elf.cc: New test source file.
1041*e6c7e151Schristos	* testsuite/plugin_test_9b_ir.cc: New test source file.
1042*e6c7e151Schristos
1043*e6c7e151Schristos2016-03-20  Cary Coutant  <ccoutant@gmail.com>
1044*e6c7e151Schristos
1045*e6c7e151Schristos	PR gold/19002
1046*e6c7e151Schristos	* ehframe.cc (Eh_frame::read_fde): Check for dropped functions.
1047*e6c7e151Schristos	* testsuite/Makefile.am (eh_test_2): New test.
1048*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
1049*e6c7e151Schristos	* testsuite/eh_test_2.sh: New test script.
1050*e6c7e151Schristos	* testsuite/eh_test_a.cc (bar): Make it comdat.
1051*e6c7e151Schristos	* testsuite/eh_test_b.cc (bar): Add a duplicate copy.
1052*e6c7e151Schristos
1053*e6c7e151Schristos2016-03-18  Vladimir Radosavljevic  <vladimir.radosavljevic@imgtec.com>
1054*e6c7e151Schristos
1055*e6c7e151Schristos	* mips.cc (Mips_relobj::is_n64_): Remove.
1056*e6c7e151Schristos	(Target_mips::ei_class_): Likewise.
1057*e6c7e151Schristos	(Mips_relobj::is_newabi): Call methods.
1058*e6c7e151Schristos	(Mips_relobj::is_n64): Change checking for N64 ABI.
1059*e6c7e151Schristos	(Target_mips::is_output_n64): Likewise.
1060*e6c7e151Schristos	(Target_mips::merge_processor_specific_flags): Remove ei_class
1061*e6c7e151Schristos	argument, and remove comparing ei_class.
1062*e6c7e151Schristos	(Target_mips::do_adjust_elf_header): Remove setting EI_CLASS field
1063*e6c7e151Schristos	of the ELF header.
1064*e6c7e151Schristos	(Target_mips::do_finalize_sections): Don't pass ei_class argument
1065*e6c7e151Schristos	to merge_processor_specific_flags.
1066*e6c7e151Schristos	(Target_mips::elf_mips_abi_name): Remove ei_class argument, and
1067*e6c7e151Schristos	change checking for N64 ABI.
1068*e6c7e151Schristos
1069*e6c7e151Schristos2016-03-17  Vladimir Radosavljevic  <vladimir.radosavljevic@imgtec.com>
1070*e6c7e151Schristos
1071*e6c7e151Schristos	* mips.cc (enum Special_relocation_symbol): New enum type.
1072*e6c7e151Schristos	(is_readonly_section): New function.
1073*e6c7e151Schristos	(eh_reloc): Likewise.
1074*e6c7e151Schristos	(Mips_got_entry::is_section_symbol_): New member.
1075*e6c7e151Schristos	(Mips_got_entry::is_section_symbol): New method.
1076*e6c7e151Schristos	(Mips_got_info::record_local_got_symbol): Add is_section_symbol
1077*e6c7e151Schristos	argument.
1078*e6c7e151Schristos	(Mips_relobj::mips_elf_options_section_name): New method.
1079*e6c7e151Schristos	(Mips_output_data_got::record_local_got_symbol): Add
1080*e6c7e151Schristos	is_section_symbol argument, and pass it to
1081*e6c7e151Schristos	Mips_got_info::record_local_got_symbol.
1082*e6c7e151Schristos	(Mips_output_data_got::got_offset): Add addend argument, and pass
1083*e6c7e151Schristos	it to Relobj::local_got_offset.
1084*e6c7e151Schristos	(struct Mips_output_reloc_writer): New type.
1085*e6c7e151Schristos	(class Mips_output_data_reloc): New class.
1086*e6c7e151Schristos	(Mips_output_data_plt::Reloc_section): Change type to
1087*e6c7e151Schristos	Mips_output_data_reloc.
1088*e6c7e151Schristos	(Target_mips::Reloc_section): Likewise.
1089*e6c7e151Schristos	(Mips_reloc_types::get_r_addend): Remove unsigned from return type.
1090*e6c7e151Schristos	(Mips_classify_reloc::get_r_type2): New method.
1091*e6c7e151Schristos	(Mips_classify_reloc::get_r_type3): Likewise.
1092*e6c7e151Schristos	(Mips_classify_reloc::get_r_ssym): Likewise.
1093*e6c7e151Schristos	(Target_mips::Reloca_section): Remove.
1094*e6c7e151Schristos	(Relocate::should_apply_static_reloc): Rename from
1095*e6c7e151Schristos	should_apply_r_mips_32_reloc.
1096*e6c7e151Schristos	(Target_mips::copy_reloc): Replace Reltype parameter with r_type
1097*e6c7e151Schristos	and r_offset.
1098*e6c7e151Schristos	(Mips_relocate_functions::Valtype): New type.
1099*e6c7e151Schristos	(Mips_relocate_functions::Valtype64): New type.
1100*e6c7e151Schristos	(Mips_relocate_functions::check_overflow): New method.
1101*e6c7e151Schristos	(Mips_relocate_functions::mips_reloc_unshuffle): Move to public
1102*e6c7e151Schristos	interface.
1103*e6c7e151Schristos	(Mips_relocate_functions::mips_reloc_shuffle): Likewise.
1104*e6c7e151Schristos	(Mips_relocate_functions::rel16): Add support for resolving
1105*e6c7e151Schristos	relocations for Mips64.
1106*e6c7e151Schristos	(Mips_relocate_functions::rel32): Likewise.
1107*e6c7e151Schristos	(Mips_relocate_functions::reljalr): Likewise.
1108*e6c7e151Schristos	(Mips_relocate_functions::relpc32): Likewise.
1109*e6c7e151Schristos	(Mips_relocate_functions::rel26): Likewise.
1110*e6c7e151Schristos	(Mips_relocate_functions::relpc16): Likewise.
1111*e6c7e151Schristos	(Mips_relocate_functions::relmicromips_pc7_s1): Likewise.
1112*e6c7e151Schristos	(Mips_relocate_functions::relmicromips_pc10_s1): Likewise.
1113*e6c7e151Schristos	(Mips_relocate_functions::relmicromips_pc16_s1): Likewise.
1114*e6c7e151Schristos	(Mips_relocate_functions::do_relhi16): Likewise.
1115*e6c7e151Schristos	(Mips_relocate_functions::do_relgot16_local): Likewise.
1116*e6c7e151Schristos	(Mips_relocate_functions::rello16): Likewise.
1117*e6c7e151Schristos	(Mips_relocate_functions::relgot): Likewise.
1118*e6c7e151Schristos	(Mips_relocate_functions::relgotpage): Likewise.
1119*e6c7e151Schristos	(Mips_relocate_functions::relgotofst): Likewise.
1120*e6c7e151Schristos	(Mips_relocate_functions::relgot_hi16): Likewise.
1121*e6c7e151Schristos	(Mips_relocate_functions::relgot_lo16): Likewise.
1122*e6c7e151Schristos	(Mips_relocate_functions::relgprel): Likewise.
1123*e6c7e151Schristos	(Mips_relocate_functions::relgprel32): Likewise.
1124*e6c7e151Schristos	(Mips_relocate_functions::tlsrelhi16): Likewise.
1125*e6c7e151Schristos	(Mips_relocate_functions::tlsrello16): Likewise.
1126*e6c7e151Schristos	(Mips_relocate_functions::tlsrel32): Likewise.
1127*e6c7e151Schristos	(Mips_relocate_functions::relsub): Likewise.
1128*e6c7e151Schristos	(Mips_relocate_functions::releh): New method.
1129*e6c7e151Schristos	(Mips_relocate_functions::rel64): Likewise.
1130*e6c7e151Schristos	(Mips_got_info::record_local_got_symbol): Add is_section_symbol and
1131*e6c7e151Schristos	pass it to Mips_got_entry.
1132*e6c7e151Schristos	(Mips_got_info::add_local_entries): Pass addend argument
1133*e6c7e151Schristos	to code functions, and for STT_SECTION symbols call
1134*e6c7e151Schristos	add_symbolless_local_addend.
1135*e6c7e151Schristos	(Mips_got_info::add_tls_entries): Pass addend argument to code
1136*e6c7e151Schristos	functions.
1137*e6c7e151Schristos	(Mips_relobj::do_read_symbols): Read gp value that was used to
1138*e6c7e151Schristos	create object.
1139*e6c7e151Schristos	(Mips_output_data_plt::plt_entry): Remove opcode from l[wd]
1140*e6c7e151Schristos	instruction. Opcode for instruction will be selected later.
1141*e6c7e151Schristos	(Target_mips::gc_process_relocs): Add case for SHT_RELA.
1142*e6c7e151Schristos	(Target_mips::scan_relocatable_relocs): Likewise.
1143*e6c7e151Schristos	(Target_mips::emit_relocs_scan): Likewise.
1144*e6c7e151Schristos	(Target_mips::relocate_relocs): Likewise.
1145*e6c7e151Schristos	(Target_mips::do_finalize_sections): Skip objects for merging
1146*e6c7e151Schristos	processor specific flags in which all input sections will be
1147*e6c7e151Schristos	discarded.
1148*e6c7e151Schristos	(mips_get_size_for_reloc): Add case for R_MIPS_EH.
1149*e6c7e151Schristos	(Target_mips::Scan::get_reference_flags): Likewise.
1150*e6c7e151Schristos	(Target_mips::relocate_special_relocatable): Call rel26 method with
1151*e6c7e151Schristos	calculate_only and calculated_value arguments.
1152*e6c7e151Schristos	(Target_mips::Scan::local): Add case for R_MIPS_EH. Don't create a
1153*e6c7e151Schristos	dynamic relocation against a readonly sections, and pass
1154*e6c7e151Schristos	is_section_symbol to Mips_got_info::record_local_got_symbol.
1155*e6c7e151Schristos	(Target_mips::Scan::global): Add case for R_MIPS_EH. Don't create a
1156*e6c7e151Schristos	dynamic relocation against a readonly sections, and pass r_type
1157*e6c7e151Schristos	and r_offset to Target_mips::copy_reloc.
1158*e6c7e151Schristos	(Target_mips::Relocate::relocate): Add support for resolving
1159*e6c7e151Schristos	relocations for Mips64.
1160*e6c7e151Schristos	(Target_mips::mips_info): Add case for Mips64 default dynamic
1161*e6c7e151Schristos	linker name.
1162*e6c7e151Schristos	(Target_selector_mips): Correct emulation names.
1163*e6c7e151Schristos
1164*e6c7e151Schristos2016-03-17  Vladimir Radosavljevic  <vladimir.radosavljevic@imgtec.com>
1165*e6c7e151Schristos
1166*e6c7e151Schristos	* mips.cc (class Mips_output_data_la25_stub): Add
1167*e6c7e151Schristos	do_print_to_mapfile function.
1168*e6c7e151Schristos
1169*e6c7e151Schristos2016-03-17  Vladimir Radosavljevic  <vladimir.radosavljevic@imgtec.com>
1170*e6c7e151Schristos
1171*e6c7e151Schristos	* mips.cc (Mips_classify_reloc::put_r_info): Call 32bit version of
1172*e6c7e151Schristos	elf_r_info.
1173*e6c7e151Schristos
1174*e6c7e151Schristos2016-03-09  H.J. Lu  <hongjiu.lu@intel.com>
1175*e6c7e151Schristos
1176*e6c7e151Schristos	* testsuite/plugin_layout_with_alignment.cc: Renamed to ..
1177*e6c7e151Schristos	* testsuite/plugin_layout_with_alignment.c: This.
1178*e6c7e151Schristos	* testsuite/Makefile.am (plugin_layout_with_alignment.o): Updated.
1179*e6c7e151Schristos	(plugin_layout_with_alignment): Likewise.
1180*e6c7e151Schristos	* testsuite/Makefile.in: Regenerated.
1181*e6c7e151Schristos
1182*e6c7e151Schristos2016-03-08  Cary Coutant  <ccoutant@gmail.com>
1183*e6c7e151Schristos
1184*e6c7e151Schristos	PR 19751
1185*e6c7e151Schristos	* testsuite/Makefile.am (retain_symbols_file_test): Remove check
1186*e6c7e151Schristos	for constructor.
1187*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
1188*e6c7e151Schristos	* testsuite/dynamic_list.sh: Likewise.
1189*e6c7e151Schristos	* testsuite/retain_symbols_file_test.sh: Likewise.
1190*e6c7e151Schristos
1191*e6c7e151Schristos2016-03-08  Cary Coutant  <ccoutant@gmail.com>
1192*e6c7e151Schristos
1193*e6c7e151Schristos	PR 19751
1194*e6c7e151Schristos	* arm.cc (Reloc_stub::Key::name): Add unused attribute.
1195*e6c7e151Schristos	* dirsearch.cc (Dir_caches::~Dir_caches): Likewise.
1196*e6c7e151Schristos
1197*e6c7e151Schristos2016-03-08  Cary Coutant  <ccoutant@gmail.com>
1198*e6c7e151Schristos	    Vladimir Radosavljevic  <vladimir.radosavljevic@imgtec.com>
1199*e6c7e151Schristos
1200*e6c7e151Schristos	* output.cc (Output_reloc_writer): New type.
1201*e6c7e151Schristos	(Output_data_reloc_base::do_write): Move implementation to template
1202*e6c7e151Schristos	in output.h and replace with invocation of template.
1203*e6c7e151Schristos	* output.h (Output_file): Move to top of file.
1204*e6c7e151Schristos	(Output_reloc::get_symbol_index): Move to public interface.
1205*e6c7e151Schristos	(Output_reloc::get_address): Likewise.
1206*e6c7e151Schristos	(Output_data_reloc_base::do_write_generic): New function template.
1207*e6c7e151Schristos
1208*e6c7e151Schristos2016-03-04  Cary Coutant  <ccoutant@gmail.com>
1209*e6c7e151Schristos
1210*e6c7e151Schristos	PR gold/19019
1211*e6c7e151Schristos	PR gold/19763
1212*e6c7e151Schristos	* symtab.cc: Instantiate Sized_symbol::init_constant and
1213*e6c7e151Schristos	Sized_symbol::init_undefined.
1214*e6c7e151Schristos
1215*e6c7e151Schristos2016-03-03  Cary Coutant  <ccoutant@gmail.com>
1216*e6c7e151Schristos
1217*e6c7e151Schristos	PR gold/19019
1218*e6c7e151Schristos	* layout.h (Layout::add_target_specific_dynamic_tag): New function.
1219*e6c7e151Schristos	* layout.cc (Layout::add_target_specific_dynamic_tag): New function.
1220*e6c7e151Schristos	* mips.cc (Target_mips::make_symbol): Adjust function signature.
1221*e6c7e151Schristos	* sparc.cc (Target_sparc::Target_sparc): Initialize register_syms_.
1222*e6c7e151Schristos	(Target_sparc::do_is_defined_by_abi): Remove test for
1223*e6c7e151Schristos	STT_SPARC_REGISTER.
1224*e6c7e151Schristos	(Target_sparc::Register_symbol): New struct type.
1225*e6c7e151Schristos	(Target_sparc::register_syms_): New data member.
1226*e6c7e151Schristos	(Target_sparc<64, true>::sparc_info): Set has_make_symbol to true.
1227*e6c7e151Schristos	(Target_sparc::make_symbol): New function.
1228*e6c7e151Schristos	(Target_sparc::do_finalize_sections): Add register symbols and new
1229*e6c7e151Schristos	dynamic table entries.
1230*e6c7e151Schristos	* symtab.h (Sized_symbol::init_undefined): Add value parameter.
1231*e6c7e151Schristos	(Symbol_table::add_target_global_symbol): New function.
1232*e6c7e151Schristos	(Symbol_table::target_symbols_): New data member.
1233*e6c7e151Schristos	* symtab.cc (Sized_symbol::init_undefined): Add value parameter.
1234*e6c7e151Schristos	(Symbol_table::Symbol_table): Initialize target_symbols_.
1235*e6c7e151Schristos	(Symbol_table::add_from_object): Pass additional parameters to
1236*e6c7e151Schristos	Target::make_symbol.
1237*e6c7e151Schristos	(Symbol_table::define_special_symbol): Likewise.
1238*e6c7e151Schristos	(Symbol_table::add_undefined_symbol_from_command_line): Pass 0 for
1239*e6c7e151Schristos	undefined symbol value.
1240*e6c7e151Schristos	(Symbol_table::set_dynsym_indexes): Process target-specific symbols.
1241*e6c7e151Schristos	(Symbol_table::sized_finalize): Likewise.
1242*e6c7e151Schristos	(Symbol_table::sized_write_globals): Likewise.
1243*e6c7e151Schristos	* target.h (Sized_target::make_symbol): Add name, st_type, object,
1244*e6c7e151Schristos	st_shndx, and value parameters.
1245*e6c7e151Schristos
1246*e6c7e151Schristos2016-03-03  Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
1247*e6c7e151Schristos
1248*e6c7e151Schristos	* plugin.cc (do_should_include_member): Ignore LDPK_UNDEF and
1249*e6c7e151Schristos	LDPK_WEAKUNDEF symbols.
1250*e6c7e151Schristos
1251*e6c7e151Schristos2016-03-03  Than McIntosh  <thanm@google.com>
1252*e6c7e151Schristos
1253*e6c7e151Schristos	* plugin.cc (Plugin::load): Include hooks for get_input_section_size
1254*e6c7e151Schristos	and get_input_section_alignment in transfer vector.
1255*e6c7e151Schristos	(get_input_section_alignment): New function.
1256*e6c7e151Schristos	(get_input_section_size): New function.
1257*e6c7e151Schristos	* testsuite/Makefile.am: Add plugin_layout_with_alignment.sh test.
1258*e6c7e151Schristos	* testsuite/Makefile.in: [Regenerate.]
1259*e6c7e151Schristos	* testsuite/plugin_section_alignment.cc: New test file.
1260*e6c7e151Schristos	* testsuite/plugin_layout_with_alignment.cc: New test file.
1261*e6c7e151Schristos	* testsuite/plugin_layout_with_alignment.sh: New test file.
1262*e6c7e151Schristos
1263*e6c7e151Schristos2016-03-03  Evgenii Stepanov  <eugenis@google.com>
1264*e6c7e151Schristos
1265*e6c7e151Schristos	* plugin.h (Pluginobj::get_symbol_resolution_info): Add version
1266*e6c7e151Schristos	parameter.
1267*e6c7e151Schristos	* plugin.cc (get_symbols_v3): New function.
1268*e6c7e151Schristos	(Plugin::load): Add LDPT_GET_SYMBOLS_V3.
1269*e6c7e151Schristos	(Pluginobj::get_symbol_resolution_info): Return LDPS_NO_SYMS when using
1270*e6c7e151Schristos	new version.
1271*e6c7e151Schristos
1272*e6c7e151Schristos2016-02-26  Egor Kochetov  <egor.kochetov@intel.com>
1273*e6c7e151Schristos	    Cary Coutant  <ccoutant@gmail.com>
1274*e6c7e151Schristos
1275*e6c7e151Schristos	PR gold/19735
1276*e6c7e151Schristos	* ehframe.h (Cie::fde_encoding): New method.
1277*e6c7e151Schristos	* ehframe.cc (Eh_frame::read_fde): Discard FDEs for zero-length
1278*e6c7e151Schristos	address ranges.
1279*e6c7e151Schristos
1280*e6c7e151Schristos2016-02-15  H.J. Lu  <hongjiu.lu@intel.com>
1281*e6c7e151Schristos
1282*e6c7e151Schristos	* testsuite/Makefile.am (x86_64_mov_to_lea5.o): Pass
1283*e6c7e151Schristos	-mrelax-relocations=yes to $(TEST_AS).
1284*e6c7e151Schristos	(x86_64_mov_to_lea6.o): Likewise.
1285*e6c7e151Schristos	(x86_64_overflow_pc32.o): Remove duplicated target.
1286*e6c7e151Schristos	* testsuite/Makefile.in: Regenerated.
1287*e6c7e151Schristos
1288*e6c7e151Schristos2016-02-15  Marcin Kościelnicki  <koriakin@0x04.net>
1289*e6c7e151Schristos
1290*e6c7e151Schristos	* s390.cc (Target_s390::match_view_u): New helper method.
1291*e6c7e151Schristos	(Target_s390::do_is_call_to_non_split): New method.
1292*e6c7e151Schristos	(Target_s390::ss_code_st_r14): New const.
1293*e6c7e151Schristos	(Target_s390::ss_code_l_r14): New const.
1294*e6c7e151Schristos	(Target_s390::ss_code_bras_8): New const.
1295*e6c7e151Schristos	(Target_s390::ss_code_l_basr): New const.
1296*e6c7e151Schristos	(Target_s390::ss_code_a_basr): New const.
1297*e6c7e151Schristos	(Target_s390::ss_code_ear): New const.
1298*e6c7e151Schristos	(Target_s390::ss_code_c): New const.
1299*e6c7e151Schristos	(Target_s390::ss_code_larl): New const.
1300*e6c7e151Schristos	(Target_s390::ss_code_brasl): New const.
1301*e6c7e151Schristos	(Target_s390::ss_code_jg): New const.
1302*e6c7e151Schristos	(Target_s390::ss_code_jgl): New const.
1303*e6c7e151Schristos	(Target_s390::ss_match_mcount): New helper method.
1304*e6c7e151Schristos	(Target_s390::ss_match_l): New helper method.
1305*e6c7e151Schristos	(Target_s390::ss_match_ahi): New helper method.
1306*e6c7e151Schristos	(Target_s390::ss_match_alfi): New helper method.
1307*e6c7e151Schristos	(Target_s390::ss_match_cr): New helper method.
1308*e6c7e151Schristos	(Target_s390::do_calls_non_split): New method.
1309*e6c7e151Schristos	* testsuite/Makefile.am: Added new tests.
1310*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
1311*e6c7e151Schristos	* testsuite/split_s390.sh: New test.
1312*e6c7e151Schristos	* testsuite/split_s390_1_a1.s: New test.
1313*e6c7e151Schristos	* testsuite/split_s390_1_a2.s: New test.
1314*e6c7e151Schristos	* testsuite/split_s390_1_n1.s: New test.
1315*e6c7e151Schristos	* testsuite/split_s390_1_n2.s: New test.
1316*e6c7e151Schristos	* testsuite/split_s390_1_z1.s: New test.
1317*e6c7e151Schristos	* testsuite/split_s390_1_z2.s: New test.
1318*e6c7e151Schristos	* testsuite/split_s390_1_z3.s: New test.
1319*e6c7e151Schristos	* testsuite/split_s390_1_z4.s: New test.
1320*e6c7e151Schristos	* testsuite/split_s390_2_ns.s: New test.
1321*e6c7e151Schristos	* testsuite/split_s390_2_s.s: New test.
1322*e6c7e151Schristos	* testsuite/split_s390x_1_a1.s: New test.
1323*e6c7e151Schristos	* testsuite/split_s390x_1_a2.s: New test.
1324*e6c7e151Schristos	* testsuite/split_s390x_1_n1.s: New test.
1325*e6c7e151Schristos	* testsuite/split_s390x_1_n2.s: New test.
1326*e6c7e151Schristos	* testsuite/split_s390x_1_z1.s: New test.
1327*e6c7e151Schristos	* testsuite/split_s390x_1_z2.s: New test.
1328*e6c7e151Schristos	* testsuite/split_s390x_1_z3.s: New test.
1329*e6c7e151Schristos	* testsuite/split_s390x_1_z4.s: New test.
1330*e6c7e151Schristos	* testsuite/split_s390x_2_ns.s: New test.
1331*e6c7e151Schristos	* testsuite/split_s390x_2_s.s: New test.
1332*e6c7e151Schristos
1333*e6c7e151Schristos2016-02-11 Rahul Chaudhry  <rahulchaudhry@google.com>
1334*e6c7e151Schristos
1335*e6c7e151Schristos	* aarch64.cc (Target_aarch64::scan_erratum_843419_span): Remove
1336*e6c7e151Schristos	info message for every erratum 843419 found and fixed.
1337*e6c7e151Schristos
1338*e6c7e151Schristos2016-02-07  Cary Coutant  <ccoutant@gmail.com>
1339*e6c7e151Schristos
1340*e6c7e151Schristos	PR gold/18695
1341*e6c7e151Schristos	* x86_64.cc (Target_x86_64::Relocate::relocate): Add additional
1342*e6c7e151Schristos	information to relocation overflow errors.
1343*e6c7e151Schristos
1344*e6c7e151Schristos2016-02-06  Cary Coutant  <ccoutant@gmail.com>
1345*e6c7e151Schristos
1346*e6c7e151Schristos	PR gold/18695
1347*e6c7e151Schristos	* x86_64.cc (X86_64_relocate_functions::pcrela32_check): Fix x32
1348*e6c7e151Schristos	overflow checking when symbol value + addend < 0.
1349*e6c7e151Schristos
1350*e6c7e151Schristos2016-02-06  Cary Coutant  <ccoutant@gmail.com>
1351*e6c7e151Schristos
1352*e6c7e151Schristos	PR gold/19577
1353*e6c7e151Schristos	* reloc.h (Limits): New class.
1354*e6c7e151Schristos	(Bits::has_overflow32): Use min/max values from Limits.
1355*e6c7e151Schristos	(Bits::has_unsigned_overflow32): Likewise.
1356*e6c7e151Schristos	(Bits::has_signed_unsigned_overflow32): Likewise.
1357*e6c7e151Schristos	(Bits::has_overflow): Likewise.
1358*e6c7e151Schristos	(Bits::has_unsigned_overflow): Likewise.
1359*e6c7e151Schristos	(Bits::has_signed_unsigned_overflow64): Likewise.
1360*e6c7e151Schristos
1361*e6c7e151Schristos2016-02-06  Cary Coutant  <ccoutant@gmail.com>
1362*e6c7e151Schristos
1363*e6c7e151Schristos	PR gold/19567
1364*e6c7e151Schristos	* reloc.h (Relocate_functions::Overflow_check): Add comments.
1365*e6c7e151Schristos	* x86_64.cc (X86_64_relocate_functions): New class.
1366*e6c7e151Schristos	(Target_x86_64::Relocate::relocate): Use the new class.
1367*e6c7e151Schristos	* testsuite/Makefile.am (x86_64_overflow_pc32): Add -Tdata option.
1368*e6c7e151Schristos	(x32_overflow_pc32): New test case.
1369*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
1370*e6c7e151Schristos	* testsuite/x32_overflow_pc32.sh: New script.
1371*e6c7e151Schristos	* testsuite/x86_64_overflow_pc32.s: Remove .space directive.
1372*e6c7e151Schristos
1373*e6c7e151Schristos2016-02-06  Cary Coutant  <ccoutant@gmail.com>
1374*e6c7e151Schristos
1375*e6c7e151Schristos	PR gold/19577
1376*e6c7e151Schristos	* reloc.h (Bits::has_unsigned_overflow32): Fix static_cast.
1377*e6c7e151Schristos	(Bits::has_unsigned_overflow): Remove unnecessary static_cast.
1378*e6c7e151Schristos
1379*e6c7e151Schristos2016-02-06  Cary Coutant  <ccoutant@gmail.com>
1380*e6c7e151Schristos
1381*e6c7e151Schristos	PR gold/19577
1382*e6c7e151Schristos	* reloc.h (Bits::has_unsigned_overflow32): Fix unsigned/signed
1383*e6c7e151Schristos	comparison.
1384*e6c7e151Schristos	(Bits::has_unsigned_overflow): Likewise.
1385*e6c7e151Schristos
1386*e6c7e151Schristos2016-02-06  Marcin Kościelnicki  <koriakin@0x04.net>
1387*e6c7e151Schristos
1388*e6c7e151Schristos	* i386.cc (Target_i386::is_call_to_non_split): Add view and view_size
1389*e6c7e151Schristos	parameters.
1390*e6c7e151Schristos	* reloc.cc (Sized_relobj_file::split_stack_adjust_reltype): Pass view
1391*e6c7e151Schristos	and view_size to is_call_to_non_split.
1392*e6c7e151Schristos	* target.cc (Target::is_call_to_non_split): Add view and view_size
1393*e6c7e151Schristos	parameters.
1394*e6c7e151Schristos	* target.h (class Target): Likewise.
1395*e6c7e151Schristos
1396*e6c7e151Schristos2016-02-05  Sriraman Tallam  <tmsriram@google.com>
1397*e6c7e151Schristos
1398*e6c7e151Schristos	* icf.cc (get_rel_addend): New function.
1399*e6c7e151Schristos	(get_section_contents):  Move merge section addend computation to a
1400*e6c7e151Schristos	new function.  Ignore negative values for SHT_REL and SHT_RELA addends.
1401*e6c7e151Schristos	Fix bug to not read past the length of the section.
1402*e6c7e151Schristos
1403*e6c7e151Schristos2016-02-05  Cary Coutant  <ccoutant@gmail.com>
1404*e6c7e151Schristos	    Andrew Senkevich  <andrew.senkevich@intel.com>
1405*e6c7e151Schristos
1406*e6c7e151Schristos	PR gold/18695
1407*e6c7e151Schristos	* x86_64.cc (Target_x86_64::Relocate::relocate): Add overflow
1408*e6c7e151Schristos	checking for R_X86_64_32, R_X86_64_32S, R_X86_64_PC32, and
1409*e6c7e151Schristos	R_X86_64_PLT32.
1410*e6c7e151Schristos	* testsuite/Makefile.am (x86_64_overflow_pc32): New test.
1411*e6c7e151Schristos	* testsuite/x86_64_overflow_pc32.sh: New test script.
1412*e6c7e151Schristos	* testsuite/x86_64_overflow_pc32.s: New source file.
1413*e6c7e151Schristos
1414*e6c7e151Schristos2016-02-05  Cary Coutant  <ccoutant@gmail.com>
1415*e6c7e151Schristos
1416*e6c7e151Schristos	PR gold/18695
1417*e6c7e151Schristos	* reloc.h (Relocate_functions::Address): New typedef.
1418*e6c7e151Schristos	(Relocate_functions::Addendtype): New typedef.
1419*e6c7e151Schristos	(Relocate_functions::Overflow_check): New enum type.
1420*e6c7e151Schristos	(Relocate_functions::Reloc_status): New enum type.
1421*e6c7e151Schristos	(Relocate_functions::check_overflow): New function template.
1422*e6c7e151Schristos	(Relocate_functions::rel): Add check parameter; check for overflow.
1423*e6c7e151Schristos	(Relocate_functions::rel_unaligned): Likewise.
1424*e6c7e151Schristos	(Relocate_functions::rela): Likewise.
1425*e6c7e151Schristos	(Relocate_functions::pcrel): Likewise.
1426*e6c7e151Schristos	(Relocate_functions::pcrel_unaligned): Likewise.
1427*e6c7e151Schristos	(Relocate_functions::pcrela): Likewise.
1428*e6c7e151Schristos	(Relocate_functions::rel8): Adjust parameter types.
1429*e6c7e151Schristos	(Relocate_functions::rela8): Likewise.
1430*e6c7e151Schristos	(Relocate_functions::pcrel8): Likewise.
1431*e6c7e151Schristos	(Relocate_functions::pcrela8): Likewise.
1432*e6c7e151Schristos	(Relocate_functions::rel16): Likewise.
1433*e6c7e151Schristos	(Relocate_functions::rela168): Likewise.
1434*e6c7e151Schristos	(Relocate_functions::pcrel16): Likewise.
1435*e6c7e151Schristos	(Relocate_functions::pcrela16): Likewise.
1436*e6c7e151Schristos	(Relocate_functions::rel32): Likewise.
1437*e6c7e151Schristos	(Relocate_functions::rel32_unaligned): Likewise.
1438*e6c7e151Schristos	(Relocate_functions::rela32): Likewise.
1439*e6c7e151Schristos	(Relocate_functions::pcrel32): Likewise.
1440*e6c7e151Schristos	(Relocate_functions::pcrel32_unaligned): Likewise.
1441*e6c7e151Schristos	(Relocate_functions::pcrela32): Likewise.
1442*e6c7e151Schristos	(Relocate_functions::rel8_check): New function.
1443*e6c7e151Schristos	(Relocate_functions::rela8_check): New function.
1444*e6c7e151Schristos	(Relocate_functions::pcrel8_check): New function.
1445*e6c7e151Schristos	(Relocate_functions::pcrela8_check): New function.
1446*e6c7e151Schristos	(Relocate_functions::rel16_check): New function.
1447*e6c7e151Schristos	(Relocate_functions::rela168_check): New function.
1448*e6c7e151Schristos	(Relocate_functions::pcrel16_check): New function.
1449*e6c7e151Schristos	(Relocate_functions::pcrela16_check): New function.
1450*e6c7e151Schristos	(Relocate_functions::rel32_check): New function.
1451*e6c7e151Schristos	(Relocate_functions::rel32_unaligned_check): New function.
1452*e6c7e151Schristos	(Relocate_functions::rela32_check): New function.
1453*e6c7e151Schristos	(Relocate_functions::pcrel32_check): New function.
1454*e6c7e151Schristos	(Relocate_functions::pcrel32_unaligned_check): New function.
1455*e6c7e151Schristos	(Relocate_functions::pcrela32_check): New function.
1456*e6c7e151Schristos	(Bits::has_unsigned_overflow32): New function.
1457*e6c7e151Schristos	(Bits::has_unsigned_overflow): New function.
1458*e6c7e151Schristos	* testsuite/Makefile.am (overflow_unittest): New test.
1459*e6c7e151Schristos	* testsuite/Makefile.in: Regenerate.
1460*e6c7e151Schristos	* testsuite/overflow_unittest.cc: New source file.
1461*e6c7e151Schristos
1462*e6c7e151Schristos2016-02-04  Alan Modra  <amodra@gmail.com>
1463*e6c7e151Schristos
1464*e6c7e151Schristos	* powerpc.cc (relocate): Adjust last patch for big-endian.
1465*e6c7e151Schristos
1466*e6c7e151Schristos2016-02-02  Alan Modra  <amodra@gmail.com>
1467*e6c7e151Schristos
1468*e6c7e151Schristos	* powerpc.cc (relocate): Further restrict ELFv2 entry optimization.
1469*e6c7e151Schristos
1470*e6c7e151Schristos2016-01-15 Han Shen  <shenhan@google.com>
1471*e6c7e151Schristos
1472*e6c7e151Schristos	PR gold/19472 - need pc-relative stubs.
1473*e6c7e151Schristos
1474*e6c7e151Schristos	* aarch64.cc (Reloc_stub::stub_type_for_reloc): Return PC-relative
1475*e6c7e151Schristos	stub type for DSOs and pie executables.
1476*e6c7e151Schristos
1477*e6c7e151Schristos2016-01-12  H.J. Lu  <hongjiu.lu@intel.com>
1478*e6c7e151Schristos
1479*e6c7e151Schristos	* i386.cc (Target_i386::Classify_reloc::get_r_addend): Remove
1480*e6c7e151Schristos	'typename'.
1481*e6c7e151Schristos
1482*e6c7e151Schristos2016-01-12  Cary Coutant  <ccoutant@gmail.com>
1483*e6c7e151Schristos
1484*e6c7e151Schristos	* arm.cc (Target_arm::Classify_reloc::get_r_addend): New method.
1485*e6c7e151Schristos	* i386.cc (Target_i386::Classify_reloc::get_r_addend): New method.
1486*e6c7e151Schristos	* mips.cc (Target_arm::Mips_classify_reloc::get_r_addend): (Both
1487*e6c7e151Schristos	specializations) New method.
1488*e6c7e151Schristos
1489*e6c7e151Schristos2016-01-11  Cary Coutant  <ccoutant@gmail.com>
1490*e6c7e151Schristos
1491*e6c7e151Schristos	PR gold/19353
1492*e6c7e151Schristos	* aarch64.cc (Target_aarch64::relocate_tls): Don't insist that
1493*e6c7e151Schristos	we have a TLS segment for GD-to-IE optimization.
1494*e6c7e151Schristos	* i386.cc (Target_i386::tls_gd_to_ie): Remove tls_segment parameter.
1495*e6c7e151Schristos	Adjust all calls.
1496*e6c7e151Schristos	(Target_i386::tls_desc_gd_to_ie): Likewise.
1497*e6c7e151Schristos	(Target_i386::relocate_tls): Don't insist that we have a TLS segment
1498*e6c7e151Schristos	for TLSDESC GD-to-IE optimizations.
1499*e6c7e151Schristos	* x86_64.cc (Target_x86_64::tls_gd_to_ie): Remove tls_segment parameter.
1500*e6c7e151Schristos	Adjust all calls.
1501*e6c7e151Schristos	(Target_x86_64::tls_desc_gd_to_ie): Likewise.
1502*e6c7e151Schristos	(Target_x86_64::relocate_tls): Don't insist that we have a TLS segment
1503*e6c7e151Schristos	for TLSDESC GD-to-IE optimizations.
1504*e6c7e151Schristos
1505*e6c7e151Schristos2016-01-11  Cary Coutant  <ccoutant@gmail.com>
1506*e6c7e151Schristos
1507*e6c7e151Schristos	Refactor gold to enable support for MIPS-64 relocation format.
1508*e6c7e151Schristos
1509*e6c7e151Schristos	* gc.h (get_embedded_addend_size): Remove sh_type parameter.
1510*e6c7e151Schristos	(gc_process_relocs): Remove sh_type template parameter.
1511*e6c7e151Schristos	Use Classify_reloc to access r_sym, r_type, and r_addend fields.
1512*e6c7e151Schristos	* object.h (Sized_relobj_file::split_stack_adjust): Add target
1513*e6c7e151Schristos	parameter.
1514*e6c7e151Schristos	(Sized_relobj_file::split_stack_adjust_reltype): Likewise.
1515*e6c7e151Schristos	* reloc-types.h (Reloc_types::copy_reloc_addend): (SHT_REL and SHT_RELA
1516*e6c7e151Schristos	specializations) Remove.
1517*e6c7e151Schristos	* reloc.cc (Emit_relocs_strategy): Rename and move to target-reloc.h.
1518*e6c7e151Schristos	(Sized_relobj_file::emit_relocs_scan): Call Target::emit_relocs_scan().
1519*e6c7e151Schristos	(Sized_relobj_file::emit_relocs_scan_reltype): Remove.
1520*e6c7e151Schristos	(Sized_relobj_file::split_stack_adjust): Add target parameter.
1521*e6c7e151Schristos	Adjust all callers.
1522*e6c7e151Schristos	(Sized_relobj_file::split_stack_adjust_reltype): Likewise. Call
1523*e6c7e151Schristos	Target::get_r_sym() to get r_sym field from relocations.
1524*e6c7e151Schristos	(Track_relocs::next_symndx): Call Target::get_r_sym().
1525*e6c7e151Schristos	* target-reloc.h (scan_relocs): Remove sh_type template parameter;
1526*e6c7e151Schristos	add Classify_reloc template parameter.  Use for accessing r_sym and
1527*e6c7e151Schristos	r_type.
1528*e6c7e151Schristos	(relocate_section): Likewise.
1529*e6c7e151Schristos	(Default_classify_reloc): New class (renamed and moved from reloc.cc).
1530*e6c7e151Schristos	(Default_scan_relocatable_relocs): Remove sh_type template parameter.
1531*e6c7e151Schristos	(Default_scan_relocatable_relocs::Reltype): New typedef.
1532*e6c7e151Schristos	(Default_scan_relocatable_relocs::reloc_size): New const.
1533*e6c7e151Schristos	(Default_scan_relocatable_relocs::sh_type): New const.
1534*e6c7e151Schristos	(Default_scan_relocatable_relocs::get_r_sym): New method.
1535*e6c7e151Schristos	(Default_scan_relocatable_relocs::get_r_type): New method.
1536*e6c7e151Schristos	(Default_emit_relocs_strategy): New class.
1537*e6c7e151Schristos	(scan_relocatable_relocs): Replace sh_type template parameter with
1538*e6c7e151Schristos	Scan_relocatable_relocs class.  Use it to access r_sym and r_type
1539*e6c7e151Schristos	fields.
1540*e6c7e151Schristos	(relocate_relocs): Replace sh_type template parameter with
1541*e6c7e151Schristos	Classify_reloc class.  Use it to access r_sym and r_type fields.
1542*e6c7e151Schristos	* target.h (Target::is_call_to_non_split): Replace r_type parameter
1543*e6c7e151Schristos	with pointer to relocation. Adjust all callers.
1544*e6c7e151Schristos	(Target::do_is_call_to_non_split): Likewise.
1545*e6c7e151Schristos	(Target::emit_relocs_scan): New virtual method.
1546*e6c7e151Schristos	(Sized_target::get_r_sym): New virtual method.
1547*e6c7e151Schristos	* target.cc (Target::do_is_call_to_non_split): Replace r_type parameter
1548*e6c7e151Schristos	with pointer to relocation.
1549*e6c7e151Schristos
1550*e6c7e151Schristos	* aarch64.cc (Target_aarch64::emit_relocs_scan): New method.
1551*e6c7e151Schristos	(Target_aarch64::Relocatable_size_for_reloc): Remove.
1552*e6c7e151Schristos	(Target_aarch64::gc_process_relocs): Use Default_classify_reloc.
1553*e6c7e151Schristos	(Target_aarch64::scan_relocs): Likewise.
1554*e6c7e151Schristos	(Target_aarch64::relocate_section): Likewise.
1555*e6c7e151Schristos	(Target_aarch64::Relocatable_size_for_reloc::get_size_for_reloc):
1556*e6c7e151Schristos	Remove.
1557*e6c7e151Schristos	(Target_aarch64::scan_relocatable_relocs): Use Default_classify_reloc.
1558*e6c7e151Schristos	(Target_aarch64::relocate_relocs): Use Default_classify_reloc.
1559*e6c7e151Schristos	* arm.cc (Target_arm::Arm_scan_relocatable_relocs): Remove sh_type
1560*e6c7e151Schristos	template parameter.
1561*e6c7e151Schristos	(Target_arm::emit_relocs_scan): New method.
1562*e6c7e151Schristos	(Target_arm::Relocatable_size_for_reloc): Replace with...
1563*e6c7e151Schristos	(Target_arm::Classify_reloc): ...this.
1564*e6c7e151Schristos	(Target_arm::gc_process_relocs): Use Classify_reloc.
1565*e6c7e151Schristos	(Target_arm::scan_relocs): Likewise.
1566*e6c7e151Schristos	(Target_arm::relocate_section): Likewise.
1567*e6c7e151Schristos	(Target_arm::scan_relocatable_relocs): Likewise.
1568*e6c7e151Schristos	(Target_arm::relocate_relocs): Likewise.
1569*e6c7e151Schristos	* i386.cc (Target_i386::emit_relocs_scan): New method.
1570*e6c7e151Schristos	(Target_i386::Relocatable_size_for_reloc): Replace with...
1571*e6c7e151Schristos	(Target_i386::Classify_reloc): ...this.
1572*e6c7e151Schristos	(Target_i386::gc_process_relocs): Use Classify_reloc.
1573*e6c7e151Schristos	(Target_i386::scan_relocs): Likewise.
1574*e6c7e151Schristos	(Target_i386::relocate_section): Likewise.
1575*e6c7e151Schristos	(Target_i386::scan_relocatable_relocs): Likewise.
1576*e6c7e151Schristos	(Target_i386::relocate_relocs): Likewise.
1577*e6c7e151Schristos	* mips.cc (Mips_scan_relocatable_relocs): Remove sh_type template
1578*e6c7e151Schristos	parameter.
1579*e6c7e151Schristos	(Mips_reloc_types): New class template.
1580*e6c7e151Schristos	(Mips_classify_reloc): New class template.
1581*e6c7e151Schristos	(Target_mips::Reltype): New typedef.
1582*e6c7e151Schristos	(Target_mips::Relatype): New typedef.
1583*e6c7e151Schristos	(Target_mips::emit_relocs_scan): New method.
1584*e6c7e151Schristos	(Target_mips::get_r_sym): New method.
1585*e6c7e151Schristos	(Target_mips::Relocatable_size_for_reloc): Replace with
1586*e6c7e151Schristos	Mips_classify_reloc.
1587*e6c7e151Schristos	(Target_mips::copy_reloc): Use Mips_classify_reloc.
1588*e6c7e151Schristos	(Target_mips::gc_process_relocs): Likewise.
1589*e6c7e151Schristos	(Target_mips::scan_relocs): Likewise.
1590*e6c7e151Schristos	(Target_mips::relocate_section): Likewise.
1591*e6c7e151Schristos	(Target_mips::scan_relocatable_relocs): Likewise.
1592*e6c7e151Schristos	(Target_mips::relocate_relocs): Likewise.
1593*e6c7e151Schristos	(mips_get_size_for_reloc): New function, factored out from
1594*e6c7e151Schristos	Relocatable_size_for_reloc::get_size_for_reloc.
1595*e6c7e151Schristos	(Target_mips::Scan::local): Use Mips_classify_reloc.
1596*e6c7e151Schristos	(Target_mips::Scan::global): Likewise.
1597*e6c7e151Schristos	(Target_mips::Relocate::relocate): Likewise.
1598*e6c7e151Schristos	* powerpc.cc (Target_powerpc::emit_relocs_scan): New method.
1599*e6c7e151Schristos	(Target_powerpc::Relocatable_size_for_reloc): Remove.
1600*e6c7e151Schristos	(Target_powerpc::gc_process_relocs): Use Default_classify_reloc.
1601*e6c7e151Schristos	(Target_powerpc::scan_relocs): Likewise.
1602*e6c7e151Schristos	(Target_powerpc::relocate_section): Likewise.
1603*e6c7e151Schristos	(Powerpc_scan_relocatable_reloc): Convert to class template.
1604*e6c7e151Schristos	(Powerpc_scan_relocatable_reloc::Reltype): New typedef.
1605*e6c7e151Schristos	(Powerpc_scan_relocatable_reloc::reloc_size): New const.
1606*e6c7e151Schristos	(Powerpc_scan_relocatable_reloc::sh_type): New const.
1607*e6c7e151Schristos	(Powerpc_scan_relocatable_reloc::get_r_sym): New method.
1608*e6c7e151Schristos	(Powerpc_scan_relocatable_reloc::get_r_type): New method.
1609*e6c7e151Schristos	(Target_powerpc::scan_relocatable_relocs): Use
1610*e6c7e151Schristos	Powerpc_scan_relocatable_reloc.
1611*e6c7e151Schristos	(Target_powerpc::relocate_relocs): Use Default_classify_reloc.
1612*e6c7e151Schristos	* s390.cc (Target_s390::emit_relocs_scan): New method.
1613*e6c7e151Schristos	(Target_s390::Relocatable_size_for_reloc): Remove.
1614*e6c7e151Schristos	(Target_s390::gc_process_relocs): Use Default_classify_reloc.
1615*e6c7e151Schristos	(Target_s390::scan_relocs): Likewise.
1616*e6c7e151Schristos	(Target_s390::relocate_section): Likewise.
1617*e6c7e151Schristos	(Target_s390::Relocatable_size_for_reloc::get_size_for_reloc):
1618*e6c7e151Schristos	Remove.
1619*e6c7e151Schristos	(Target_s390::scan_relocatable_relocs): Use Default_classify_reloc.
1620*e6c7e151Schristos	(Target_s390::relocate_relocs): Use Default_classify_reloc.
1621*e6c7e151Schristos	* sparc.cc (Target_sparc::emit_relocs_scan): New method.
1622*e6c7e151Schristos	(Target_sparc::Relocatable_size_for_reloc): Remove.
1623*e6c7e151Schristos	(Target_sparc::gc_process_relocs): Use Default_classify_reloc.
1624*e6c7e151Schristos	(Target_sparc::scan_relocs): Likewise.
1625*e6c7e151Schristos	(Target_sparc::relocate_section): Likewise.
1626*e6c7e151Schristos	(Target_sparc::Relocatable_size_for_reloc::get_size_for_reloc):
1627*e6c7e151Schristos	Remove.
1628*e6c7e151Schristos	(Target_sparc::scan_relocatable_relocs): Use Default_classify_reloc.
1629*e6c7e151Schristos	(Target_sparc::relocate_relocs): Use Default_classify_reloc.
1630*e6c7e151Schristos	* tilegx.cc (Target_tilegx::emit_relocs_scan): New method.
1631*e6c7e151Schristos	(Target_tilegx::Relocatable_size_for_reloc): Remove.
1632*e6c7e151Schristos	(Target_tilegx::gc_process_relocs): Use Default_classify_reloc.
1633*e6c7e151Schristos	(Target_tilegx::scan_relocs): Likewise.
1634*e6c7e151Schristos	(Target_tilegx::relocate_section): Likewise.
1635*e6c7e151Schristos	(Target_tilegx::Relocatable_size_for_reloc::get_size_for_reloc):
1636*e6c7e151Schristos	Remove.
1637*e6c7e151Schristos	(Target_tilegx::scan_relocatable_relocs): Use Default_classify_reloc.
1638*e6c7e151Schristos	(Target_tilegx::relocate_relocs): Use Default_classify_reloc.
1639*e6c7e151Schristos	* x86_64.cc (Target_x86_64::emit_relocs_scan): New method.
1640*e6c7e151Schristos	(Target_x86_64::Relocatable_size_for_reloc): Remove.
1641*e6c7e151Schristos	(Target_x86_64::gc_process_relocs): Use Default_classify_reloc.
1642*e6c7e151Schristos	(Target_x86_64::scan_relocs): Likewise.
1643*e6c7e151Schristos	(Target_x86_64::relocate_section): Likewise.
1644*e6c7e151Schristos	(Target_x86_64::Relocatable_size_for_reloc::get_size_for_reloc):
1645*e6c7e151Schristos	Remove.
1646*e6c7e151Schristos	(Target_x86_64::scan_relocatable_relocs): Use Default_classify_reloc.
1647*e6c7e151Schristos	(Target_x86_64::relocate_relocs): Use Default_classify_reloc.
1648*e6c7e151Schristos
1649*e6c7e151Schristos	* testsuite/testfile.cc (Target_test::emit_relocs_scan): New method.
1650*e6c7e151Schristos
1651*e6c7e151Schristos2016-01-01  Alan Modra  <amodra@gmail.com>
1652*e6c7e151Schristos
1653*e6c7e151Schristos	Update year range in copyright notice of all files.
1654*e6c7e151Schristos
1655*e6c7e151SchristosFor older changes see ChangeLog-0815
1656*e6c7e151Schristos
1657*e6c7e151SchristosCopyright (C) 2016 Free Software Foundation, Inc.
1658*e6c7e151Schristos
1659*e6c7e151SchristosCopying and distribution of this file, with or without modification,
1660*e6c7e151Schristosare permitted in any medium without royalty provided the copyright
1661*e6c7e151Schristosnotice and this notice are preserved.
1662*e6c7e151Schristos
1663*e6c7e151SchristosLocal Variables:
1664*e6c7e151Schristosmode: change-log
1665*e6c7e151Schristosleft-margin: 8
1666*e6c7e151Schristosfill-column: 74
1667*e6c7e151Schristosversion-control: never
1668*e6c7e151SchristosEnd:
1669