* version.cc (version_string): Bump to 1.6.
[deliverable/binutils-gdb.git] / gold / ChangeLog
1 2008-04-19 Ian Lance Taylor <iant@google.com>
2
3 * version.cc (version_string): Bump to 1.6.
4
5 * testsuite/Makefile.am (many_sections_r_test): New target.
6 (many_sections_r_test_SOURCES): Remove.
7 (many_sections_r_test_DEPENDENCIES): Remove.
8 (many_sections_r_test_LDFLAGS): Remove.
9 (many_sections_r_test_LDADD): Remove.
10
11 * object.cc (Sized_relobj::do_add_symbols): Always pass
12 local_symbol_count_ to add_from_relobj.
13
14 * testsuite/Makefile.am (many_sections_check.h): Only check one in
15 every thousand variables.
16 * testsuite/Makefile.in: Rebuild.
17
18 * object.cc (Xindex::initialize_symtab_xindex): New function.
19 (Xindex::read_symtab_xindex): New function.
20 (Xindex::sym_xindex_to_shndx): New function.
21 (Sized_relobj::find_symtab): Pick up SHT_SYMTAB_SHNDX section if
22 available.
23 (Sized_relobj::do_initialize_xindex): New function.
24 (Sized_relobj::do_read_symbols): Adjust section links.
25 (Sized_relobj::symbol_section_and_value): Add is_ordinary
26 parameter. Change all callers.
27 (Sized_relobj::include_section_group): Adjust section links and
28 symbol section indexes.
29 (Sized_relobj::do_layout): Adjust section links.
30 (Sized_relobj::do_count_local_symbols): Adjust section links and
31 symbol section indexes.
32 (Sized_relobj::do_finalize_local_symbols): Distinguish between
33 ordinary and special symbols.
34 (Sized_relobj::write_local_symbols): Add symtab_xindex and
35 dynsym_xindex parameters. Change all callers. Adjust section
36 links. Use SHN_XINDEX when needed.
37 (Sized_relobj::get_symbol_location_info): Adjust section links.
38 Don't get fooled by special symbols.
39 * object.h (class Xindex): Define.
40 (class Object): Add xindex_ parameter. Declare virtual functoin
41 do_initialize_xindex.
42 (Object::adjust_sym_shndx): New function.
43 (Object::set_xindex): New protected function.
44 (class Symbol_value): Add is_ordinary_shndx_ field.
45 (Symbol_value::Symbol_value): Initialize is_ordinary_shndx_.
46 (Symbol_value::value): Assert ordinary section.
47 (Symbol_value::initialize_input_to_output_map): Likewise.
48 (Symbol_value::set_input_shndx): Add is_ordinary parameter.
49 Change all callers.
50 (Symbol_value::input_shndx): Add is_ordinary parameter. Change
51 all callers.
52 (class Sized_relobj): Update declarations.
53 (Sized_relobj::local_symbol_input_shndx): Add is_ordinary
54 parameter. Change all callers.
55 (Sized_relobj::adjust_shndx): New function.
56 * dynobj.cc (Sized_dynobj::Sized_dynobj): Initialize dynsym_shndx_
57 field.
58 (Sized_dynobj::find_dynsym_sections): Remove pdynsym_shndx
59 parameter. Change all callers. Pick up SHT_DYNSYM_SHNDX section
60 for SHT_DYNSYM section if available. Set dynsym_shndx_ field.
61 (Sized_dynobj::read_dynsym_section): Adjust section links.
62 (Sized_dynobj::read_dynamic): Likewise.
63 (Sized_dynobj::do_read_symbols): Use dynsym_shndx_ field. Adjust
64 section links.
65 (Sized_dynobj::do_initialize_xindex): New function.
66 * dynobj.h (class Sized_dynobj): Add dynsym_shndx_ field. Declare
67 do_initialize_xindex.
68 (Sized_dynobj::adjust_shndx): New function.
69 * layout.cc (Layout::Layout): Initialize symtab_xindex_ and
70 dynsym_xindex_ fields.
71 (Layout::finalize): Add a call to set_section_indexes before
72 creating the symtab sections.
73 (Layout::set_section_indexes): Don't do anything if the section
74 already has a section index.
75 (Layout::create_symtab_sections): Add shnum parameter. Change
76 caller. Create .symtab_shndx section if needed.
77 (Layout::create_shdrs): Add shstrtab_section parameter. Change
78 caller.
79 (Layout::allocated_output_section_count): New function.
80 (Layout::create_dynamic_symtab): Create .dynsym_shndx section if
81 needed.
82 * layout.h (class Layout): Add symtab_xindex_ and dynsym_xindex_
83 fields. Update declarations.
84 (Layout::symtab_xindex): New function.
85 (Layout::dynsym_xindex): New function.
86 (class Write_symbols_task): Add layout_ field.
87 (Write_symbols_task::Write_symbols_task): Add layout parameter.
88 Change caller.
89 * output.cc (Output_section_headers::Output_section_headers): Add
90 shstrtab_section parameter. Change all callers.
91 (Output_section_headers::do_sized_write): Store overflow values
92 for section count and section string table section index in
93 section header zero.
94 (Output_file_header::do_sized_write): Check for overflow of
95 section count and section string table section index.
96 (Output_symtab_xindex::do_write): New function.
97 (Output_symtab_xindex::endian_do_write): New function.
98 * output.h (class Output_section_headers): Add shstrtab_section_.
99 Update declarations.
100 (class Output_symtab_xindex): Define.
101 (Output_section::has_out_shndx): New function.
102 * symtab.cc (Symbol::init_fields): Initialize is_ordinary_shndx_
103 field.
104 (Symbol::init_base): Add st_shndx and is_ordinary parameters.
105 Change all callers.
106 (Sized_symbol::init): Likewise.
107 (Symbol::output_section): Check for ordinary symbol.
108 (Symbol_table::add_from_object): Remove orig_sym parameter. Add
109 st_shndx, is_ordinary, and orig_st_shndx parameters. Change all
110 callers.
111 (Symbol_table::add_from_relobj): Add symndx_offset parameter.
112 Change all callers. Simplify handling of symbols from sections
113 not included in the link.
114 (Symbol_table::add_from_dynobj): Handle ordinary symbol
115 distinction.
116 (Weak_alias_sorter::operator()): Assert that symbols are
117 ordinary.
118 (Symbol_table::sized_finalize_symbol): Handle ordinary symbol
119 distinction.
120 (Symbol_table::write_globals): Add symtab_xindex and dynsym_xindex
121 parameters. Change all callers.
122 (Symbol_table::sized_write_globals): Likewise. Handle ordinary
123 symbol distinction. Use SHN_XINDEX when needed.
124 (Symbol_table::write_section_symbol): Add symtab_xindex
125 parameter. Change all callers.
126 (Symbol_table::sized_write_section_symbol): Likewise. Use
127 SHN_XINDEX when needed.
128 * symtab.h (class Symbol): Add is_ordinary_shndx_ field. Update
129 declarations.
130 (Symbol::shndx): Add is_ordinary parameter. Change all callers.
131 (Symbol::is_defined): Check is_ordinary.
132 (Symbol::is_undefined, Symbol::is_weak_undefined): Likewise.
133 (Symbol::is_absolute, Symbol::is_common): Likewise.
134 (class Sized_symbol): Update declarations.
135 (class Symbol_table): Update declarations.
136 * resolve.cc (Symbol::override_base): Add st_shndx and is_ordinary
137 parameters. Change all callers.
138 (Sized_symbol::override): Likewise.
139 (Symbol_table::override): Likewise.
140 (symbol_to_bits): Add is_ordinary parameter. Change all callers.
141 (Symbol_table::resolve): Remove orig_sym parameter. Add st_shndx,
142 is_ordinary, and orig_st_shndx parameters. Change all callers.
143 * copy-relocs.cc (Copy_relocs::emit_copy_reloc): Require symbol
144 to be in an ordinary section.
145 * dwarf_reader.cc (Sized_dwarf_line_info::symbol_section): Add
146 object and is_ordinary parameters. Change all callers.
147 (Sized_dwarf_line_info::read_relocs): Add object parameter.
148 Change all callers. Don't add undefined or non-ordinary symbols
149 to reloc_map_.
150 (Sized_dwarf_line_info::read_line_mappings): Add object parameter.
151 Change all callers.
152 * dwarf_reader.h (class Sized_dwarf_line_info): Update
153 declarations.
154 * ehframe.cc (Eh_frame::read_fde): Check for ordinary symbol.
155 * reloc.cc (Sized_relobj::do_read_relocs): Adjust section links.
156 (Sized_relobj::relocate_sections): Likewise.
157 * target-reloc.h (scan_relocs): Adjust section symbol index.
158 (scan_relocatable_relocs): Likewise.
159 * i386.cc (Scan::local): Check for ordinary symbols.
160 * sparc.cc (Scan::local): Likewise.
161 * x86_64.cc (Scan::local): Likewise.
162 * testsuite/binary_unittest.cc (Sized_binary_test): Update calls
163 to symbol_section_and_value.
164 * testsuite/many_sections_test.cc: New file.
165 * testsuite/Makefile.am (BUILT_SOURCES): Define.
166 (check_PROGRAMS): Add many_sections_test.
167 (many_sections_test_SOURCES): Define.
168 (many_sections_test_DEPENDENCIES): Define.
169 (many_sections_test_LDFLAGS): Define.
170 (BUILT_SOURCES): Add many_sections_define.h.
171 (many_sections_define.h): New target.
172 (BUILT_SOURCES): Add many_sections_check.h.
173 (many_sections_check.h): New target.
174 (check_PROGRAMS): Add many_sections_r_test.
175 (many_sections_r_test_SOURCES): Define.
176 (many_sections_r_test_DEPENDENCIES): Define.
177 (many_sections_r_test_LDFLAGS): Define.
178 (many_sections_r_test_LDADD): Define.
179 (many_sections_r_test.o): New target.
180 * testsuite/Makefile.in: Rebuild.
181
182 2008-04-17 Cary Coutant <ccoutant@google.com>
183
184 * errors.cc (Errors::info): New function.
185 (gold_info): New function.
186 * errors.h (Errors::info): New function.
187 * gold.h (gold_info): New function.
188 * object.cc (Input_objects::add_object): Print trace output.
189 * options.cc (options::parse_set): New function.
190 (General_options::parse_wrap): Deleted.
191 (General_options::General_options): Deleted initializer.
192 * options.h (options::String_set): New typedef.
193 (options::parse_set): New function.
194 (DEFINE_set): New macro.
195 (General_options::wrap): Changed to use DEFINE_set. Changed
196 callers of any_wrap_symbols and is_wrap_symbol.
197 (General_options::trace, General_options::trace_symbol):
198 New options.
199 (General_options::any_wrap_symbols, General_options::is_wrap_symbol)
200 (General_options::wrap_symbols_): Deleted.
201 * symtab.cc (Symbol_table::add_from_object): Print trace output.
202
203 2008-04-17 David S. Miller <davem@davemloft.net>
204
205 * options.cc (General_options::parse_V): New function.
206 * options.h: Add entries for -V and -Qy.
207
208 2008-04-17 Ian Lance Taylor <iant@google.com>
209
210 * common.cc (Symbol_table::allocate_commons): Remove options
211 parameter. Change caller.
212 (Symbol_table::do_allocate_commons): Remove options parameter.
213 Change caller. Just call do_allocate_commons_list twice.
214 (Symbol_table::do_allocate_commons_list): New function, broken out
215 of do_allocate_commons.
216 * common.h (class Allocate_commons_task): Remove options_ field.
217 Update constructor.
218 * symtab.cc (Symbol_table::Symbol_table): Initialize
219 tls_commons_.
220 (Symbol_table::add_from_object): Put TLS common symbols on
221 tls_commons_ list.
222 (Symbol_table::sized_finalize_symbol): Handle STT_TLS symbols
223 which are IN_OUTPUT_DATA.
224 * symtab.h (class Symbol_table): Add tls_commons_ field. Update
225 allocate_commons and do_allocate_commons declarations. Declare
226 do_allocate_commons_list.
227 * gold.cc (queue_middle_tasks): Update creation of
228 Allocate_commons_task to not pass options.
229 * testsuite/Makefile.am (INCLUDES): Add -I.. .
230 (TLS_TEST_C_FLAGS): New variable.
231 (tls_test_c_pic.o): New target.
232 (tls_test_shared.so): Link in tls_test_c_pic.o.
233 (tls_test_c_pic_ie.o): New target.
234 (tls_test_ie_shared.so): Link in tls_test_c_pic_ie.o.
235 (tls_test_DEPENDENCIES, tls_test_LDADD): Add tls_test_c.o.
236 (tls_test_c.o): New target.
237 (tls_pic_test_DEPENDENCIES): Add tls_test_c_pic.o.
238 (tls_pic_test_LDADD): Likewise.
239 (tls_shared_gd_to_ie_test_DEPENDENCIES): Add tls_test_c_pic.o.
240 (tls_shared_gd_to_ie_test_LDADD): Likewise.
241 (tls_test_c_gnu2.o): New target.
242 (tls_shared_gnu2_gd_to_ie_test_DEPENDENCIES): Add
243 tls_test_c_gnu2.o.
244 (tls_shared_gnu2_gd_to_ie_test_LDADD): Likewise.
245 (tls_test_gnu2_shared.so): Link in tls_test_c_gnu2.o.
246 (tls_test_shared_nonpic.so): Link in tls_test_c.o.
247 * testsuite/tls_test.cc: Include "config.h".
248 (t_last): Call t11_last.
249 * testsuite/tls_test.h (t11, t11_last): Declare.
250 * testsuite/tls_test_c.c: New file.
251 * testsuite/tls_test_main.cc (thread_routine): Call t11.
252 * configure.ac: Check for OpenMP support.
253 * configure, config.in, Makefile.in: Rebuild.
254 * testsuite/Makefile.in: Rebuild.
255
256 2008-04-16 Cary Coutant <ccoutant@google.com>
257
258 * i386.cc (Target_i386::define_tls_base_symbol): New function.
259 (Target_i386::tls_base_symbol_defined_): New field.
260 (Target_i386::Scan::local): Define _TLS_MODULE_BASE_ symbol.
261 (Target_i386::Scan::global): Likewise.
262 * symtab.cc (sized_finalize_symbol): Add check for TLS symbol.
263 * x86_64.cc (Target_x86_64::define_tls_base_symbol): New function.
264 (Target_x86_64::tls_base_symbol_defined_): New field.
265 (Target_x86_64::Scan::local): Define _TLS_MODULE_BASE_ symbol.
266 (Target_x86_64::Scan::global): Likewise.
267
268 2008-04-16 Cary Coutant <ccoutant@google.com>
269
270 * symtab.h (Symbol::is_strong_undefined): Removed unused function.
271 (Symbol::needs_plt_entry): Allow weak undefined symbols.
272 (Symbol::needs_dynamic_reloc): Allow weak undefined symbols when
273 building shared libraries.
274 * testsuite/Makefile.am (weak_undef_nonpic_test): New target.
275 (weak_undef_file1_nonpic.o, weak_undef_file2_nonpic.o)
276 (weak_undef_lib_nonpic.so, alt/weak_undef_lib_nonpic.so): New targets.
277 * testsuite/Makefile.in: Rebuild.
278 * testsuite/weak_undef.h: New file.
279 * testsuite/weak_undef_file1.cc: Add extra test cases.
280 * testsuite/weak_undef_file2.cc: Likewise.
281 * testsuite/weak_undef_test.cc: Likewise.
282
283 2008-04-16 David S. Miller <davem@davemloft.net>
284
285 * sparc.cc (Target_sparc::Scan): Change from struct to class.
286 Add issued_non_pic_error_ field. Declare check_non_pic.
287 (Target_sparc::Scan::check_non_pic): New function.
288 (Target_sparc::Scan::local): Call check_non_pic as appropriate.
289 (Target_sparc::Scan::global): Likewise.
290
291 * configure.ac (FN_PTRS_IN_SO_WITHOUT_PIC): Add sparc64.
292 * configure: Rebuild.
293
294 * options.h (DEFINE_enable): New macro.
295 (new_dtags): New enable option.
296 (initfirst, interpose, loadfltr, nodefaultlib,
297 nodelete, nodlopen, nodump): New -z options.
298 * layout.cc (Layout:finish_dynamic_section): If new
299 dtags enabled, emit DT_RUNPATH. Also, emit a
300 DT_FLAGS_1 containing any specified -z flags.
301
302 2008-04-16 Ian Lance Taylor <iant@google.com>
303
304 * copy-relocs.cc: New file.
305 * copy-relocs.h: New file.
306 * reloc.cc: Remove Copy_relocs code.
307 * reloc.h: Likewise.
308 * reloc-types.h (struct Reloc_types) [both versions]: Add
309 get_reloc_addend_noerror.
310 * output.h (class Output_data_reloc<elfcpp::SHT_REL>): Add
311 variants of add_global which take an addend which must be zero.
312 * i386.cc: Include "copy-relocs.h".
313 (class Target_i386): Change type of copy_relocs_ to variable,
314 update initializer.
315 (Target_i386::copy_reloc): Rewrite to pass to Copy_relocs class.
316 Change all callers.
317 (Target_i386::do_finalize_sections): Change handling of
318 copy_relocs_.
319 * sparc.cc: Include "copy-relocs.h".
320 (class Target_sparc): Change type of copy_relocs_ to variable,
321 update initializer.
322 (Target_sparc::copy_reloc): Rewrite to pass to Copy_relocs class.
323 Change all callers.
324 (Target_sparc::do_finalize_sections): Change handling of
325 copy_relocs_.
326 * x86_64.cc: Include "copy-relocs.h".
327 (class Target_x86_64): Change type of copy_relocs_ to variable,
328 update initializer.
329 (Target_x86_64::copy_reloc): Rewrite to pass to Copy_relocs
330 class. Change all callers.
331 (Target_x86_64::do_finalize_sections): Change handling of
332 copy_relocs_.
333 * Makefile.am (CCFILES): Add copy-relocs.cc.
334 (HFILES): Add copy-relocs.h.
335
336 * Makefile.in, aclocal.m4, testsuite/Makefile.in: Rebuild.
337
338 * testsuite/script_test_4.sh: Permit leading zeroes.
339
340 2008-04-15 Ian Lance Taylor <iant@google.com>
341
342 * script-sections.cc (Script_sections::create_segments): Use
343 header_size_adjustment even when there is enough room for the
344 headers.
345 * testsuite/script_test_4.sh: New file.
346 * testsuite/script_test_4.t: New file.
347 * testsuite/Makefile.am (check_SCRIPTS): Add script_test_4.sh.
348 (check_DATA): Add script_test_4.stdout.
349 (MOSTLYCLEANFILES): Likewise.
350 (script_test_4): New target.
351 (script_test_4.stdout): New target.
352 * testsuite/Makefile.in: Rebuild.
353
354 * sparc.cc: Add definitions for Output_data_plt_sparc class
355 constants.
356
357 2008-04-14 David S. Miller <davem@davemloft.net>
358
359 * sparc.cc: New file.
360 * Makefile.am (TARGETSOURCES): Add sparc.cc
361 (ALL_TARGETOBJS): Add sparc.$(OBJEXT)
362 * configure.tgt: Document targ_extra_size and
363 targ_extra_big_endian. Add entries for sparc-* and
364 sparc64-*.
365 * configure.ac: Handle targ_extra_size and
366 targ_extra_big_endian.
367 * Makefile.in: Rebuild.
368 * configure: Likewise.
369 * po/POTFILES.in: Likewise.
370 * po/gold.pot: Likewise.
371
372 2008-04-14 Ian Lance Taylor <iant@google.com>
373
374 * layout.cc (Layout::Layout): Initialize sections_are_attached_.
375 (Layout::get_output_section): Ignore SHF_WRITE and SHF_EXECINSTR
376 in the name/type/flags to section mapping. Don't call
377 allocate_output_section.
378 (Layout::choose_output_section): Change parameter from adjust_name
379 to is_input_section. Don't permit input sections after sections
380 are attached to segments. Don't call allocate_output_section.
381 (Layout::layout_eh_frame): Call update_flags_for_input_section,
382 not write_enable_output_section.
383 (Layout::make_output_section): Don't push to
384 unattached_section_list_ nor call attach_to_segment. Call
385 attach_section_to_segment if sections are attached.
386 (Layout::attach_sections_to_segments): New function.
387 (Layout::attach_section_to_segment): New function.
388 (Layout::attach_allocated_section_to_segment): Rename from
389 attach_to_segment. Remove flags parameter.
390 (Layout::allocate_output_section): Remove function.
391 (Layout::write_enable_output_section): Remove function.
392 * layout.h (class Layout): Update for above changes. Add new
393 field sections_are_attached_.
394 * output.h (Output_section::update_flags_for_input_section): New
395 function.
396 * output.cc (Output_section::add_input_section): Call
397 update_flags_for_input_section.
398 * gold.cc (queue_middle_tasks): Call attach_sections_to_segments.
399
400 2008-04-11 Cary Coutant <ccoutant@google.com>
401
402 * i386.cc (Target_i386::got_mod_index_entry): Restore code previously
403 thought unnecessary.
404 * x86_64.cc (Target_x86_64::got_mod_index_entry): Likewise.
405
406 2008-04-11 Ian Lance Taylor <iant@google.com>
407
408 * output.h (class Output_section_data): Remove inline definition
409 of set_addralign.
410 * output.cc (Output_section_data::set_addralign): New function.
411
412 2008-04-11 Cary Coutant <ccoutant@google.com>
413
414 Add support for TLS descriptors for i386 and x86_64.
415 * i386.cc (Target_i386::Relocate::tls_desc_gd_to_ie): New function.
416 (Target_i386::Relocate::tls_desc_gd_to_le): New function.
417 (Target_i386::Got_type): Add GOT_TYPE_TLS_NOFFSET and
418 GOT_TYPE_TLS_DESC.
419 (Target_i386::got_mod_index_entry): Remove unnecessary code.
420 (Target_i386::Scan::local): Implement R_386_TLS_GOTDESC and
421 R_386_TLS_DESC_CALL relocations. Fix problem with initial-exec
422 relocations.
423 (Target_i386::Scan::global): Fix problem with GD-to-IE relaxation.
424 Implement R_386_TLS_GOTDESC and R_386_TLS_DESC_CALL relocations;
425 Fix problem with initial-exec relocations.
426 (Target_i386::Relocate::relocate_tls): Likewise.
427 (Target_i386::Relocate::tls_gd_to_ie): Fix problem with GD-to-IE
428 relaxation.
429 * output.cc (Output_data_dynamic::Dynamic_entry::write): Add
430 support for section-plus-offset dynamic table entries.
431 * output.h (Output_data_dynamic::add_section_plus_offset): New function.
432 (Output_data_dynamic::Dynamic_entry): Add support for
433 section-plus-offset dynamic table entries.
434 (Output_data_dynamic::Classification): Likewise.
435 (Output_data_dynamic::classification_): Renamed offset_.
436 * x86_64.cc (Target_x86_64::Relocate::tls_desc_gd_to_ie): New function.
437 (Target_x86_64::Relocate::tls_desc_gd_to_le): New function.
438 (Target_x86_64::make_plt_section): New function.
439 (Target_x86_64::reserve_tlsdesc_entries): New function.
440 (Output_data_plt_x86_64::Output_data_plt_x86_64): Add new parameter.
441 (Output_data_plt_x86_64::reserve_tlsdesc_entry): New function.
442 (Output_data_plt_x86_64::has_tlsdesc_entry): New function.
443 (Output_data_plt_x86_64::get_tlsdesc_got_offset): New function.
444 (Output_data_plt_x86_64::get_tlsdesc_plt_offset): New function.
445 (Output_data_plt_x86_64::tlsdesc_plt_entry): New field.
446 (Output_data_plt_x86_64::set_final_data_size): Move out of line;
447 add extra PLT entry for TLS descriptors.
448 (Output_data_plt_x86_64::got_): New field.
449 (Output_data_plt_x86_64::tlsdesc_got_offset_): New field.
450 (Output_data_plt_x86_64::Output_data_plt_x86_64): Initialize new
451 fields.
452 (Output_data_plt_x86_64::do_write): Write extra PLT entry for TLS
453 descriptors.
454 (Target_x86_64::make_plt_entry): Factor out make_plt_section.
455 (Target_x86_64::got_mod_index_entry): Remove unnecessary code.
456 (Target_x86_64::Scan::local): Implement R_386_TLS_GOTDESC and
457 R_386_TLS_DESC_CALL relocations.
458 (Target_x86_64::Scan::global): Likewise.
459 (Target_x86_64::do_finalize_sections): Add dynamic table entries
460 for TLS descriptors.
461 (Relocate::relocate_tls): Fix problem with GD-to-IE relaxation.
462 Implement R_386_TLS_GOTDESC and R_386_TLS_DESC_CALL relocations.
463 (Target_x86_64::Relocate::tls_gd_to_ie): Fix problem with
464 GD-to-IE relaxation.
465 * configure.ac: Export new conditional variables TLS_GNU2_DIALECT
466 and TLS_DESCRIPTORS.
467 * Makefile.in: Rebuild.
468 * configure: Rebuild.
469 * testsuite/Makefile.am (tls_shared_gd_to_ie_test): New target.
470 (tls_test_shared2.so): New target.
471 (tls_shared_gd_to_ie_test_SOURCES): New variable.
472 (tls_shared_gd_to_ie_test_DEPENDENCIES): New variable.
473 (tls_shared_gd_to_ie_test_LDFLAGS): New variable.
474 (tls_shared_gd_to_ie_test_LDADD): New variable.
475 (tls_shared_gnu2_gd_to_ie_test): New target.
476 (tls_test_gnu2.o, tls_test_file2_gnu2.o, tls_test_gnu2_shared2.so):
477 New targets.
478 (tls_shared_gnu2_gd_to_ie_test_SOURCES): New variable.
479 (ls_shared_gnu2_gd_to_ie_test_DEPENDENCIES): New variable.
480 (tls_shared_gnu2_gd_to_ie_test_LDFLAGS): New variable.
481 (tls_shared_gnu2_gd_to_ie_test_LDADD): New variable.
482 (tls_shared_gnu2_test): New target.
483 (tls_test_gnu2_shared.so): New target.
484 (tls_shared_gnu2_test_SOURCES): New variable.
485 (tls_shared_gnu2_test_DEPENDENCIES): New variable.
486 (tls_shared_gnu2_test_LDFLAGS): New variable.
487 (tls_shared_gnu2_test_LDADD): New variable.
488 * testsuite/Makefile.in: Rebuild.
489 * testsuite/Makefile.
490
491 2008-04-11 Ian Lance Taylor <iant@google.com>
492
493 * testsuite/Makefile.am (justsyms_2r.o): Add dependency on
494 justsyms.t.
495 * testsuite/Makefile.in: Rebuild.
496
497 * testsuite/script_test_2a.cc (script_test_string_a): Make 8 bytes
498 long.
499 * testsuite/script_test_2.cc (main): Adjust test.
500
501 2008-04-11 David S. Miller <davem@davemloft.net>
502 Ian Lance Taylor <iant@google.com>
503
504 * options.h (General_options): Add entries for '-Y' and
505 '-relax'.
506 * options.cc (General_options:finalize): If -Y was used, add those
507 entries to the library path instead of the default "/lib" and
508 "/usr/lib".
509
510 2008-04-11 David S. Miller <davem@davemloft.net>
511
512 * testsuite/justsyms.t: Start at 0x100.
513 * testsuite/justsyms_1.cc: Adjust justsyms_string assertion.
514 * testsuite/script_test_2b.cc (script_test_string_b): Make 8 bytes
515 long.
516 * testsuite/script_test_2.cc: Adjust string and section length
517 checks.
518
519 2008-04-09 Ian Lance Taylor <iant@google.com>
520
521 PR gold/5996
522 * script-sections.cc (Sections_element::allocate_to_segment): Add
523 orphan parameter.
524 (Output_section_definition::allocate_to_segment): Likewise.
525 (Orphan_output_section::allocate_to_segment): Likewise.
526 (Script_sections::attach_sections_using_phdrs_clause): Don't
527 propagate non-PT_LOAD segments to orphan sections.
528 * testsuite/Makefile.am (script_test_3.stdout): Generate using
529 readelf rather than objdump.
530 * testsuite/script_test_3.sh: Adjust accordingly. Test that
531 .interp section and PT_INTERP segment are the same size.
532 * testsuite/Makefile.in: Rebuild.
533
534 * symtab.cc (Symbol_table::add_from_dynobj): Only look for weak
535 aliases for symbols defined in the same object.
536 * testsuite/Makefile.am (check_PROGRAMS): Add weak_alias_test.
537 (weak_alias_test_SOURCES): New variable.
538 (weak_alias_test_DEPENDENCIES): New variable.
539 (weak_alias_test_LDFLAGS): New variable.
540 (weak_alias_test_LDADD): New variable.
541 (weak_alias_test_1_pic.o, weak_alias_test_1.so): New targets.
542 (weak_alias_test_2_pic.o, weak_alias_test_2.so): New targets.
543 (weak_alias_test_3.o): New target.
544 (weak_alias_test_4_pic.o, weak_alias_test_4.so): New targets.
545 * testsuite/weak_alias_test_main.cc: New file.
546 * testsuite/weak_alias_test_1.cc: New file.
547 * testsuite/weak_alias_test_2.cc: New file.
548 * testsuite/weak_alias_test_3.cc: New file.
549
550 2008-04-08 Ian Lance Taylor <iant@google.com>
551
552 * options.h (class General_options): Add --noinhibit-exec option.
553 * main.cc (main): Check --noinhibit-exec.
554
555 * options.h (class General_options): Define --wrap as a special
556 option. Add wrap_symbols_ field.
557 (General_options::any_wrap_symbols): New function.
558 (General_options::is_wrap_symbol): New function.
559 * options.cc (General_options::parse_wrap): New function.
560 (General_options::General_options): Initialize wrap_symbols_.
561 * symtab.cc (Symbol_table::wrap_symbol): New function.
562 (Symbol_table::add_from_object): Handle --wrap.
563 * symtab.h (class Symbol_table): Declare wrap_symbol.
564 * target.h (Target::wrap_char): New function.
565 (Target::Target_info): Add wrap_char field.
566 * i386.cc (Target_i386::i386_info): Initialize wrap_char.
567 * x86_64.cc (Target_x86_64::x86_64_info): Likewise.
568 * testsuite/testfile.cc (Target_test::test_target_info):
569 Likewise.
570
571 * errors.cc (Errors::undefined_symbol): Mention symbol version if
572 there is one.
573
574 * layout.h (class Layout): Add added_eh_frame_data_ field.
575 * layout.cc (Layout::Layout): Initialize new field.
576 (Layout::layout_eh_frame): Don't add eh_frame_data_ to .eh_frame
577 output section until we find a section we merged successfully.
578 * object.cc (Sized_relobj::check_eh_frame_flags): Don't require
579 that the size be non-zero.
580
581 * merge.cc (Object_merge_map::get_output_offset): Remove inline
582 qualifier.
583
584 2008-04-08 Craig Silverstein <csilvers@google.com>
585
586 * configure.ac: Export new conditional variable HAVE_ZLIB.
587 * testsuite/Makefile.am (flagstest_o_specialfile): Condition
588 on HAVE_ZLIB.
589 (flagstest_o_specialfile_and_compress_debug_sections): Likewise.
590 * configure, Makefile.in, testsuite/Makefile.in: Rebuild.
591
592 2008-04-07 Ian Lance Taylor <iant@google.com>
593
594 * version.cc (version_string): Set to "1.5".
595
596 * x86_64.cc (Target_x86_64::Scan): Change from struct to class.
597 Add issued_non_pic_error_ field. Declare check_non_pic.
598 (Target_x86_64::Scan::check_non_pic): New function.
599 (Target_x86_64::Scan::local): Call check_non_pic as appropriate.
600 (Target_x86_64::Scan::global): Likewise.
601
602 * output.cc (Output_reloc<SHT_REL>::local_section_offset): Add
603 addend parameter. Change caller. Handle merge sections.
604 (Output_reloc<SHT_REL>::symbol_value): Change parameter type from
605 Address to Addend. Don't add in the result of
606 local_section_offset, pass down the addend and use the returned
607 value.
608 * output.h (class Output_reloc<SHT_REL>): Add Addend typedef.
609 Update declarations of local_section_offset and symbol_value.
610 * testsuite/two_file_test_1.cc (t18): New function.
611 * testsuite/two_file_test_2.cc (f18): New function.
612 * testsuite/two_file_test_main.cc (main): Call t18.
613 * testsuite/two_file_test.h (t18, f18): Declare.
614
615 * configure.ac: Don't test for objdump, c++filt, or readelf.
616 * testsuite/Makefile.am: Remove READELF and OBJDUMP_AND_CPPFILT
617 conditionals.
618 (TEST_READELF): New variable.
619 (TEST_OBJDUMP, TEST_CXXFILT, TEST_STRIP): New variables.
620 (check_PROGRAMS): Add two_file_strip_test.
621 (two_file_strip_test): New target.
622 (check_PROGRAMS): Add two_file_same_shared_strip_test.
623 (two_file_same_shared_strip_test_SOURCES): New variable.
624 (two_file_same_shared_strip_test_DEPENDENCIES): New variable.
625 (two_file_same_shared_strip_test_LDFLAGS): New variable.
626 (two_file_same_shared_strip_test_LDADD): New variable.
627 (two_file_shared_strip.so): New target.
628 (ver_test_2.syms, ver_test_4.syms): Use TEST_READELF.
629 (ver_test_5.syms, ver_test_7.syms): Likewise.
630 (ver_matching_test.stdout): Use TEST_OBJDUMP and TEST_CXXFILT.
631 (strip_test_3.stdout): Use TEST_OBJDUMP.
632 * configure, Makefile.in, testsuite/Makefile.in: Rebuild.
633
634 2008-04-04 Cary Coutant <ccoutant@google.com>
635
636 * symtab.h (Symbol::is_weak_undefined): New function.
637 (Symbol::is_strong_undefined): New function.
638 (Symbol::is_absolute): New function.
639 (Symbol::needs_plt_entry): Exclude weak undefined symbols.
640 (Symbol::needs_dynamic_reloc): Exclude weak undefined and
641 absolute symbols.
642 * testsuite/Makefile.am (check_PROGRAMS): Add weak_undef_test.
643 (weak_undef_test): New target.
644 * testsuite/Makefile.in: Rebuild.
645 * testsuite/weak_undef_file1.cc: New file.
646 * testsuite/weak_undef_file2.cc: New file.
647 * testsuite/weak_undef_test.cc: New file.
648
649 2008-04-03 Craig Silverstein <csilvers@google.com>
650
651 * compressed_output.h (class Output_compressed_section): Use
652 unsigned buffer.
653 * compressed_output.cc (zlib_compress): Use unsigned buffers,
654 add zlib header.
655 (zlib_compressed_suffix): Removed.
656 (Output_compressed_section::set_final_data_size): Use unsigned
657 buffers.
658 * testsuite/Makefile.am (flagstest_compress_debug_sections):
659 Fix linker invocation.
660 (flagstest_o_specialfile_and_compress_debug_sections):
661 Likewise.
662 * testsuite/Makefile.in: Regenerated.
663
664 2008-04-02 David S. Miller <davem@davemloft.net>
665
666 * dwarf_reader.cc (Sized_dwarf_line_info::read_header_prolog,
667 Sized_dwarf_line_info::process_one_opcode): Use Swap_unaligned.
668
669 2008-04-02 Craig Silverstein <csilvers@google.com>
670
671 * TODO: New file.
672
673 2008-04-02 Ian Lance Taylor <iant@google.com>
674
675 * fileread.cc (File_read::find_view): Add byteshift and vshifted
676 parameters. Update for new key type to views_. Change all
677 callers.
678 (File_read::read): Adjust for byteshift in returned view.
679 (File_read::add_view): New function, broken out of
680 find_and_make_view.
681 (File_read::make_view): New function, broken out of
682 find_and_make_view.
683 (File_read::find_or_make_view): Add offset and aligned
684 parameters. Rewrite accordingly. Change all callers.
685 (File_read::get_view): Add offset and aligned parameters. Adjust
686 for byteshift in return value.
687 (File_read::get_lasting_view): Likewise.
688 * fileread.h (class File_read): Update declarations.
689 (class File_read::View): Add byteshift_ field. Add byteshift to
690 constructor. Add byteshift method.
691 * archive.h (Archive::clear_uncached_views): New function.
692 (Archive::get_view): Add aligned parameter. Change all callers.
693 * object.h (Object::get_view): Add aligned parameter. Change all
694 callers.
695 (Object::get_lasting_view): Likewise.
696
697 * fileread.cc (File_read::release): Don't call clear_views if
698 there are multiple objects.
699 * fileread.h (File_read::clear_uncached_views): New function.
700 * archive.cc (Add_archive_symbols::run): Call clear_uncached_views
701 on the archive.
702
703 2008-03-31 Cary Coutant <ccoutant@google.com>
704
705 Add thin archive support.
706 * archive.cc (Archive::armagt): New const.
707 (Archive::setup): Remove task parameter and calls to unlock.
708 (Archive::unlock_nested_archives): New function.
709 (Archive::read_header): Add nested_off parameter. Change
710 all callers.
711 (Archive::interpret_header): Likewise.
712 (Archive::include_all_members): Change to handle thin
713 archives.
714 (Archive::include_member): Likewise.
715 * archive.h (Archive::Archive): Add new parameters and
716 initializers.
717 (Archive::armagt): New const.
718 (Archive::setup): Remove task parameter.
719 (Archive::unlock_nested_archives): New function.
720 (Archive::read_header): Add nested_off parameter.
721 (Archive::interpret_header): Likewise.
722 (Archive::Nested_archive_table): New typedef.
723 (Archive::is_thin_archive_): New field.
724 (Archive::nested_archives_): New field.
725 (Archive::options_): New field.
726 (Archive::dirpath_): New field.
727 (Archive::task_): New field.
728 * readsyms.cc (Read_symbols::do_read_symbols): Add check
729 for thin archives. Pass additional parameters to
730 Archive::Archive. Unlock the archive file after calling
731 Archive::setup.
732
733 2008-03-29 Ian Lance Taylor <iant@google.com>
734
735 * symtab.cc (Symbol_table::do_define_as_constant): Don't force a
736 version symbol to be local.
737 * testsuite/ver_test_4.sh: New file.
738 * testsuite/Makefile.am (check_SCRIPTS): Add ver_test_4.sh.
739 (check_DATA): Add ver_test_4.syms.
740 (ver_test_4.syms): New target.
741 * testsuite/Makefile.in: Rebuild.
742
743 * output.cc
744 (Output_section::Input_section_sort_entry::has_priority): New
745 function.
746 (Output_section::Input_section_sort_entry::match_file_name): New
747 function.
748 (Output_section::Input_section_sort_entry::match_section_name):
749 Remove.
750 (Output_section::Input_section_sort_entry::match_section_name_prefix):
751 Remove.
752 (Output_section::Input_section_sort_entry::match_section_file):
753 Remove.
754 (Output_section::Input_section_sort_compare::operator()): Rewrite
755 using new Input_section_sort_entry functions. Sort crtbegin and
756 crtend first. Sort sections with no priority before sections with
757 a priority.
758 * testsuite/initpri1.c (d3): Check j != 4.
759 (cd5): New constructor/destructor function.
760 (main): Check j != 2.
761
762 * symtab.cc (Symbol_table::add_from_object): If we don't use the
763 new symbol when resolving, don't call set_is_default.
764 * testsuite/ver_test_7.cc: New file.
765 * testsuite/ver_test_7.sh: New file.
766 * testsuite/Makefile.am (ver_test_7.so): New target.
767 (ver_test_7.o): New target.
768 (check_SCRIPTS): Add ver_test_7.sh.
769 (check_DATA): Add ver_test_7.syms.
770 (ver_test_7.syms): New target.
771
772 2008-03-28 Ian Lance Taylor <iant@google.com>
773
774 * layout.cc (Layout::layout): If we see an input section with a
775 name that needs sorting, set the must_sort flag for the output
776 section.
777 (Layout::make_output_section): If the name of the output section
778 indicates that it might require sorting, set the may_sort flag.
779 * output.h (Output_section::may_sort_attached_input_sections): New
780 function.
781 (Output_section::set_may_sort_attached_input_sections): New
782 function.
783 (Output_section::must_sort_attached_input_sections): New
784 function.
785 (Output_section::set_must_sort_attached_input_sections): New
786 function.
787 (class Output_section): Declare Input_section_sort_entry. Define
788 Input_section_sort_compare. Declare
789 sort_attached_input_sections. Add new fields:
790 may_sort_attached_input_sections_,
791 must_sort_attached_input_sections_,
792 attached_input_sections_are_sorted_.
793 * output.cc (Output_section::Output_section): Initialize new
794 fields.
795 (Output_section::add_input_section): Add an entry to
796 input_sections_ if may_sort or must_sort are true.
797 (Output_section::set_final_data_size): Call
798 sort_attached_input_sections if necessary.
799 (Output_section::Input_section_sort_entry): Define new class.
800 (Output_section::Input_section_sort_compare::operator()): New
801 function.
802 (Output_section::sort_attached_input_sections): New function.
803 * configure.ac: Check whether the compiler supports constructor
804 priorities. Define a CONSTRUCTOR_PRIORITY automake conditional.
805 * testsuite/initpri1.c: New file.
806 * testsuite/Makefile.am (check_PROGRAMS): Add initpri1 if
807 CONSTRUCTOR_PRIORITY.
808 (initpri1_SOURCES, initpri1_DEPENDENCIES): New variables.
809 (initpri1_LDFLAGS): New variable.
810 * configure, Makefile.in, testsuite/Makefile.in: Rebuild.
811
812 2008-03-27 Ian Lance Taylor <iant@google.com>
813
814 * common.cc (Sort_commons::operator): Correct sorting algorithm.
815 * testsuite/common_test_1.c: New file.
816 * testsuite/Makefile.am (check_PROGRAMS): Add common_test_1.
817 (common_test_1_SOURCES): New variable.
818 (common_test_1_DEPENDENCIES): New variable.
819 (common_test_1_LDFLAGS): New variable.
820
821 * symtab.cc (Symbol_table::add_from_object): Handle saw_undefined_
822 and commons_ correctly when NAME/VERSION does not override
823 NAME/NULL.
824 * testsuite/ver_test_6.c: New file.
825 * testsuite/Makefile.am (check_PROGRAMS): Add ver_test_6
826 (ver_test_6_SOURCES, ver_test_6_DEPENDENCIES): New variables.
827 (ver_test_6_LDFLAGS, ver_test_6_LDADD): New variables.
828
829 2008-03-26 Ian Lance Taylor <iant@google.com>
830
831 * symtab.cc (Symbol_table::add_from_relobj): Don't set the version
832 of an undefined symbol from a version script.
833 * testsuite/Makefile.am (ver_test_5.so): New target.
834 (ver_test_5.o): New target.
835 (check_SCRIPTS): Add ver_test_5.sh.
836 (check_DATA): Add ver_test_5.syms.
837 (ver_test_5.syms): New target.
838 * testsuite/ver_test_5.cc: New file.
839 * testsuite/ver_test_5.script: New file.
840 * testsuite/ver_test_5.sh: New file.
841 * Makefile.in, testsuite/Makefile.in: Rebuild.
842
843 PR gold/5986
844 Fix problems building gold with gcc 4.3.0.
845 * gold.h (TEMPLATE_ATTRIBUTE_PRINTF_4): Define.
846 (gold_error_at_location, gold_warning_at_location): Use it.
847 * configure.ac: Check whether we can compile and use a template
848 function with a printf attribute.
849 * x86_64.cc (Target_x86_64::do_code_fill): Swap out a 32-bit value
850 when jumping over bytes.
851 * object.cc: Instantiate Object::read_section_data.
852 * debug.h: Include <cstring>
853 * dwarf_reader.cc: Include <algorithm>
854 * main.cc: Include <cstring>.
855 * options.cc: Include <cstring>.
856 * output.cc: Include <cstring>.
857 * script.cc: Include <cstring>.
858 * script.h: Include <string>.
859 * symtab.cc: Include <cstring> and <algorithm>.
860 * target-select.cc: Include <cstring>.
861 * version.cc: Include <string>.
862 * testsuite/testmain.cc: Include <cstdlib>.
863 * configure, config.in: Rebuild.
864
865 2008-03-25 Ian Lance Taylor <iant@google.com>
866
867 * options.cc: Include "../bfd/bfdver.h".
868 (options::help): Print bug reporting address.
869
870 * version.cc (print_version): Adjust output for current value of
871 BFD_VERSION_STRING.
872
873 * NEWS: New file.
874
875 * options.cc (options::help): Print list of supported targets.
876 * target-select.h: Include <vector>.
877 (class Target_selector): Make machine_, size_, and is_big_endian_
878 fields const. Add bfd_name_ and instantiated_target_ fields.
879 (Target_selector::Target_selector): Add bfd_name parameter.
880 (Target_selector::recognize): Make non-virtual, call
881 do_recognize.
882 (Target_selector::recognize_by_name): Make non-virtual, call
883 do_recognize_by_name.
884 (Target_selector::supported_names): New function.
885 (Target_selector::bfd_name): New function.
886 (Target_selector::do_instantiate_target): New pure virtual
887 function.
888 (Target_selector::do_recognize): New virtual function.
889 (Target_selector::do_recognize_by_name): New virtual function.
890 (Target_selector::instantiate_target): New private function.
891 (supported_target_names): Declare.
892 * target-select.cc (Target_selector::Target_selector): Update for
893 new parameter and fields.
894 (select_target_by_name): Check that the name matches before
895 calling recognize_by_name.
896 (supported_target_names): New function.
897 * i386.cc (class Target_selector_i386): Update Target_selector
898 constructor call. Remove recognize and recognize_by_name. Add
899 do_instantiate_target.
900 * x86_64.cc (class Target_selector_x86_64): Likewise.
901 * testsuite/testfile.cc (class Target_selector_test): Update for
902 changes to Target_selector.
903
904 * README: Rewrite, with some notes on unsupported features.
905
906 2008-03-24 Cary Coutant <ccoutant@google.com>
907
908 * i386.cc (Target_i386::Got_type): New enum declaration.
909 (Target_i386::Scan::local): Updated callers of Output_data_got
910 member functions.
911 (Target_i386::Scan::global): Likewise.
912 (Target_i386::Relocate::relocate): Likewise.
913 (Target_i386::Relocate::relocate_tls): Likewise.
914 * object.h (Got_offset_list): New class.
915 (Sized_relobj::local_has_got_offset): Added got_type parameter.
916 (Sized_relobj::local_got_offset): Likewise.
917 (Sized_relobj::set_local_got_offset): Likewise.
918 (Sized_relobj::local_has_tls_got_offset): Removed.
919 (Sized_relobj::local_tls_got_offset): Removed.
920 (Sized_relobj::set_local_tls_got_offset): Removed.
921 (Sized_relobj::Local_got_offsets): Changed to store a list of offsets.
922 * output.cc (Output_data_got::add_global): Added got_type parameter.
923 (Output_data_got::add_global_with_rel): Likewise.
924 (Output_data_got::add_global_with_rela): Likewise.
925 (Output_data_got::add_global_pair_with_rel): New function.
926 (Output_data_got::add_global_pair_with_rela): New function.
927 (Output_data_got::add_local): Added got_type parameter.
928 (Output_data_got::add_local_with_rel): Likewise.
929 (Output_data_got::add_local_with_rela): Likewise.
930 (Output_data_got::add_local_pair_with_rel): New function.
931 (Output_data_got::add_local_pair_with_rela): New function.
932 (Output_data_got::add_global_tls): Removed.
933 (Output_data_got::add_global_tls_with_rel): Removed.
934 (Output_data_got::add_global_tls_with_rela): Removed.
935 (Output_data_got::add_local_tls): Removed.
936 (Output_data_got::add_local_tls_with_rel): Removed.
937 (Output_data_got::add_local_tls_with_rela): Removed.
938 * output.h (Output_data_got::add_global): Added got_type parameter.
939 (Output_data_got::add_global_with_rel): Likewise.
940 (Output_data_got::add_global_with_rela): Likewise.
941 (Output_data_got::add_global_pair_with_rel): New function.
942 (Output_data_got::add_global_pair_with_rela): New function.
943 (Output_data_got::add_local): Added got_type parameter.
944 (Output_data_got::add_local_with_rel): Likewise.
945 (Output_data_got::add_local_with_rela): Likewise.
946 (Output_data_got::add_local_pair_with_rel): New function.
947 (Output_data_got::add_local_pair_with_rela): New function.
948 (Output_data_got::add_global_tls): Removed.
949 (Output_data_got::add_global_tls_with_rel): Removed.
950 (Output_data_got::add_global_tls_with_rela): Removed.
951 (Output_data_got::add_local_tls): Removed.
952 (Output_data_got::add_local_tls_with_rel): Removed.
953 (Output_data_got::add_local_tls_with_rela): Removed.
954 * resolve.cc (Symbol::override_base_with_special): Removed
955 reference to has_got_offset_ field.
956 * symtab.cc (Symbol::init_fields): Replaced initialization
957 of got_offset_ with got_offsets_. Removed initialization
958 of has_got_offset_
959 * symtab.h (Symbol::has_got_offset): Aded got_type parameter.
960 (Symbol::got_offset): Likewise.
961 (Symbol::set_got_offset): Likewise.
962 (Symbol::has_tls_got_offset): Removed.
963 (Symbol::tls_got_offset): Removed.
964 (Symbol::set_tls_got_offset): Removed.
965 (Symbol::got_offset_): Removed.
966 (Symbol::tls_mod_got_offset_): Removed.
967 (Symbol::tls_pair_got_offset_): Removed.
968 (Symbol::got_offsets_): New field.
969 (Symbol::has_got_offset): Removed.
970 (Symbol::has_tls_mod_got_offset): Removed.
971 (Symbol::has_tls_pair_got_offset): Removed.
972 * x86_64.cc (Target_x86_64::Got_type): New enum declaration.
973 (Target_x86_64::Scan::local): Updated callers of Output_data_got
974 member functions.
975 (Target_x86_64::Scan::global): Likewise.
976 (Target_x86_64::Relocate::relocate): Likewise.
977 (Target_x86_64::Relocate::relocate_tls): Likewise.
978
979 2008-03-25 Ben Elliston <bje@au.ibm.com>
980
981 * yyscript.y: Fix spelling error in comment.
982
983 2008-03-24 Ian Lance Taylor <iant@google.com>
984
985 * options.h (class General_options): Define build_id option.
986 * layout.h (class Layout): Declare write_build_id, create_note,
987 create_build_id. Add build_id_note_ member.
988 * layout.cc: Include <cerrno>, <fcntl.h>, <unistd.h>,
989 "libiberty.h", "md5.h", "sha1.h".
990 (Layout::Layout): Initialize eh_frame_data_,
991 eh_frame_hdr_section_, and build_id_note_.
992 (Layout::finalize): Call create_build_id.
993 (Layout::create_note): New function, broken out of
994 Layout::create_gold_note.
995 (Layout::create_gold_note): Call create_note.
996 (Layout::create_build_id): New function.
997 (Layout::write_build_id): New function.
998 (Close_task_runner::run): Call write_build_id.
999
1000 * x86_64.cc: Correct license to GPLv3.
1001
1002 2008-03-23 Ian Lance Taylor <iant@google.com>
1003
1004 * options.cc: Include "demangle.h".
1005 (parse_optional_string): New function.
1006 (parse_long_option): Handle takes_optional_argument.
1007 (parse_short_option): Update dash_z initializer. Handle
1008 takes_optional_argument.
1009 (General_options::General_options): Initialize do_demangle_.
1010 (General_options::finalize): Set do_demangle_. Handle demangling
1011 style.
1012 * options.h (parse_optional_string): Declare.
1013 (struct One_option): Add optional_arg field. Update constructor.
1014 Update call constructor calls. Add takes_optional_argument
1015 function.
1016 (DEFINE_var): Add optional_arg__ parameter. Change all callers.
1017 (DEFINE_optional_string): Define.
1018 (General_options::demangle): Change from DEFINE_bool to
1019 DEFINE_optional_string.
1020 (General_options::no_demangle): New function.
1021 (General_options::do_demangle): New function.
1022 (General_options::set_do_demangle): New function.
1023 (General_options::execstack_status_): Move definition to end of
1024 class definition.
1025 (General_options::static_): Likewise.
1026 (General_options::do_demangle_): New field.
1027 * object.cc (big_endian>::get_symbol_location_info): Call
1028 Options::do_demangle, not Options::demangle.
1029 * symtab.cc (demangle): Likewise.
1030
1031 2008-03-22 Ian Lance Taylor <iant@google.com>
1032
1033 * gold.h: Include <cstddef> and <sys/types.h>
1034 * options.h: Include <cstring>.
1035
1036 2008-03-21 Ian Lance Taylor <iant@google.com>
1037
1038 * Added source code to GNU binutils.
1039
This page took 0.077545 seconds and 5 git commands to generate.