2009-01-15 Andrew Stubbs <ams@codesourcery.com>
[deliverable/binutils-gdb.git] / gold / ChangeLog
CommitLineData
bbbfea06
CC
12009-01-14 Cary Coutant <ccoutant@google.com>
2
3 * output.cc (Output_reloc): Add explicit instantiations.
4
0f7c0701
CC
52009-01-14 Cary Coutant <ccoutant@google.com>
6
7 * archive.cc (Archive::get_elf_object_for_member): Remove call
8 to File_read::claim_for_plugin.
9 * descriptors.cc (Descriptors::open): Remove reference to
10 is_claimed.
11 (Descriptors::claim_for_plugin): Remove.
12 * descriptors.h (Descriptors::claim_for_plugin): Remove.
13 (Descriptors::is_claimed): Remove.
14 (claim_descriptor_for_plugin): Remove.
15 * fileread.cc (File_read::claim_for_plugin): Remove.
16 * fileread.h (File_read::claim_for_plugin): Remove.
17 (File_read::descriptor): Reopen descriptor if necessary.
18 * plugin.cc (Plugin::load): Add two new APIs to transfer vector.
19 (Plugin_manager::all_symbols_read): Add task parameter. Change
20 all callers.
21 (Plugin_manager::get_input_file): New function.
22 (Plugin_manager::release_input_file): New function.
23 (Pluginobj::Pluginobj): Add filesize parameter and initialize
24 corresponding data member.
25 (Sized_pluginobj::Sized_pluginobj): Add filesize parameter
26 and pass to base constructor. Change all callers.
27 (get_input_file, release_input_file): New functions.
28 (make_sized_plugin_object): Add filesize parameter. Change all callers.
29 * plugin.h (Plugin_manager::Plugin_manager): Initialize task_ member.
30 (Plugin_manager::all_symbols_read): Add task parameter.
31 (Plugin_manager::get_input_file): New function.
32 (Plugin_manager::release_input_file): New function.
33 (Plugin_manager::task_): New data member.
34 (Pluginobj::Pluginobj): Add filesize parameter.
35 (Pluginobj::filename): New function.
36 (Pluginobj::descriptor): New function.
37 (Pluginobj::filesize): New function.
38 (Pluginobj::filesize_): New data member.
39 (Sized_pluginobj::Sized_pluginobj): Add filesize parameter.
40 * readsyms.cc (Read_symbols::do_read_symbols): Remove call to
41 File_read::claim_for_plugin; use Object::unlock to unlock the file.
42
43 * testsuite/Makefile.am (plugin_test_4): New test case for plugins
44 with archive libraries.
45 * testsuite/Makefile.in: Regenerate.
46 * testsuite/plugin_test.c (struct sym_info): New type.
47 (get_input_file, release_input_file): New static variables.
48 (onload): Capture new transfer vector entries.
49 (claim_file_hook): Stop reading at end of file according to filesize.
50 Factor out parsing of readelf output into separate function.
51 (all_symbols_read_hook): Exercise get_input_file and release_input_file
52 APIs and get the source file name from the symbol table. Convert
53 source file name to corresponding object file name. Print info
54 message when adding new input files.
55 (parse_readelf_line): New function.
56 * testsuite/plugin_test_1.sh: Add checks for new info messages.
57 * testsuite/plugin_test_2.sh: Likewise.
58 * testsuite/plugin_test_3.sh: Likewise.
59 * testsuite/plugin_test_4.sh: New test case.
60
62a6d109
ILT
612009-01-07 Ian Lance Taylor <iant@google.com>
62
63 * version.cc (version_string): Bump to 1.8.
64
483620e8
CC
652008-12-23 Cary Coutant <ccoutant@google.com>
66
67 * gold.cc (gold_exit): Call plugin cleanup handlers on exit.
68 * plugin.cc (Plugin_manager::finish): Rename as
69 layout_deferred_objects. Move cleanup to separate function.
70 (Plugin_manager::cleanup): New function.
71 (Plugin_finish::run): Call layout_deferred_objects and cleanup
72 separately.
73 * plugin.h (Plugin_manager::finish): Rename as
74 layout_deferred_objects.
75 (Plugin_manager::cleanup): New function.
76 (Plugin_manager::cleanup_done): New field.
77
d66a9eb3
CC
782008-12-23 Cary Coutant <ccoutant@google.com>
79
80 * plugin.cc (is_visible_from_outside): New function.
81 (Pluginobj::get_symbol_resolution_info): Call is_visible_from_outside
82 so we don't return "IR only" status for exported symbols or -r links.
83
84 * testsuite/Makefile.am (plugin_test_3): New test case.
85 * testsuite/Makefile.in: Regenerate.
86 * testsuite/plugin_test_3.sh: New file.
87
5995b570
CC
882008-12-22 Cary Coutant <ccoutant@google.com>
89
90 * object.cc (Sized_relobj::layout_section): New function.
91 (Sized_relobj::do_layout): Defer layout of input sections until after
92 plugin has provided replacement files.
93 (Sized_relobj::do_layout_deferred_sections): New function.
94 * object.h (Relobj::set_section_offset): Remove virtual keyword.
95 (Relobj::layout_deferred_sections): New function.
96 (Relobj::do_layout_deferred_sections): New function.
97 (Sized_relobj::do_layout_deferred_sections): New function.
98 (Sized_relobj::layout_section): New function.
99 (Sized_relobj::Deferred_layout): New structure.
100 (Sized_relobj::deferred_layout_): New field.
101 * plugin.cc (Plugin_manager::finish): Renamed, was cleanup.
102 Change all callers. Layout deferred sections.
103 (class Plugin_finish): Renamed, was Plugin_cleanup. Change all
104 references.
105 (Plugin_hook::run): Move code from do_plugin_hook inline.
106 (Plugin_hook::do_plugin_hook): Remove.
107 * plugin.h (Plugin_manager::Plugin_manager): Add missing initializers.
108 (Plugin_manager::finish): Renamed, was cleanup.
109 (Plugin_manager::should_defer_layout): New function.
110 (Plugin_manager::add_deferred_layout_object): New function.
111 (Plugin_manager::Deferred_layout_list): New type.
112 (Plugin_manager::deferred_layout_objects_): New field.
113 (Plugin_hook::do_plugin_hook): Remove.
114
ee769c88
ILT
1152008-12-17 Ian Lance Taylor <iant@google.com>
116
117 * options.h (class General_options): Add --no case for
118 --export-dynamic.
119
abc8dcba
CC
1202008-12-16 Cary Coutant <ccoutant@google.com>
121
122 * plugin.cc (Plugin::load): Move LDPT_MESSAGE to front of transfer
123 vector.
124 (Plugin_manager::claim_file): Create plugin object even if
125 plugin did not call the add_symbols callback.
126 (Plugin_obj::get_symbol_resolution_info): Guard against plugin
127 asking for more symbols than were added.
128 * testsuite/Makefile.am (plugin_test_1): Add test case with
129 no global symbols.
130 (empty.syms): New target.
131 * testsuite/Makefile.in: Regenerate.
132 * testsuite/plugin_test.c (claim_file_hook): Add new debug
133 message. Don't call add_symbols if no globals.
134 (all_symbols_read_hook): Don't provide replacement for empty
135 claimed file.
136
b0074644
ILT
1372008-12-12 Ian Lance Taylor <iant@google.com>
138
68943102
ILT
139 * target-reloc.h (Default_scan_relocatable_relocs): Only discard
140 r_type == 0 for a local symbol with r_sym == 0.
141 (scan_relocatable_relocs): Pass r_sym to
142 local_non_section_strategy.
143 * reloc.cc (Emit_relocs_strategy::local_non_section_strategy): Add
144 r_sym parameter.
145
b0074644
ILT
146 * configure.ac: Update test for TLS descriptors: they are
147 supported as of glibc 2.9.
148 * configure: Rebuild.
149
c2508178
ILT
1502008-12-11 Ian Lance Taylor <iant@google.com>
151
152 PR 7091
153 * target-reloc.h (Default_scan_relocatable_relocs): For each
154 function, map r_type == 0 to RELOC_DISCARD.
155
2756a258
CC
1562008-12-10 Cary Coutant <ccoutant@google.com>
157
158 * layout.cc (Layout::add_comdat): Allow COMDAT group from a replacement
159 object to override a kept COMDAT group from a plugin object.
160
bb6f53d3
ILT
1612008-12-09 Ian Lance Taylor <iant@google.com>
162
fbc558e1
ILT
163 PR 7088
164 * yyscript.y (file_cmd): Handle INPUT.
165
bb6f53d3
ILT
166 * testsuite/initpri1.c: Change all declarations to be full
167 prototypes by adding void, to avoid compiler warnings.
168
4674ecfc
CC
1692008-12-05 Rafael Avila de Espindola <espindola@google.com>
170
171 * options.cc (General_options::parse_plugin_opt): New.
172 (General_options::add_plugin): The argument now is just the filename.
173 (General_options::add_plugin_option): New.
174 * options.h (plugin_opt): New.
175 (add_plugin): Change argument name.
176 (add_plugin_option): New.
177 * plugin.cc (Plugin::load): Don't parse the plugin option.
178 * plugin.h (Plugin::Plugin): Rename argument. Init filename_.
179 (Plugin::add_option): New.
180 (Plugin::args_): Change type.
181 (Plugin::filename_): New.
182 (Plugin_manager::add_plugin_option): New.
183 * testsuite/Makefile.am (plugin_test_1): Use new syntax.
184 * testsuite/Makefile.in: Regenerate.
185
fd06b4aa
CC
1862008-12-05 Cary Coutant <ccoutant@google.com>
187
188 * layout.cc (Layout::include_section): Check for SHF_EXCLUDE.
189 Handle --strip-lto-sections option.
190 * options.h (strip_lto_sections): New option.
191
6c52134c
CC
1922008-12-01 Cary Coutant <ccoutant@google.com>
193
194 * plugin.cc (ld_plugin_message): Change format parameter to const.
195 Fix mismatch between new[] and delete.
196
a45248e0
CC
1972008-11-14 Cary Coutant <ccoutant@google.com>
198
199 * reloc.cc (Sized_relobj::do_read_relocs): Use constant invalid_address
200 instead of -1U.
201
c82fbeee
CS
2022008-11-05 Craig Silverstein <csilvers@google.com>
203
204 * options.cc (General_options::parse_dynamic_list): New function.
205 * options.h (General_options): New flags dynamic_list,
206 dynamic_list_data, dynamic_list_cpp_new, and
207 dynamic_list_cpp_typeinfo. New variable dynamic_list_.
208 (General_options::in_dynamic_list): New function.
209 * script.cc (Lex::Mode): New enum DYNAMIC_LIST.
210 (Lex::can_start_name): Add support for DYNAMIC_LIST mode.
211 (Lex::can_continue_name): Likewise.
212 (yylex): Likewise.
213 (read_script_file): New parameter script_options.
214 (read_dynamic_list): New function.
215 (Script_options::define_dynamic_list): New function.
216 (dynamic_list_keyword_parsecodes): New variable.
217 (dynamic_list_keywords): New variable.
218 * script.h (Script_options::define_dynamic_list): New function
219 prototype.
220 (read_dynamic_list): New function prototype.
221 * symtab.cc (strprefix): New macro.
222 (Symbol::should_add_dynsym_entry): Support dynamic_list,
223 dynamic_list_data, dynamic_list_cpp_new, and
224 dynamic_list_cpp_typeinfo.
225 * yyscript.y (PARSING_DYNAMIC_LIST): New token.
226 (dynamic_list_expr): New rule.
227 (dynamic_list_nodes): Likewise.
228 (dynamic_list_node): Likewise.
229 * testsuite/Makefile.am (dynamic_list): New test.
230 * testsuite/Makefile.in: Regenerated.
231 * testsuite/dynamic_list.t: New file.
232 * testsuite/dynamic_list.sh: New file.
233
e0bb29a5
CS
2342008-11-05 Craig Silverstein <csilvers@google.com>
235
236 * testsuite/tls_test_c.c: Add prototype for t11 and t11_last.
237 * testsuite/tls_test_c.c (t11): Add explicit "void" to prototype.
238 (t11_last): Likewise.
239 * testsuite/ver_test_6.c (main): Likewise.
240
4e1e25e0
CC
2412008-10-07 Cary Coutant <ccoutant@google.com>
242
243 * options.c (General_options::finalize): Add check for -static and
244 -shared.
245 * gold.cc (queue_middle_tasks): Assert that list of dynamic objects
246 is not empty.
247
92f03fcb
CC
2482008-10-02 Cary Coutant <ccoutant@google.com>
249
250 * plugin.cc (make_sized_plugin_object): Fix conditional
251 compilation to work when not all targets are enabled.
252
fbd8a257
CC
2532008-09-29 Cary Coutant <ccoutant@google.com>
254
255 * archive.cc (Archive::get_file_and_offset): Use filename instead
256 of name to get library path.
257 (Archive::include_member): Unlock external member of a thin archive.
258
259 * testsuite/Makefile.am (TEST_AR): New variable.
260 (thin_archive_test_1): New test.
261 (thin_archive_test_2): New test.
81636b3f
CC
262 * testsuite/Makefile.in: Regenerate.
263 * testsuite/thin_archive_main.cc: New file.
264 * testsuite/thin_archive_test_1.cc: New file.
265 * testsuite/thin_archive_test_2.cc: New file.
266 * testsuite/thin_archive_test_3.cc: New file.
267 * testsuite/thin_archive_test_4.cc: New file.
fbd8a257 268
eff45813
CC
2692008-09-29 Cary Coutant <ccoutant@google.com>
270
271 * mapfile.cc (Mapfile::print_input_section): Change -1U to -1ULL.
272 * object.cc (Sized_relobj::do_layout): Use constant invalid_address
273 instead of -1U.
274 (Sized_relobj::do_finalize_local_symbols): Likewise.
275 (Sized_relobj::map_to_kept_section): Likewise.
276 * object.h (Sized_relobj::invalid_address): New constant.
277 (Sized_relobj::do_output_section_offset): Check for invalid_address
278 and return -1ULL.
279 * output.cc (Output_reloc::local_section_offset): Use constant
280 invalid_address instead of -1U.
281 (Output_reloc::get_address): Likewise.
282 (Output_section::output_address): Change -1U to -1ULL.
283 * output.h (Output_reloc::invalid_address): New constant.
284 * reloc.cc (Sized_relobj::write_sections): Use constant
285 invalid_address instead of -1U.
286 (Sized_relobj::relocate_sections): Likewise.
287 * symtab.cc (Symbol_table::sized_finalize_symbol): Handle symbol
288 values for merge sections.
289 * target-reloc.h (relocate_for_relocatable): Use constant
290 invalid_address instead of -1U.
291
89fc3421
CC
2922008-09-19 Cary Coutant <ccoutant@google.com>
293
294 Add plugin functionality for link-time optimization (LTO).
295 * configure.ac (plugins): Add --enable-plugins option.
296 * configure: Regenerate.
297 * config.in: Regenerate.
298 * Makefile.am (LIBDL): New variable.
299 (CCFILES): Add plugin.cc.
300 (HFILES): Add plugin.h.
301 (ldadd_var): Add LIBDL.
302 * Makefile.in: Regenerate.
303
304 * archive.cc: Include "plugin.h".
305 (Archive::setup): Don't preread archive symbols when using a plugin.
306 (Archive::get_file_and_offset): Add memsize parameter. Change callers.
307 (Archive::get_elf_object_for_member): Call plugin hooks for claiming
308 files.
309 (Archive::include_member): Add symbols from plugin objects.
310 * archive.h (Archive::get_file_and_offset): Add memsize parameter.
311 * descriptors.cc (Descriptors::open): Check for file descriptors
312 abandoned by plugins.
313 (Descriptors::claim_for_plugin): New function.
314 * descriptors.h (Descriptors::claim_for_plugin): New function.
315 (Open_descriptor::is_claimed): New field.
316 (claim_descriptor_for_plugin): New function.
317 * fileread.cc (File_read::claim_for_plugin): New function.
318 * fileread.h (File_read::claim_for_plugin): New function.
319 (File_read::descriptor): New function.
320 * gold.cc: Include "plugin.h".
321 (queue_initial_tasks): Add task to call plugin hooks for generating
322 new object files.
323 * main.cc: Include "plugin.h".
324 (main): Load plugin libraries.
325 * object.h (Pluginobj): Declare.
326 (Object::pluginobj): New function.
327 (Object::do_pluginobj): New function.
328 (Object::set_target): New function.
329 * options.cc: Include "plugin.h".
330 (General_options::parse_plugin): New function.
331 (General_options::General_options): Initialize plugins_ field.
332 (General_options::add_plugin): New function.
333 * options.h (Plugin_manager): Declare.
334 (General_options): Add --plugin option.
335 (General_options::has_plugins): New function.
336 (General_options::plugins): New function.
337 (General_options::add_plugin): New function.
338 (General_options::plugins_): New field.
339 * plugin.cc: New file.
340 * plugin.h: New file.
341 * readsyms.cc: Include "plugin.h".
342 (Read_symbols::do_read_symbols): Check for archive before checking
343 for ELF file. Call plugin hooks to claim files.
344 * resolve.cc (Symbol_table::resolve): Record when symbol is referenced
345 from a real object file; force override when processing replacement
346 files.
347 * symtab.cc (Symbol::init_fields): Initialize in_real_elf_ field.
348 (Symbol::init_base_object): Likewise.
349 (Symbol::init_base_output_data): Likewise.
350 (Symbol::init_base_output_segment): Likewise.
351 (Symbol::init_base_constant): Likewise.
352 (Symbol::init_base_undefined): Likewise.
353 (Symbol::output_section): Assert that object is not a plugin.
354 (Symbol_table::add_from_pluginobj): New function.
355 (Symbol_table::sized_finalize_symbol): Treat symbols from plugins as
356 undefined.
357 (Symbol_table::sized_write_globals): Likewise.
358 (Symbol_table::add_from_pluginobj): Instantiate template.
359 * symtab.h (Sized_pluginobj): Declare.
360 (Symbol::in_real_elf): New function.
361 (Symbol::set_in_real_elf): New function.
362 (Symbol::in_real_elf_): New field.
363 (Symbol_table::add_from_pluginobj): New function.
364
365 * testsuite/Makefile.am (AM_CFLAGS): New variable.
366 (LIBDL): New variable.
367 (LDADD): Add LIBDL.
368 (check_PROGRAMS): Add plugin_test_1 and plugin_test_2.
369 (check_SCRIPTS): Add plugin_test_1.sh and plugin_test_2.sh.
370 (check_DATA): Add plugin_test_1.err and plugin_test_2.err.
371 (MOSTLYCLEANFILES): Likewise.
372 * testsuite/Makefile.in: Regenerate.
373 * testsuite/plugin_test.c: New file.
374 * testsuite/plugin_test_1.sh: New file.
375 * testsuite/plugin_test_2.sh: New file.
376
de31bda5
ILT
3772008-09-16 Ian Lance Taylor <iant@google.com>
378
9c2d0ef9
ILT
379 * target-reloc.h (relocate_section): Check whether a symbol is
380 defined by the ABI before reporting an undefined symbol error.
381 * target.h (Target::is_defined_by_abi): Make parameter const.
382 (Target::do_is_defined_by_abi): Likewise.
383 * i386.cc (Target_i386::do_is_defined_by_abi): Likewise.
384 * powerpc.cc (Target_powerpc::do_is_defined_by_abi): Likewise.
385 * sparc.cc (Target_sparc::do_is_defined_by_abi): Likewise.
386 * x86_64.cc (Target_x86_64::do_is_defined_by_abi): Likewise.
387 * testsuite/Makefile.am (tls_test_shared.so): Add -Wl,-z,defs.
388 * testsuite/Makefile.in: Rebuild.
389
de31bda5
ILT
390 * fileread.cc (make_view): Add casts to avoid warning.
391
9fa33bee
AO
3922008-09-16 Alexandre Oliva <aoliva@redhat.com>
393
394 * i386.cc (Target_i386::define_tls_base_symbol): Update comments.
395 * x86_64.cc (Target_x86_64::define_tls_base_symbol): Likewise.
396
183fd0e3
AO
3972008-09-16 Alexandre Oliva <aoliva@redhat.com>
398
399 * options.h (General_options::output_is_executable): New.
400 (General_options::output_is_pie): New.
401 * i386.cc (Target_i386::define_tls_base_symbol): Use SEGMENT_START
402 for shared libraries.
403 * x86_64.cc (Target_x86_64::define_tls_base_symbol): Likewise.
404
7be8330a
CD
4052008-09-11 Chris Demetriou <cgd@google.com>
406
407 * options.h (origin): New -z option.
408 * layout.cc (Layout:finish_dynamic_section): If "-z origin"
409 is specified, set DF_ORIGIN in DT_FLAGS and set DF_1_ORIGIN
410 in DT_FLAGS_1.
411
a9caad02
CC
4122008-09-05 Cary Coutant <ccoutant@google.com>
413
414 * fileread.cc (File_read::make_view): Add check for attempt to map
415 beyond end of file.
416
ae6dce4d
CC
4172008-09-05 Cary Coutant <ccoutant@google.com>
418
419 * symtab.cc (Symbol_table::add_from_dynobj): Fix typos in
420 explicit instantiations.
421
d7ab2a47
KVH
4222008-08-28 Kris Van Hees <kris.van.hees@oracle.com>
423
424 PR gold/6858
425 * options.cc (General_options::finalize): Allow undefined symbols
426 in shlibs if linking -shared.
427
428 PR gold/6859
429 * symtab.cc (Symbol::init_base_undefined): Mark explicitly undefined
430 symbols as not needing a dynsym entry.
431
1e52a9c1
CS
4322008-08-20 Craig Silverstein <csilvers@google.com>
433
434 * fileread.cc (File_read::open): Do not lock the file unless it
435 was successfully opened.
436
d85c80a3
CC
4372008-08-14 Cary Coutant <ccoutant@google.com>
438
439 * x86_64.cc (Target_x86_64::Relocate::relocat_tls):
440 Use addend for DTPOFF32, DTPOFF64, and TPOFF32 relocs.
441 * testsuite/tls_test.cc (struct int128): 128-bit struct
442 for testing TLS relocs with non-zero addend.
443 (v12): New TLS variable.
444 (t12): New test.
445 (t_last): Add check for v12.
446 * testsuite/tls_test.h (t12): New function.
447 * testsuite/tls_test_main.cc (thread_routine): Call new test.
448
2d924fd9
ILT
4492008-08-13 Ian Lance Taylor <iant@google.com>
450
451 * layout.cc (Layout::attach_allocated_section_to_segment): Don't
452 set tls_segment_ or relro_segment_.
453 (Layout::make_output_segment): Set tls_segment_ and relro_segment_
454 when appropriate.
455 * output.h (Output_section::clear_is_relro): New function.
456 * output.cc (Output_segment::add_output_section): Handle SHF_TLS
457 sections specially even when output_data_ is empty.
458 (Output_segment::maximum_alignment): When first section is relro,
459 only force alignment for PT_LOAD segments.
460 * script.cc (script_data_segment_align): New function.
461 (script_data_segment_relro_end): New function.
462 * script-c.h (script_data_segment_align): Declare.
463 (script_data_segment_relro_end): Declare.
464 * script-sections.h (class Script_sections): Declare
465 data_segment_align and data_segment_relro_end. Add fields
466 segment_align_index_ and saw_relro_end_.
467 * script-sections.cc (class Sections_element): Add set_is_relro
468 virtual function. Add new bool* parameter to place_orphan_here.
469 Add get_output_section virtual function.
470 (class Output_section_definition): Add set_is_relro. Add new
471 bool* parameter to place_orphan_here. Add get_output_section.
472 Add is_relro_ field.
473 (Output_section_definition::Output_section_definition): Initialize
474 evaluated_address_, evaluated_load_address, evaluated_addralign_,
475 and is_relro_ fields.
476 (Output_section_definition::place_orphan_here): Add is_relro
477 parameter.
478 (Output_section_definition::set_section_addresses): Set relro for
479 output section.
480 (Output_section_definition::alternate_constraint): Likewise.
481 (class Orphan_output_section): Add new bool* parameter to
482 place_orphan_here. Add get_output_section.
483 (Orphan_output_section::place_orphan_here): Add is_relro
484 parameter.
485 (Script_sections::Script_sections): Initialize
486 data_segment_align_index_ and saw_relro_end_.
487 (Script_sections::data_segment_align): New function.
488 (Script_sections::data_segment_relro_end): New function.
489 (Script_sections::place_orphan): Set or clear is_relro.
490 (Script_sections::set_section_addresses): Force alignment of first
491 TLS section.
492 * yyscript.y (exp): Call script_data_segment_align and
493 script_data_segment_relro_end.
494 * testsuite/relro_script_test.t: New file.
495 * testsuite/relro_test.cc (using_script): Declare.
496 (t1, t2): Test using_script.
497 * testsuite/Makefile.am (check_PROGRAMS): Add relro_script_test.
498 (relro_script_test_SOURCES): Define.
499 (relro_script_test_DEPENDENCIES): Define.
500 (relro_script_test_LDFLAGS): Define.
501 (relro_script_test_LDADD): Define.
502 (relro_script_test.so): New target.
503 * testsuite/Makefile.in: Rebuild.
504
f827c9a9
CC
5052008-08-06 Cary Coutant <ccoutant@google.com>
506
507 * archive.cc (Archive::total_archives, Archive::total_members)
508 (Archive::total_members_loaded): New variables.
509 (Archive::setup): Add parameter. Add option to preread
510 archive symbols.
511 (Archive::read_armap): Add counter.
512 (Archive::get_file_and_offset): New function.
513 (Archive::get_elf_object_for_member): New function.
514 (Archive::read_all_symbols): New function.
515 (Archive::read_symbols): New function.
516 (Archive::add_symbols): Add counters.
517 (Archive::include_all_members): Use armap to find members if it's
518 already built.
519 (Archive::include_member): Skip reading symbols if already read.
520 Factored code into Archive::get_file_and_offset and
521 Archive::get_elf_object_for_member. Changed call to
522 Mapfile::report_include_archive_member.
523 (Archive::print_stats): New function.
524 * archive.h: Declare Object and Read_symbols_data classes.
525 (Archive::Archive): Add initializers for new members.
526 (Archive::setup): Add parameter.
527 (Archive::print_stats): New function.
528 (Archive::total_archives, Archive::total_members)
529 (Archive::total_members_loaded): New variables.
530 (Archive::get_file_and_offset): New function.
531 (Archive::get_elf_object_for_member): New function.
532 (Archive::read_all_symbols): New function.
533 (Archive::read_symbols): New function.
534 (Archive::Archive_member): New class.
535 (Archive::members_): New member.
536 (Archive::num_members_): New member.
537 * main.cc: Include archive.h.
538 (main): Call Archive::print_stats.
539 * mapfile.cc (Mapfile::report_include_archive_member): Delete
540 archive parameter; member_name is now the fully-decorated name.
541 * mapfile.h (Mapfile::report_include_archive_member): Likewise.
542 * options.h: (General_options): Add --preread-archive-symbols option.
543 * readsyms.cc (Read_symbols::do_read_symbols): Change call to
544 Archive::setup.
545
de4c45bd
ILT
5462008-08-04 Ian Lance Taylor <iant@google.com>
547
548 * symtab.h (Symbol::use_plt_offset): New function.
549 * i386.cc (Relocate::relocate): Call Symbol::use_plt_offset.
550 * powerpc.cc (Relocate::relocate): Likewise.
551 * sparc.cc (Relocate::relocate): Likewise.
552 * x86_64.cc (Relocate::relocate): Likewise.
553 * testsuite/weak_plt.sh: New test.
554 * testsuite/weak_plt_main.cc: New test.
555 * testsuite/weak_plt_shared.cc: New test.
556 * testsuite/Makefile.am (check_SCRIPTS): Add weak_plt.sh.
557 (check_PROGRAMS): Add weak_plt.
558 (check_DATA): Add weak_plt_shared.so.
559 (weak_plt_main_pic.o, weak_plt): New targets.
560 (weak_plt_shared_pic.o, weak_plt_shared.so): New targets.
561 * testsuite/Makefile.in: Rebuild.
562
563 * testsuite/Makefile.am (weak_alias_test_1.so): Depend upon
564 gcctestdir/ld.
565 (weak_alias_test_2.so, weak_alias_test_4.so): Likewise.
566 * testsuite/Makefile.in: Rebuild.
567
323ee3f4
AM
5682008-08-04 Alan Modra <amodra@bigpond.net.au>
569
570 * Makefile.am (POTFILES.in): Set LC_ALL=C.
571 * Makefile.in: Regenerate.
572 * po/POTFILES.in: Regenerate.
573
7c07ecec
ILT
5742008-07-29 Ian Lance Taylor <iant@google.com>
575
576 * script.cc (Script_options::finalize_symbols): Finalize SECTIONS
577 symbols before other symbols.
578 * testsuite/script_test_2.cc (test_addr): Declare.
579 (test_addr_alias): Declare.
580 (main): Check that test_addr and test_addr_alias have the right
581 values.
582 * testsuite/script_test_2.t: Define test_addr_alias and
583 test_addr.
584
5778530e
ILT
5852008-07-24 Ian Lance Taylor <iant@google.com>
586
2a00e4fb
ILT
587 PR 5990
588 * descriptors.cc: New file.
589 * descriptors.h: New file.
590 * gold-threads.h (class Hold_optional_lock): New class.
591 * fileread.cc: Include "descriptors.h".
592 (File_read::~File_read): Release descriptor rather than closing
593 it.
594 (File_read::open) [file]: Call open_descriptor rather than open.
595 Set is_descriptor_opened_.
596 (File_read::open) [memory]: Assert that descriptor is not open.
597 (File_read::reopen_descriptor): New function.
598 (File_read::release): Release descriptor.
599 (File_read::do_read): Make non-const. Reopen descriptor.
600 (File_read::read): Make non-const.
601 (File_read::make_view): Reopen descriptor.
602 (File_read::do_readv): Likewise.
603 * fileread.h (class File_read): Add is_descriptor_opened_ field.
604 Update declarations.
605 * layout.cc: Include "descriptors.h".
606 (Layout::create_build_id): Use open_descriptor rather than open.
607 * output.cc: Include "descriptors.h".
608 (Output_file::open): Use open_descriptor rather than open.
609 * archive.cc (Archive::const_iterator): Change Archive to be
610 non-const.
611 (Archive::begin, Archive::end): Make non-const.
612 (Archive::count_members): Likewise.
613 * archive.h (class Archive): Update declarations.
614 * object.h (Object::read): Make non-const.
615 * Makefile.am (CCFILES): Add descriptors.cc.
616 (HFILES): Add descriptors.h.
617 * Makefile.in: Rebuild.
618
801647d1
ILT
619 PR 6716
620 * gold.h: Always include <clocale>. Add Solaris workarounds
621 following code in binutils/sysdep.h.
622
5edd166e
ILT
623 PR 6048
624 * ehframe.cc (Eh_frame::add_ehframe_input_section): Check whether
625 this->eh_frame_hdr_ is NULL before using it.
626
c89ad728
ILT
627 * dynobj.cc (Versions::Versions): Update comment.
628
aa86f06b
ILT
629 * dynobj.cc (Versions::Versions): If there is an soname, use it as
630 the base version name.
631
5778530e
ILT
632 * stringpool.cc (Stringpool_template::add_with_length): Set key to
633 array size plus one.
634 (Stringpool_template::set_string_offsets): Subtract one from key
635 before using it as an array index.
636 (Stringpool_template::get_offset_with_length): Likewise.
637 (Stringpool_template::write_to_buffer): Likewise.
638 * stringpool.h (Stringpool_template::get_offset_from_key):
639 Likewise.
640
057ead22
ILT
6412008-07-23 Ian Lance Taylor <iant@google.com>
642
7f649c59
ILT
643 PR 6658
644 * object.h (Merged_symbol_value::value): Do our best to handle a
645 negative addend.
646
057ead22
ILT
647 PR 6647
648 * script.cc (Version_script_info::get_versions): Don't add empty
649 version tag to return value.
650 (Version_script_info::get_symbol_version_helper): Change return
651 type to bool. Add pversion parameter. Change all callers.
652 (script_register_vers_node): Don't require a non-NULL tag.
653 * script.h (class Version_script_info): Update declarations.
654 (Version_script_info::get_symbol_version): Change return type to
655 bool. Add version parameter. Change all callers.
656 * symtab.cc (Sized_symbol::add_from_relobj): Rework version
657 handling. Handle an empty version from a version script.
658 (Symbol_table::define_special_symbol): Likewise.
659 * testsuite/ver_test_10.script: New file.
660 * testsuite/ver_test_10.sh: New file.
661 * testsuite/Makefile.am (check_SCRIPTS): Add ver_test_10.sh.
662 (check_DATA): Add ver_test_10.syms.
663 (ver_test_10.syms, ver_test_10.so): New target.
664 * testsuite/Makefile.in: Rebuild.
665
58e54ac2
CD
6662008-07-23 Simon Baldwin <simonb@google.com>
667
668 * symtab.cc (Symbol_table::sized_write_symbol): Only set st_size
669 to zero for undefined symbols from dynamic libraries.
670
95d14cd3
ILT
6712008-07-23 Ian Lance Taylor <iant@google.com>
672
673 * symtab.cc (Symbol_table::resolve): Remove version parameter.
674 Change all callers.
675 * symtab.h (class Symbol_table): Update declaration.
676 * testsuite/ver_test_9.cc: New file.
677 * testsuite/Makefile.am (check_PROGRAMS): Add ver_test_9.
678 (ver_test_9_SOURCES, ver_test_9_DEPENDENCIES): Define.
679 (ver_test_9_LDFLAGS, ver_test_9_LDADD): Define.
680 (ver_test_9.so, ver_test_9.o): New targets.
681 * testsuite/Makefile.in: Rebuild.
682
92de84a6
ILT
6832008-07-22 Ian Lance Taylor <iant@google.com>
684
34810851
ILT
685 * options.h (class General_options): Define --check-sections.
686 * layout.cc (Layout::set_segment_offsets): Handle
687 --check-sections.
688
af6156ef
ILT
689 * options.h (class General_options): Define -n/--nmagic and
690 -N/--omagic.
691 * options.cc (General_options::finalize): For -n/--nmagic or
692 -N/--omagic, set -static.
693 * layout.cc (Layout::attach_allocated_section_to_segment): If
694 -N/--omagic, don't put read-only and read-write sections in
695 different segments.
696 (Layout::find_first_load_seg): If -N/--omagic, don't insist on
697 finding a read-only segment.
698 (Layout::set_segment_offsets): If -N/--omagic or -n/--nmagic,
699 don't set the minimum segment alignment to the common page size,
700 and don't set the file offset to the address modulo the page size.
701 * script-sections.cc (Script_sections::create_segments): If
702 -n/--omagic, don't put read-only and read-write sections in
703 different segments.
704
92de84a6
ILT
705 * cref.cc: New file.
706 * cref.h: New file.
707 * options.h (class General_options): Add --print-symbol-counts.
708 * main.cc (main): Issue defined symbol report if requested.
709 * archive.cc (Archive::interpret_header): Make into a const member
710 function.
711 (Archive::add_symbols): Call Input_objects::archive_start and
712 archive_stop.
713 (Archive::const_iterator): Define new class.
714 (Archive::begin, Archive::end): New functions.
715 (Archive::include_all_members): Rewrite to use iterator.
716 (Archive::count_members): New function.
717 * archive.h (class Archive): Update declarations.
718 (Archive::filename): New function.
719 * object.cc: Include "cref.h".
720 (Sized_relobj::Sized_relobj): Initialize defined_count_.
721 (Sized_relobj::do_get_global_symbol_counts): New function.
722 (Input_objects::add_object): Add object to cross-referencer.
723 (Input_objects::archive_start): New function.
724 (Input_objects::archive_stop): New function.
725 (Input_objects::print_symbol_counts): New function.
726 * object.h: Declare Cref and Archive.
727 (Object::get_global_symbol_counts): New function.
728 (Object::do_get_global_symbol_counts): New pure virtual function.
729 (class Sized_relobj): Add defined_count_ field. Update
730 declarations.
731 (class Input_objects): Add cref_ field. Update constructor.
732 Update declarations.
733 * dynobj.cc (Sized_dynobj::Sized_dynobj): Initialize symbols_ and
734 defined_count_.
735 (Sized_dynobj::do_add_symbols): Allocate symbols_ if printing
736 symbol counts.
737 (Sized_dynobj::do_get_global_symbol_counts): New function.
738 * dynobj.h (class Sized_dynobj): Add fields symbols_ and
739 defined_count_. Update declarations. Define Symbols typedef.
740 * symtab.cc (Symbol_table::add_from_relobj): Add defined
741 parameter. Change all callers.
742 (Symbol_table::add_from_dynobj): Add sympointers and defined
743 parameters. Change all callers.
744 * symtab.h (class Symbol_table): Update declarations.
745 * Makefile.am (CCFILES): Add cref.cc.
746 (HFILES): Add cref.h.
747 * Makefile.in: Rebuild.
748
3f7c5e1d
CD
7492008-07-22 Simon Baldwin <simonb@google.com>
750
751 * symtab.cc (Symbol_table::sized_write_symbol): Set symbol size
752 to zero when writing undefined symbols.
753
e0b64032
ILT
7542008-07-22 Ian Lance Taylor <iant@google.com>
755
756 * output.cc (Output_section::add_input_section): Don't try to
757 merge empty merge sections.
758
096b02cf
CS
7592008-07-21 Craig Silverstein <csilvers@google.com>
760
761 * symtab.cc (Symbol_table::warn_about_undefined_dynobj_symbol):
762 Include symbol version in error message.
763
1d1f116d
CD
7642008-07-20 Chris Demetriou <cgd@google.com>
765
766 * configure.ac (gold_cv_c_random_seed): New configured variable.
767 (RANDOM_SEED_CFLAGS): New substituted variable.
768 * Makefile.am (AM_CFLAGS, AM_CXXFLAGS): Add $(RANDOM_SEED_CFLAGS).
769 * configure: Rebuild.
770 * Makefile.in: Likewise.
771 * testsuite/Makefile.in: Likewise.
772
a18f591e
ILT
7732008-07-18 Ian Lance Taylor <iant@google.com>
774
775 * symtab.cc (Symbol_table::add_from_object): Rewrite the case
776 where we see NAME/NULL and NAME/VERSION as separate symbols.
777 * testsuite/ver_test_main.cc (main): Call t4.
778 (t4, t4_2a): Define.
779 * testsuite/ver_test_2.cc (t4_2): Define.
780 * testsuite/ver_test_2.script: Put t4_2a in VER2.
781 * testsuite/ver_test_4.cc (t4_2a): Define.
782 * testsuite/ver_test_4.script: Put t4_2a in VER2.
783 * testsuite/ver_test.h (t4, t4_2, t4_2a): Declare.
784
c6e3f6ed
ILT
7852008-07-17 Ian Lance Taylor <iant@google.com>
786
787 * dynobj.cc (Versions::add_def): If we give an error about a
788 missing version, go ahead and create the version anyhow.
789
ef9beddf
ILT
7902008-07-10 Ian Lance Taylor <iant@google.com>
791
792 Handle output sections with more than 0x7fffffff bytes.
793 * object.h (class Relobj): Change map_to_output_ to
794 output_sections_, and just keep a section pointer. Change all
795 uses. Move comdat group support to Sized_relobj.
796 (Relobj::is_section_specially_mapped): Remove.
797 (Relobj::output_section): Remove poff parameter. Change all
798 callers.
799 (Relobj::output_section_offset): New function.
800 (Relobj::set_section_offset): Rewrite.
801 (Relobj::map_to_output): Remove.
802 (Relobj::output_sections): New function.
803 (Relobj::do_output_section_offset): New pure virtual function.
804 (Relobj::do_set_section_offset): Likewise.
805 (class Sized_relobj): Add section_offsets_ field. Add comdat
806 group support from Relobj. Update declarations.
807 (Sized_relobj::get_output_section_offset): New function.
808 (Sized_relobj::do_output_section_offset): New function.
809 (Sized_relobj::do_set_section_offset): New function.
810 * object.cc (Relobj::output_section_address): Remove.
811 (Sized_relobj::Sized_relobj): Initialize new fields.
812 (Sized_relobj::include_section_group): Cast find_kept_object to
813 Sized_relobj.
814 (Sized_relobj::include_linkonce_section): Likewise.
815 (Sized_relobj::do_layout): Use separate arrays for output section
816 and output offset.
817 (Sized_relobj::do_count_local_symbols): Change map_to_output to
818 output_sections.
819 (Sized_relobj::do_finalize_local_symbols): Change map_to_output to
820 output_sections and section_offsets.
821 (Sized_relobj::write_local_symbols): Likewise.
822 (map_to_kept_section): Compute output address directly.
823 * reloc.cc (Sized_relobj::do_read_relocs): Change map_to_output to
824 output_sections and section_offsets.
825 (Sized_relobj::write_sections): Likewise.
826 (Sized_relobj::relocate_sections): Likewise.
827 * symtab.cc (sized_finalize_symbol): Use output_section_offset.
828 * output.h (class Output_reloc): Update declarations. Change
829 u2_.relobj to Sized_relobj*.
830 (class Output_data_reloc): Change add functions to use
831 Sized_relobj*.
832 * output.cc (Output_reloc::Output_reloc): Change relobj to
833 Sized_relobj*.
834 (Output_reloc::local_section_offset): Change return type to
835 Elf_Addr. Use get_output_section_offset.
836 (Output_reloc::get_address): Likewise.
837 (Output_section::is_input_address_mapped): Don't call
838 is_section_specially_mapped.
839 (Output_section::output_offset): Likewise.
840 (Output_section::output_address): Likewise.
841 (Output_section::starting_output_address): Likewise.
842 * copy-relocs.cc (Copy_relocs::copy_reloc): Change object
843 parameter to Sized_relobj*.
844 (Copy_relocs::need_copy_reloc): Likewise.
845 (Copy_relocs::save): Likewise.
846 * copy-relocs.h (class Copy_relocs): Update declarations.
847 (class Copy_relocs::Copy_reloc_entry): Change constructor to use
848 Sized_relobj*. Change relobj_ field to Sized_relobj*.
849 * target-reloc.h (relocate_for_relocatable): Change
850 offset_in_output_section type to Elf_Addr. Change code that uses
851 it as well.
852 * layout.cc (Layout::layout): Always set *off.
853 * mapfile.cc (Mapfile::print_input_section): Use
854 output_section_offset.
855 * i386.cc (Target_i386::copy_reloc): Change object parameter to
856 Sized_relobj*.
857 * powerpc.cc (Target_powerpc::copy_reloc): Likewise.
858 * sparc.cc (Target_sparc::copy_reloc): Likewise.
859 * x86_64.cc (Target_x86_64::copy_reloc): Likewise.
860
5cb66f97
ILT
8612008-07-03 Ian Lance Taylor <iant@google.com>
862
863 * layout.cc (Layout::include_section): Do not discard unrecognized
864 SHT_STRTAB sections.
865
afe47622
CS
8662008-06-30 Craig Silverstein <csilvers@cs.stanford.edu>
867
868 * script.cc (Lex::can_continue_name): Make '?' allowable in
869 version-script names.
870 * testsuite/version_script.map: Change glob pattern to use '?'
871
5adf9721
ILT
8722008-06-30 Manish Singh <yosh@gimp.org>
873
874 PR 6585
875 * symtab.cc (Symbol_table::add_undefined_symbols_from_command_line):
876 Correct typo.
877
e6fde208
ILT
8782008-06-30 Ian Lance Taylor <iant@google.com>
879
880 PR 6660
881 PR 6682
882 * powerpc.cc (Powerpc_relocate_functions::addr16_ha) [both
883 versions]: Don't try to read the value in the contents, since we
884 don't use it. Use the template endianness when writing.
885
3f2e6a2d
CC
8862008-06-25 Cary Coutant <ccoutant@google.com>
887
888 * fileread.cc (File_read::make_view): Assert on zero-length view.
889 * object.cc (Sized_relobj::do_read_symbols): Don't try to read
890 symbol table when there are no symbols to read.
891
c43d3a48
CS
8922008-06-23 Craig Silverstein <csilvers@google.com>
893
894 * version.cc (version_string): Bump to 1.7
895
5f494ea0
CS
8962008-06-18 Craig Silverstein <csilvers@google.com>
897
898 * powerpc.cc (Powerpc_relocate_functions::addr16_ha): cast
899 constant 0xFFFF to type Valtype.
900 (Powerpc_relocate_functions::rel16_ha): Likewise.
901
c42e122e
ILT
9022008-06-17 Ian Lance Taylor <iant@google.com>
903
f34787f8
ILT
904 * output.h (Output_section::Input_section): Initialize p2align_ to
905 zero for Output_section_data constructors.
906 (Output_section::Input_section::addralign): If not an input
907 section, return the alignment of the Output_section_data.
908 * testsuite/copy_test.cc: New file.
909 * testsuite/copy_test_1.cc: New file.
910 * testsuite/copy_test_2.cc: New file.
911 * testsuite/Makefile.am (check_PROGRAMS): Add copy_test.
912 (copy_test_SOURCES, copy_test_DEPENDENCIES): New variables.
913 (copy_test_LDFLAGS, copy_test_LDADD): New variables.
914 (copy_test_1_pic.o, copy_test_1.so): New targets.
915 (copy_test_2_pic.o, copy_test_2.so): New targets.
916 * testsuite/Makefile.in: Rebuild.
917
c42e122e
ILT
918 * script-sections.cc (Script_sections::place_orphan): Initialize
919 local variable exact.
920
ce3ac18a
DE
9212008-06-13 David Edelsohn <edelsohn@gnu.org>
922
923 * powerpc.cc (Output_data_plt_powerpc::do_write): 8 + 4 = 0xC.
924
42cacb20
DE
9252008-06-12 David Edelsohn <edelsohn@gnu.org>
926 David S. Miller <davem@davemloft.net>
927
928 * powerpc.cc: New file.
929 * Makefile.am (TARGETSOURCES): Add powerpc.cc
930 (ALL_TARGETOBJS): Add powerpc.$(OBJEXT)
931 * configure.tgt: Add entries for powerpc-* and powerpc64-*.
932 * Makefile.in: Rebuild.
933
7b308235
ILT
9342008-06-09 Ian Lance Taylor <iant@google.com>
935
936 * testsuite/relro_test.cc: Include <cstdio>, <cstdlib>, and
937 <exception>.
938 (throwing, orig_terminate): New static variables.
939 (terminate_handler): New static function.
940 (t2): Set terminate handler.
941
f0b886e3
ILT
9422008-06-05 Kris Van Hees <kris.van.hees@oracle.com>
943
944 PR 6584
945 * binary.cc (Binary_to_elf::sized_convert): Fix .data
946 alignment.
947
3e90f135
CC
9482008-05-30 Cary Coutant <ccoutant@google.com>
949
950 * archive.cc (Archive::include_all_members) Correct to step
951 over symbol table and extended name table in thin archives.
952
e09ad04a
ILT
9532008-05-29 Kris Van Hees <kris.van.hees@oracle.com>
954
955 PR 6407
956 * target-reloc.h (relocate_for_relocatable): Fix new_offset
957 calculation.
958
62b01cb5
ILT
9592008-05-28 Caleb Howe <cshowe@google.com>
960
961 * reduced_debug_output.cc: New file.
962 * reduced_debug_output.h: New file.
92de84a6 963 * options.h (class General_options): Add --strip-debug-non-line.
62b01cb5
ILT
964 * options.cc (General_options::finalize): Add strip_debug_non_line
965 to the strip heirarchy.
966 * layout.h (class Layout): Add debug_abbrev_ and debug_info_
967 fields.
968 * layout.cc: Include "reduced_debug_output.h".
969 (Layout::Layout): Initialize new fields.
970 (line_only_debug_sections): New static array.
971 (is_lines_only_debug_sections): New static inline function.
972 (Layout::include_section): Handle --strip-debug-non-line.
973 (Layout::make_output_section): If --strip-debug-non-line, build
974 new output sections for .debug_abbrev and .debug_info.
975 * dwarf_reader.cc (read_unsigned_LEB_128): Move to namespace
976 gold. Warn about possible overflow.
977 (read_signed_LEB_128): Likewise.
978 * dwarf_reader.h: (read_unsigned_LEB_128): Declare.
979 (read_signed_LEB_128): Declare.
980 * Makefile.am (CCFILES): Add reduced_debug_output.cc.
981 (HFILES): Add reduced_debug_output.h.
982 * Makefile.in: Rebuild.
983
7d9e3d98
ILT
9842008-05-21 Ian Lance Taylor <iant@google.com>
985
986 * mapfile.cc: New file.
987 * mapfile.h: New file.
988 * options.h (class General_options): Add -M/--print-map and -Map.
989 * options.cc (General_options::finalize): Make -M equivalent to
990 -Map -.
991 * main.cc: Include <cstdio> and "mapfile.h".
992 (main): Open mapfile if requested.
993 * gold.cc (class Middle_runner): Add mapfile_ field. Update
994 constructor. Change caller.
995 (queue_initial_tasks): Add mapfile parameter. Change caller.
996 (queue_middle_tasks): Likewise.
997 * gold.h (queue_initial_tasks, queue_middle_tasks): Update
998 declarations.
999 * archive.cc: Include "mapfile.h".
1000 (Archive::add_symbols): Add mapfile parameter. Change all
1001 callers. Pass mapfile, symbol, and reason to include_member.
1002 (Archive::include_all_members): Add mapfile parameter. Change all
1003 callers.
1004 (Archive::include_member): Add mapfile, sym, and why parameters.
1005 Change all callers. Report inclusion to map file.
1006 * archive.h: Include "fileread.h".
1007 (class Archive): Update declarations.
1008 (Archive::file): New const method.
1009 (class Add_archive_symbols): Add mapfile_ field. Update
1010 constructor. Change all callers.
1011 * readsyms.h (class Read_symbols): Likewise.
1012 (class Finish_group): Likewise.
1013 (class Read_script): Likewise.
1014 * common.cc: Include "mapfile.h".
1015 (Symbol_table::allocate_commons): Add mapfile parameter. Change
1016 all callers.
1017 (Symbol_table::do_allocate_commons): Likewise.
1018 (Symbol_table::do_allocate_commons_list): Likewise. Report common
1019 symbol allocation to mapfile.
1020 * common.h (class Allocate_commons_task): Add mapfile_ field.
1021 Update constructor. Change all callers.
1022 * symtab.h (class Symbol_table): Update declarations.
1023 * layout.cc: Include "mapfile.h".
1024 (Layout_task_runner::run): Print information to mapfile.
1025 (Layout::create_gold_note): Change Output_data_fixed_space to
1026 Output_data_zero_fill.
1027 (Layout::create_build_id): Likewise.
1028 (Layout::print_to_mapfile): New function.
1029 * layout.h (class Layout_task_runner): Add mapfile_ field. Update
1030 constructor. Change caller.
1031 (class Layout): Declare print_to_mapfile.
1032 * output.cc (Output_section::Input_section::print_to_mapfile): New
1033 function.
1034 (Output_section::add_input_section): If producing a map, always
1035 add to input_sections_ list.
1036 (Output_section::do_print_to_mapfile): New function.
1037 (Output_segment::print_sections_to_mapfile): New function.
1038 (Output_segment::print_section_list_to_mapfile): New function.
1039 * output.h: Include "mapfile.h".
1040 (Output_data::print_to_mapfile): New function.
1041 (Output_data::do_print_to_mapfile): New virtual function.
1042 (Output_segment_headers::do_print_to_mapfile): New function.
1043 (Output_file_header::do_print_to_mapfile): New function.
1044 (Output_data_const::do_print_to_mapfile): New function.
1045 (class Output_data_const_buffer): Add map_name_ field. Update
1046 constructor. Change all callers. Add do_print_to_mapfile
1047 function.
1048 (class Output_data_fixed_space): Likewise.
1049 (class Output_data_space): Likewise.
1050 (class Output_data_zero_fill): New class.
1051 (Output_data_strtab::do_print_to_mapfile): New function.
1052 (Output_data_reloc_base::do_print_to_mapfile): New function.
1053 (Output_relocatable_relocs::do_print_to_mapfile): New function.
1054 (Output_data_group::do_print_to_mapfile): New function.
1055 (Output_data_got::do_print_to_mapfile): New function.
1056 (Output_data_dynamic::do_print_to_mapfile): New function.
1057 (Output_symtab_xindex::do_print_to_mapfile): New function.
1058 (class Output_section): Declare do_print_to_mapflie. Declare
1059 print_to_mapfile in Input_section.
1060 (class Output_segment): Declare new functions.
1061 * object.h (Sized_relobj::symbol_count): New function.
1062 * script-sections.cc
1063 (Output_section_element_dot_assignment::set_section_addresses):
1064 Change Output_data_fixed_space to Output_data_zero_fill.
1065 (Output_data_expression::do_print_to_mapfile): New function.
1066 * script.cc (read_input_script): Add mapfile parameter. Change
1067 all callers.
1068 * script.h (read_input_script): Update declaration.
1069 * ehframe.h (Eh_frame_hdr::do_print_to_mapfile): New function.
1070 (Eh_frame::do_print_to_mapfile): New function.
1071 * merge.h (Output_merge_data::do_print_to_mapfile): New function.
1072 (Output_merge_string::do_print_to_mapfile): New function.
1073 * i386.cc (Output_data_plt_i386::do_print_to_mapfile): New
1074 function.
1075 * sparc.cc (Output_data_plt_sparc::do_print_to_mapfile): New
1076 function.
1077 * x86_64.cc (Output_data_plt_x86_64::do_print_to_mapfile): New
1078 function.
1079 * Makefile.am (CCFILES): Add mapfile.cc.
1080 (HFILES): Add mapfile.h.
1081 * Makefile.in: Rebuild.
1082
9f1d377b
ILT
10832008-05-19 Ian Lance Taylor <iant@google.com>
1084
1085 * options.h (class General_options): Add -z relro.
1086 * layout.cc (Layout::Layout): Initialize relro_segment_.
1087 (Layout::add_output_section_data): Return the output section.
1088 (Layout::make_output_section): Rcognize relro sections and mark
1089 them appropriately.
1090 (Layout::attach_allocated_section_to_segment): Put relro sections
1091 in a PT_GNU_RELRO segment.
1092 (Layout::create_initial_dynamic_sections): Mark the .dynamic
1093 section as relro.
1094 (Layout::segment_precedes): Sort PT_GNU_RELRO segments after
1095 PT_TLS segments.
1096 (Layout::linkonce_mapping): Map d.rel.ro.local to
1097 .data.rel.ro.local.
1098 (Layout::output_section_name): Us .data.rel.ro.local for any
1099 section which begins with that.
1100 * layout.h (class Layout): Update add_output_section_data
1101 declaration. Add relro_segment_ field.
1102 * output.cc (Output_section::Output_section): Initialize is_relro_
1103 and is_relro_local_ fields.
1104 (Output_segment::add_output_section): Group relro sections.
1105 (Output_segment::is_first_section_relro): New function.
1106 (Output_segment::maximum_alignment): If there is a relro section,
1107 align the segment to the common page size.
1108 (Output_segment::set_section_addresses): Track whether we are
1109 looking at relro sections. If the last section is a relro
1110 section, align to the common page size.
1111 (Output_segment::set_section_list_addresses): Add in_relro
1112 parameter. Change all callers. Align to the page size when
1113 moving from relro to non-relro section.
1114 (Output_segment::set_offset): Align memsz of a PT_GNU_RELRO
1115 segment.
1116 * output.h (class Output_section): Add is_relro_ and
1117 is_relro_local_ fields.
1118 (Output_section::is_relro): New function.
1119 (Output_section::set_is_relro): New function.
1120 (Output_section::is_relro_local): New function.
1121 (Output_section::set_is_relro_local): New function.
1122 (class Output_segment): Update declarations.
1123 * i386.cc (Target_i386::got_section): Mark .got section as relro.
1124 * sparc.cc (Target_sparc::got_section): Likewise.
1125 * x86_64.cc (Target_x86_64::got_section): Likewise.
1126 * testsuite/relro_test_main.cc: New file.
1127 * testsuite/relro_test.cc: New file.
1128 * testsuite/Makefile.am (check_PROGRAMS): Add relro_test.
1129 (relro_test_SOURCES, relro_test_DEPENDENCIES): New variables.
1130 (relro_test_LDFLAGS, relro_test_LDADD): New variables.
1131 (relro_test.so, relro_test_pic.o): New targets.
1132 * testsuite/Makefile.in: Rebuild.
1133
a984ee1d
ILT
11342008-05-16 Ian Lance Taylor <iant@google.com>
1135
01676dcd
ILT
1136 * output.cc (Output_segment::add_output_section): Remove front
1137 parameter.
1138 * output.h (class Output_segment): Remove
1139 add_initial_output_section and overloaded add_output_section.
1140 Update declaration of remaining add_output_section.
1141 * layout.cc (Layout::create_interp): Call add_output_section
1142 rather than add_initial_output_section.
1143 (Layout::finish_dynamic_section): Likewise.
1144
497897f9
ILT
1145 * i386.cc (Target_i386::Relocate::relocate_tls): Set dynamic type
1146 for TLS_GOTDESC and TLS_DESC_CALL. Only optimize TLS_LDO_32 if we
1147 know the dynamic type.
1148 * x86_64.cc (Target_x86_64::Relocate): Add saw_tls_block_reloc_
1149 field. Initialize it in constructor.
1150 (Target_x86_64::Relocate::relocate_tls): Record that we saw a TLS
1151 block reloc for TLSGD, GOTPC32_TLSDESC, TLSDESC_CALL, and TLSLD.
1152 Only optimize DTPOFF32 and DTPOFF64 if we have seen a TLS block
1153 reloc.
1154
a984ee1d
ILT
1155 * output.cc (Output_reloc::get_address): Change return type to
1156 Elf_Addr.
1157 * output.h (class Output_reloc): Update get_address declaration.
1158 * x86_64.cc (Output_data_plt_x86_64::do_write): Use 64-bit types
1159 for section addresses.
1160
55ba0940
ILT
11612008-05-09 Ian Lance Taylor <iant@google.com>
1162
1163 PR 6493
1164 * gold.cc (gold_nomem): Use return value of write.
1165
75517b77
ILT
11662008-05-08 Ian Lance Taylor <iant@google.com>
1167
1168 * symtab.c (Symbol::init_base_output_data): Add version
1169 parameter. Change all callers.
1170 (Symbol::init_base_output_segment): Likewise.
1171 (Symbol::init_base_constant): Likewise.
1172 (Symbol::init_base_undefined): Likewise.
1173 (Sized_symbol::init_output_data): Likewise.
1174 (Sized_symbol::init_output_segment): Likewise.
1175 (Sized_symbol::init_constant): Likewise.
1176 (Sized_symbol::init_undefined): Likewise.
1177 (Symbol_table::do_define_in_output_data): If the new symbol has a
1178 version, mark it as the default.
1179 (Symbol_table::do_define_in_output_segment): Likewise.
1180 (Symbol_table::do_define_as_constant): Likewise.
1181 * symtab.h (class Symbol): Update declarations.
1182 (class Sized_symbol): Likewise.
1183 * resolve.cc (Symbol::override_version): New function.
c42e122e 1184 (Symbol::override_base): Call override_version.
75517b77
ILT
1185 (Symbol::override_base_with_special): Likewise.
1186 * testsuite/ver_script_8.script: New file.
1187 * testsuite/Makefile.am (check_PROGRAMS): Add ver_test_8.
1188 (ver_test_8_SOURCES, ver_test_8_DEPENDENCIES): Define.
1189 (ver_test_8_LDFLAGS, ver_test_8_LDADD): Define.
1190 (ver_test_8_1.so, ver_test_8_2.so): New targets.
1191
f1f70eae
ILT
11922008-05-06 Ian Lance Taylor <iant@google.com>
1193
f3e9c5c5
ILT
1194 PR 6049
1195 * options.h (DEFINE_set): Add VARNAME_begin and VARNAME_end
1196 functions.
1197 (class General_options): Remove existing --undefined, and add
1198 --no-undefined instead. Add new --undefined as synonym for -u.
1199 * archive.cc (Archive::add_symbols): Check whether symbol was
1200 named with -u.
1201 * gold.cc (queue_middle_tasks): Add -u symbols to symbol table.
1202 * symtab.h (class Symbol): Rename CONSTANT to IS_CONSTANT; change
1203 all uses. Add IS_UNDEFINED. Update declarations to split
1204 different versions of init_base. Declare init_base_undefined.
1205 (Symbol::is_defined): Handle IS_UNDEFINED.
1206 (Symbol::is_undefined): Likewise.
1207 (Symbol::is_weak_undefined): Call is_undefined.
1208 (Symbol::is_absolute): Handle IS_CONSTANT.
1209 (class Sized_symbol): Update declarations to split different
1210 versions of init. Declare init_undefined.
1211 (class Symbol_table): Declare new functions.
1212 * symtab.cc (Symbol::init_base_object): Rename from init_base.
1213 Change all callers.
1214 (Symbol::init_base_output_data): Likewise.
1215 (Symbol::init_base_output_segment): Likewise.
1216 (Symbol::init_base_constant): Likewise.
1217 (Symbol::init_base_undefined): New function.
1218 (Sized_symbol::init_object): Rename from init. Change all
1219 callers.
1220 (Sized_symbol::init_output_data): Likewise.
1221 (Sized_symbol::init_output_segment): Likewise.
1222 (Sized_symbol::init_constant): Likewise.
1223 (Sized_symbol::init_undefined): New function.
1224 (Symbol_table::add_undefined_symbols_from_command_line): New
1225 function.
1226 (Symbol_table::do_add_undefined_symbols_from_command_line): New
1227 function.
1228 (Symbol::final_value_is_known): Handle IS_UNDEFINED.
1229 (Symbol::output_section): Likewise.
1230 (Symbol::set_output_section): Likewise.
1231 (Symbol_table::sized_finalize_symbol): Likewise.
1232 (Symbol_table::sized_write_globals): Likewise.
1233 * resolve.cc (Symbol_table::should_override): Likewise.
1234 (Symbol::override_base_with_special): Likewise.
1235
8bdcdf2c
ILT
1236 * symtab.cc (Symbol_table::add_from_dynobj): If we see a protected
1237 symbol, change it to have default visibility.
1238 * testsuite/protected_1.cc: New file.
1239 * testsuite/protected_2.cc: New file.
1240 * testsuite/protected_3.cc: New file.
1241 * testsuite/protected_main_1.cc: New file.
1242 * testsuite/protected_main_2.cc: New file.
1243 * testsuite/protected_main_3.cc: New file.
1244 * testsuite/Makefile.am (check_PROGRAMS): Add protected_1.
1245 (protected_1_SOURCES, protected_1_DEPENDENCIES): Define.
1246 (protected_1_LDFLAGS, protected_1_LDADD): Define.
1247 (protected_1.so): New target.
1248 (protected_1_pic.o, protected_2_pic.o): New targets.
1249 (protected_3_pic.o): New target.
1250 (check_PROGRAMS): Add protected_2.
1251 (protected_2_SOURCES, protected_2_DEPENDENCIES): Define.
1252 (protected_2_LDFLAGS, protected_2_LDADD): Define.
1253 * testsuite/Makefile.in: Rebuild.
1254
2b706932
ILT
1255 * options.h (DEFINE_var): Add set_user_set_##varname__.
1256 (DEFINE_bool_alias): New macro.
1257 (class General_options): Define -Bstatic using DEFINE_bool_alias
1258 rather than DEFINE_special. Add --undefined as an alias for -z
1259 defs.
1260 * options.cc (General_options::parse_Bstatic): Remove.
1261
d82a5bcc
ILT
1262 * options.h (class General_options): Add --fatal-warnings.
1263 * main.cc (main): Implement --fatal-warnings.
1264 * errors.h (Errors::warning_count): New function.
1265
f1f70eae
ILT
1266 * options.h (class General_options): Add -Bsymbolic-functions.
1267 * symtab.h (Symbol::is_preemptible): Check for
1268 -Bsymbolic-functions.
1269
8825ac63
ILT
12702008-05-05 Ian Lance Taylor <iant@google.com>
1271
d98bc257
ILT
1272 * options.h (DEFINE_bool): For DASH_Z, create the negative option
1273 as noVARNAME rather than no-VARNAME.
1274 (class General_options): Add option -z combreloc.
1275 * output.h (class Output_reloc) [SHT_REL]: Declare compare and
1276 get_address.
1277 (Output_reloc::sort_before) [SHT_REL]: New function.
1278 (Output_reloc::sort_before) [SHT_RELA]: New function.
1279 (class Output_data_reloc_base): Add sort_relocs_ field. Define
1280 Sort_relocs_comparison.
1281 (Output_data_reloc_base::Output_data_reloc_base): Add sort_relocs
1282 parameter. Change all callers.
1283 (Output_data_reloc::Output_data_reloc) [both versions]: Add
1284 sort_relocs parameter. Change all callers.
1285 * output.cc (Output_reloc::get_address): New function, broken out
1286 of write_rel.
1287 (Output_reloc::write_rel): Call it.
1288 (Output_reloc::compare): New function.
1289 (Output_data_reloc_base::do_write): Optionally sort relocs.
1290
60b2b4e7
ILT
1291 * configure.ac: If targ_extra_obj is set, link it in.
1292 * configure.tgt: Initialize all variables.
1293 (x86_64*): Set targ_extra_obj and targ_extra_size.
1294 * configure: Rebuild.
1295
8825ac63
ILT
1296 * object.cc (Sized_relobj::include_section_group): Adjust section
1297 indexes read from group data. Build vector to pass to
1298 layout_group.
1299 * layout.cc (Layout::layout_group): Add flags and shndxes
1300 parameters. Remove contents parameter. Change caller. Update
1301 explicit instantiations.
1302 * layout.h (class Layout): Update layout_group declaration.
1303 * output.cc (Output_data_group::Output_data_group): Add flags and
1304 input_shndxes parameters. Remove contents parameter. Change
1305 caller.
1306 (Output_data_group::do_write): Change input_sections_ to
1307 input_shndxes_.
1308 * output.h (class Output_data_group): Update constructor
1309 declaration. Rename input_sections_ to input_shndxes_.
1310 * testsuite/many_sections_test.cc: Add template.
1311
e94cf127
CC
13122008-04-30 Cary Coutant <ccoutant@google.com>
1313
4418b2d5
CC
1314 * target-reloc.h (relocate_section): Fix dead-pointer bug.
1315
e94cf127
CC
1316 * layout.cc (Layout::include_section): Refactored check for debug
1317 info section.
1318 (Layout::add_comdat): Add new parameters. Change type
1319 of signature parameter. Add object and shndx to signatures table.
1320 (Layout::find_kept_object): New function.
1321 * layout.h: Include <cstring>.
1322 (Layout::is_debug_info_section): New function.
1323 (Layout::add_comdat): Add new parameters.
1324 (Layout::find_kept_object): New function.
1325 (Layout::Kept_section): New struct.
1326 (Layout::Signatures): Change type of map range.
1327 * object.cc (Relobj::output_section_address): New function.
1328 (Sized_relobj::include_section_group): Add new parameters. Change
1329 calls to Layout::add_comdat. Change to build table of kept comdat
1330 groups and table mapping discarded sections to kept sections.
1331 (Sized_relobj::include_linkonce_section): Likewise. Add new parameter.
1332 (Sized_relobj::do_layout): Change calls to include_section_group and
1333 include_linkonce_section.
1334 (Sized_relobj::do_finalize_local_symbols): Do not set local symbol
1335 value to zero when section is discarded.
1336 (Sized_relobj::map_to_kept_section): New function.
1337 * object.h (Relobj::output_section_address): New function.
1338 (Relobj::Comdat_group): New type.
1339 (Relobj::find_comdat_group): New function.
1340 (Relobj::Comdat_group_table): New type.
1341 (Relobj::Kept_comdat_section): New type.
1342 (Relobj::Kept_comdat_section_table): New type.
1343 (Relobj::add_comdat_group): New function.
1344 (Relobj::set_kept_comdat_section): New function.
1345 (Relobj::get_kept_comdat_section): New function.
1346 (Relobj::comdat_groups_): New field.
1347 (Relobj::kept_comdat_sections_): New field.
1348 (Symbol_value::input_value): Update comment.
1349 (Sized_relobj::map_to_kept_section) New function.
1350 (Sized_relobj::include_linkonce_section): Add new parameter.
1351 * target-reloc.h (Comdat_behavior): New type.
1352 (get_comdat_behavior): New function.
1353 (relocate_section): Add code to map a discarded section to the
1354 corresponding kept section when applying a relocation.
1355
e4e5049b
CS
13562008-04-30 Craig Silverstein <csilvers@google.com>
1357
1358 * dwarf_reader.cc (next_generation_count): New static var.
1359 (Addr2line_cache_entry): New struct.
1360 (addr2line_cache): New static var.
1361 (Dwarf_line_info::one_addr2line): Added caching.
1362 (Dwarf_line_info::clear_addr2line_cache): New function.
1363 * dwarf_reader.h (Dwarf_line_info::one_addr2line): Add
1364 cache-size parameter.
1365 (Dwarf_line_info::one_addr2line_cache): New function.
1366 * symtab.cc (Symbol_table::detect_odr_violations): Pass
1367 new cache-size argument to one_addr2line(), and clear cache.
1368
d09e9154
CC
13692008-04-28 Cary Coutant <ccoutant@google.com>
1370
1371 * i386.cc (Relocate::relocate): Fix typos for R_386_PC16 and
1372 R_386_PC8 relocations.
1373
7ef73768
ILT
13742008-04-23 Ian Lance Taylor <iant@google.com>
1375
55438702
ILT
1376 * object.cc (Sized_relobj::include_section_group): Check for
1377 invalid section group.
1378
c165fb93
ILT
1379 * object.cc (make_elf_object): Correct test for 64-bit ELF file
1380 header size.
1381
7ef73768
ILT
1382 * readsyms.cc (Read_symbols::do_read_symbols): Use get_view rather
1383 than read for file header.
1384 * archive.cc (Archive::include_member): Likewise.
1385
6194aaab
L
13862008-04-23 Paolo Bonzini <bonzini@gnu.org>
1387
1388 * aclocal.m4: Regenerate.
1389 * configure: Regenerate.
1390
d491d34e
ILT
13912008-04-19 Ian Lance Taylor <iant@google.com>
1392
5ea2bac6
ILT
1393 * version.cc (version_string): Bump to 1.6.
1394
7bc3e21a
ILT
1395 * testsuite/Makefile.am (many_sections_r_test): New target.
1396 (many_sections_r_test_SOURCES): Remove.
1397 (many_sections_r_test_DEPENDENCIES): Remove.
1398 (many_sections_r_test_LDFLAGS): Remove.
1399 (many_sections_r_test_LDADD): Remove.
1400
7fcd3aa9
ILT
1401 * object.cc (Sized_relobj::do_add_symbols): Always pass
1402 local_symbol_count_ to add_from_relobj.
1403
4c94d6ae
ILT
1404 * testsuite/Makefile.am (many_sections_check.h): Only check one in
1405 every thousand variables.
1406 * testsuite/Makefile.in: Rebuild.
1407
d491d34e
ILT
1408 * object.cc (Xindex::initialize_symtab_xindex): New function.
1409 (Xindex::read_symtab_xindex): New function.
1410 (Xindex::sym_xindex_to_shndx): New function.
1411 (Sized_relobj::find_symtab): Pick up SHT_SYMTAB_SHNDX section if
1412 available.
1413 (Sized_relobj::do_initialize_xindex): New function.
1414 (Sized_relobj::do_read_symbols): Adjust section links.
1415 (Sized_relobj::symbol_section_and_value): Add is_ordinary
1416 parameter. Change all callers.
1417 (Sized_relobj::include_section_group): Adjust section links and
1418 symbol section indexes.
1419 (Sized_relobj::do_layout): Adjust section links.
1420 (Sized_relobj::do_count_local_symbols): Adjust section links and
1421 symbol section indexes.
1422 (Sized_relobj::do_finalize_local_symbols): Distinguish between
1423 ordinary and special symbols.
1424 (Sized_relobj::write_local_symbols): Add symtab_xindex and
1425 dynsym_xindex parameters. Change all callers. Adjust section
1426 links. Use SHN_XINDEX when needed.
1427 (Sized_relobj::get_symbol_location_info): Adjust section links.
1428 Don't get fooled by special symbols.
1429 * object.h (class Xindex): Define.
1430 (class Object): Add xindex_ parameter. Declare virtual functoin
1431 do_initialize_xindex.
1432 (Object::adjust_sym_shndx): New function.
1433 (Object::set_xindex): New protected function.
1434 (class Symbol_value): Add is_ordinary_shndx_ field.
1435 (Symbol_value::Symbol_value): Initialize is_ordinary_shndx_.
1436 (Symbol_value::value): Assert ordinary section.
1437 (Symbol_value::initialize_input_to_output_map): Likewise.
1438 (Symbol_value::set_input_shndx): Add is_ordinary parameter.
1439 Change all callers.
1440 (Symbol_value::input_shndx): Add is_ordinary parameter. Change
1441 all callers.
1442 (class Sized_relobj): Update declarations.
1443 (Sized_relobj::local_symbol_input_shndx): Add is_ordinary
1444 parameter. Change all callers.
1445 (Sized_relobj::adjust_shndx): New function.
1446 * dynobj.cc (Sized_dynobj::Sized_dynobj): Initialize dynsym_shndx_
1447 field.
1448 (Sized_dynobj::find_dynsym_sections): Remove pdynsym_shndx
1449 parameter. Change all callers. Pick up SHT_DYNSYM_SHNDX section
1450 for SHT_DYNSYM section if available. Set dynsym_shndx_ field.
1451 (Sized_dynobj::read_dynsym_section): Adjust section links.
1452 (Sized_dynobj::read_dynamic): Likewise.
1453 (Sized_dynobj::do_read_symbols): Use dynsym_shndx_ field. Adjust
1454 section links.
1455 (Sized_dynobj::do_initialize_xindex): New function.
1456 * dynobj.h (class Sized_dynobj): Add dynsym_shndx_ field. Declare
1457 do_initialize_xindex.
1458 (Sized_dynobj::adjust_shndx): New function.
1459 * layout.cc (Layout::Layout): Initialize symtab_xindex_ and
1460 dynsym_xindex_ fields.
1461 (Layout::finalize): Add a call to set_section_indexes before
1462 creating the symtab sections.
1463 (Layout::set_section_indexes): Don't do anything if the section
1464 already has a section index.
1465 (Layout::create_symtab_sections): Add shnum parameter. Change
1466 caller. Create .symtab_shndx section if needed.
1467 (Layout::create_shdrs): Add shstrtab_section parameter. Change
1468 caller.
1469 (Layout::allocated_output_section_count): New function.
1470 (Layout::create_dynamic_symtab): Create .dynsym_shndx section if
1471 needed.
1472 * layout.h (class Layout): Add symtab_xindex_ and dynsym_xindex_
1473 fields. Update declarations.
1474 (Layout::symtab_xindex): New function.
1475 (Layout::dynsym_xindex): New function.
1476 (class Write_symbols_task): Add layout_ field.
1477 (Write_symbols_task::Write_symbols_task): Add layout parameter.
1478 Change caller.
1479 * output.cc (Output_section_headers::Output_section_headers): Add
1480 shstrtab_section parameter. Change all callers.
1481 (Output_section_headers::do_sized_write): Store overflow values
1482 for section count and section string table section index in
1483 section header zero.
1484 (Output_file_header::do_sized_write): Check for overflow of
1485 section count and section string table section index.
1486 (Output_symtab_xindex::do_write): New function.
1487 (Output_symtab_xindex::endian_do_write): New function.
1488 * output.h (class Output_section_headers): Add shstrtab_section_.
1489 Update declarations.
1490 (class Output_symtab_xindex): Define.
1491 (Output_section::has_out_shndx): New function.
1492 * symtab.cc (Symbol::init_fields): Initialize is_ordinary_shndx_
1493 field.
1494 (Symbol::init_base): Add st_shndx and is_ordinary parameters.
1495 Change all callers.
1496 (Sized_symbol::init): Likewise.
1497 (Symbol::output_section): Check for ordinary symbol.
1498 (Symbol_table::add_from_object): Remove orig_sym parameter. Add
1499 st_shndx, is_ordinary, and orig_st_shndx parameters. Change all
1500 callers.
1501 (Symbol_table::add_from_relobj): Add symndx_offset parameter.
1502 Change all callers. Simplify handling of symbols from sections
1503 not included in the link.
1504 (Symbol_table::add_from_dynobj): Handle ordinary symbol
1505 distinction.
1506 (Weak_alias_sorter::operator()): Assert that symbols are
1507 ordinary.
1508 (Symbol_table::sized_finalize_symbol): Handle ordinary symbol
1509 distinction.
1510 (Symbol_table::write_globals): Add symtab_xindex and dynsym_xindex
1511 parameters. Change all callers.
1512 (Symbol_table::sized_write_globals): Likewise. Handle ordinary
1513 symbol distinction. Use SHN_XINDEX when needed.
1514 (Symbol_table::write_section_symbol): Add symtab_xindex
1515 parameter. Change all callers.
1516 (Symbol_table::sized_write_section_symbol): Likewise. Use
1517 SHN_XINDEX when needed.
1518 * symtab.h (class Symbol): Add is_ordinary_shndx_ field. Update
1519 declarations.
1520 (Symbol::shndx): Add is_ordinary parameter. Change all callers.
1521 (Symbol::is_defined): Check is_ordinary.
1522 (Symbol::is_undefined, Symbol::is_weak_undefined): Likewise.
1523 (Symbol::is_absolute, Symbol::is_common): Likewise.
1524 (class Sized_symbol): Update declarations.
1525 (class Symbol_table): Update declarations.
1526 * resolve.cc (Symbol::override_base): Add st_shndx and is_ordinary
1527 parameters. Change all callers.
1528 (Sized_symbol::override): Likewise.
1529 (Symbol_table::override): Likewise.
1530 (symbol_to_bits): Add is_ordinary parameter. Change all callers.
1531 (Symbol_table::resolve): Remove orig_sym parameter. Add st_shndx,
1532 is_ordinary, and orig_st_shndx parameters. Change all callers.
1533 * copy-relocs.cc (Copy_relocs::emit_copy_reloc): Require symbol
1534 to be in an ordinary section.
1535 * dwarf_reader.cc (Sized_dwarf_line_info::symbol_section): Add
1536 object and is_ordinary parameters. Change all callers.
1537 (Sized_dwarf_line_info::read_relocs): Add object parameter.
1538 Change all callers. Don't add undefined or non-ordinary symbols
1539 to reloc_map_.
1540 (Sized_dwarf_line_info::read_line_mappings): Add object parameter.
1541 Change all callers.
1542 * dwarf_reader.h (class Sized_dwarf_line_info): Update
1543 declarations.
1544 * ehframe.cc (Eh_frame::read_fde): Check for ordinary symbol.
1545 * reloc.cc (Sized_relobj::do_read_relocs): Adjust section links.
1546 (Sized_relobj::relocate_sections): Likewise.
1547 * target-reloc.h (scan_relocs): Adjust section symbol index.
1548 (scan_relocatable_relocs): Likewise.
1549 * i386.cc (Scan::local): Check for ordinary symbols.
1550 * sparc.cc (Scan::local): Likewise.
1551 * x86_64.cc (Scan::local): Likewise.
1552 * testsuite/binary_unittest.cc (Sized_binary_test): Update calls
1553 to symbol_section_and_value.
1554 * testsuite/many_sections_test.cc: New file.
1555 * testsuite/Makefile.am (BUILT_SOURCES): Define.
1556 (check_PROGRAMS): Add many_sections_test.
1557 (many_sections_test_SOURCES): Define.
1558 (many_sections_test_DEPENDENCIES): Define.
1559 (many_sections_test_LDFLAGS): Define.
1560 (BUILT_SOURCES): Add many_sections_define.h.
1561 (many_sections_define.h): New target.
1562 (BUILT_SOURCES): Add many_sections_check.h.
1563 (many_sections_check.h): New target.
1564 (check_PROGRAMS): Add many_sections_r_test.
1565 (many_sections_r_test_SOURCES): Define.
1566 (many_sections_r_test_DEPENDENCIES): Define.
1567 (many_sections_r_test_LDFLAGS): Define.
1568 (many_sections_r_test_LDADD): Define.
1569 (many_sections_r_test.o): New target.
1570 * testsuite/Makefile.in: Rebuild.
1571
c5818ff1
CC
15722008-04-17 Cary Coutant <ccoutant@google.com>
1573
1574 * errors.cc (Errors::info): New function.
1575 (gold_info): New function.
1576 * errors.h (Errors::info): New function.
1577 * gold.h (gold_info): New function.
1578 * object.cc (Input_objects::add_object): Print trace output.
1579 * options.cc (options::parse_set): New function.
1580 (General_options::parse_wrap): Deleted.
1581 (General_options::General_options): Deleted initializer.
1582 * options.h (options::String_set): New typedef.
1583 (options::parse_set): New function.
1584 (DEFINE_set): New macro.
1585 (General_options::wrap): Changed to use DEFINE_set. Changed
1586 callers of any_wrap_symbols and is_wrap_symbol.
1587 (General_options::trace, General_options::trace_symbol):
1588 New options.
1589 (General_options::any_wrap_symbols, General_options::is_wrap_symbol)
1590 (General_options::wrap_symbols_): Deleted.
1591 * symtab.cc (Symbol_table::add_from_object): Print trace output.
1592
b5be4a7c
DM
15932008-04-17 David S. Miller <davem@davemloft.net>
1594
1595 * options.cc (General_options::parse_V): New function.
1596 * options.h: Add entries for -V and -Qy.
1597
155a0dd7
ILT
15982008-04-17 Ian Lance Taylor <iant@google.com>
1599
1600 * common.cc (Symbol_table::allocate_commons): Remove options
1601 parameter. Change caller.
1602 (Symbol_table::do_allocate_commons): Remove options parameter.
1603 Change caller. Just call do_allocate_commons_list twice.
1604 (Symbol_table::do_allocate_commons_list): New function, broken out
1605 of do_allocate_commons.
1606 * common.h (class Allocate_commons_task): Remove options_ field.
1607 Update constructor.
1608 * symtab.cc (Symbol_table::Symbol_table): Initialize
1609 tls_commons_.
1610 (Symbol_table::add_from_object): Put TLS common symbols on
1611 tls_commons_ list.
1612 (Symbol_table::sized_finalize_symbol): Handle STT_TLS symbols
1613 which are IN_OUTPUT_DATA.
1614 * symtab.h (class Symbol_table): Add tls_commons_ field. Update
1615 allocate_commons and do_allocate_commons declarations. Declare
1616 do_allocate_commons_list.
1617 * gold.cc (queue_middle_tasks): Update creation of
1618 Allocate_commons_task to not pass options.
1619 * testsuite/Makefile.am (INCLUDES): Add -I.. .
1620 (TLS_TEST_C_FLAGS): New variable.
1621 (tls_test_c_pic.o): New target.
1622 (tls_test_shared.so): Link in tls_test_c_pic.o.
1623 (tls_test_c_pic_ie.o): New target.
1624 (tls_test_ie_shared.so): Link in tls_test_c_pic_ie.o.
1625 (tls_test_DEPENDENCIES, tls_test_LDADD): Add tls_test_c.o.
1626 (tls_test_c.o): New target.
1627 (tls_pic_test_DEPENDENCIES): Add tls_test_c_pic.o.
1628 (tls_pic_test_LDADD): Likewise.
1629 (tls_shared_gd_to_ie_test_DEPENDENCIES): Add tls_test_c_pic.o.
1630 (tls_shared_gd_to_ie_test_LDADD): Likewise.
1631 (tls_test_c_gnu2.o): New target.
1632 (tls_shared_gnu2_gd_to_ie_test_DEPENDENCIES): Add
1633 tls_test_c_gnu2.o.
1634 (tls_shared_gnu2_gd_to_ie_test_LDADD): Likewise.
1635 (tls_test_gnu2_shared.so): Link in tls_test_c_gnu2.o.
1636 (tls_test_shared_nonpic.so): Link in tls_test_c.o.
1637 * testsuite/tls_test.cc: Include "config.h".
1638 (t_last): Call t11_last.
1639 * testsuite/tls_test.h (t11, t11_last): Declare.
1640 * testsuite/tls_test_c.c: New file.
1641 * testsuite/tls_test_main.cc (thread_routine): Call t11.
1642 * configure.ac: Check for OpenMP support.
1643 * configure, config.in, Makefile.in: Rebuild.
1644 * testsuite/Makefile.in: Rebuild.
1645
edfbb029
CC
16462008-04-16 Cary Coutant <ccoutant@google.com>
1647
1648 * i386.cc (Target_i386::define_tls_base_symbol): New function.
1649 (Target_i386::tls_base_symbol_defined_): New field.
1650 (Target_i386::Scan::local): Define _TLS_MODULE_BASE_ symbol.
1651 (Target_i386::Scan::global): Likewise.
1652 * symtab.cc (sized_finalize_symbol): Add check for TLS symbol.
1653 * x86_64.cc (Target_x86_64::define_tls_base_symbol): New function.
1654 (Target_x86_64::tls_base_symbol_defined_): New field.
1655 (Target_x86_64::Scan::local): Define _TLS_MODULE_BASE_ symbol.
1656 (Target_x86_64::Scan::global): Likewise.
1657
f3c69fca
CC
16582008-04-16 Cary Coutant <ccoutant@google.com>
1659
1660 * symtab.h (Symbol::is_strong_undefined): Removed unused function.
1661 (Symbol::needs_plt_entry): Allow weak undefined symbols.
1662 (Symbol::needs_dynamic_reloc): Allow weak undefined symbols when
1663 building shared libraries.
1664 * testsuite/Makefile.am (weak_undef_nonpic_test): New target.
1665 (weak_undef_file1_nonpic.o, weak_undef_file2_nonpic.o)
1666 (weak_undef_lib_nonpic.so, alt/weak_undef_lib_nonpic.so): New targets.
1667 * testsuite/Makefile.in: Rebuild.
1668 * testsuite/weak_undef.h: New file.
1669 * testsuite/weak_undef_file1.cc: Add extra test cases.
1670 * testsuite/weak_undef_file2.cc: Likewise.
1671 * testsuite/weak_undef_test.cc: Likewise.
1672
7c414435
DM
16732008-04-16 David S. Miller <davem@davemloft.net>
1674
32b769e1
DM
1675 * sparc.cc (Target_sparc::Scan): Change from struct to class.
1676 Add issued_non_pic_error_ field. Declare check_non_pic.
1677 (Target_sparc::Scan::check_non_pic): New function.
1678 (Target_sparc::Scan::local): Call check_non_pic as appropriate.
1679 (Target_sparc::Scan::global): Likewise.
1680
11936fb1
DM
1681 * configure.ac (FN_PTRS_IN_SO_WITHOUT_PIC): Add sparc64.
1682 * configure: Rebuild.
1683
7c414435
DM
1684 * options.h (DEFINE_enable): New macro.
1685 (new_dtags): New enable option.
1686 (initfirst, interpose, loadfltr, nodefaultlib,
1687 nodelete, nodlopen, nodump): New -z options.
1688 * layout.cc (Layout:finish_dynamic_section): If new
1689 dtags enabled, emit DT_RUNPATH. Also, emit a
1690 DT_FLAGS_1 containing any specified -z flags.
1691
85c7bf8b
ILT
16922008-04-16 Ian Lance Taylor <iant@google.com>
1693
12c0daef
ILT
1694 * copy-relocs.cc: New file.
1695 * copy-relocs.h: New file.
1696 * reloc.cc: Remove Copy_relocs code.
1697 * reloc.h: Likewise.
1698 * reloc-types.h (struct Reloc_types) [both versions]: Add
1699 get_reloc_addend_noerror.
1700 * output.h (class Output_data_reloc<elfcpp::SHT_REL>): Add
1701 variants of add_global which take an addend which must be zero.
1702 * i386.cc: Include "copy-relocs.h".
1703 (class Target_i386): Change type of copy_relocs_ to variable,
1704 update initializer.
1705 (Target_i386::copy_reloc): Rewrite to pass to Copy_relocs class.
1706 Change all callers.
1707 (Target_i386::do_finalize_sections): Change handling of
1708 copy_relocs_.
1709 * sparc.cc: Include "copy-relocs.h".
1710 (class Target_sparc): Change type of copy_relocs_ to variable,
1711 update initializer.
1712 (Target_sparc::copy_reloc): Rewrite to pass to Copy_relocs class.
1713 Change all callers.
1714 (Target_sparc::do_finalize_sections): Change handling of
1715 copy_relocs_.
1716 * x86_64.cc: Include "copy-relocs.h".
1717 (class Target_x86_64): Change type of copy_relocs_ to variable,
1718 update initializer.
1719 (Target_x86_64::copy_reloc): Rewrite to pass to Copy_relocs
1720 class. Change all callers.
1721 (Target_x86_64::do_finalize_sections): Change handling of
1722 copy_relocs_.
1723 * Makefile.am (CCFILES): Add copy-relocs.cc.
1724 (HFILES): Add copy-relocs.h.
1725
4f4995b6
ILT
1726 * Makefile.in, aclocal.m4, testsuite/Makefile.in: Rebuild.
1727
85c7bf8b
ILT
1728 * testsuite/script_test_4.sh: Permit leading zeroes.
1729
4f2a9edd
ILT
17302008-04-15 Ian Lance Taylor <iant@google.com>
1731
e6188289
ILT
1732 * script-sections.cc (Script_sections::create_segments): Use
1733 header_size_adjustment even when there is enough room for the
1734 headers.
1735 * testsuite/script_test_4.sh: New file.
1736 * testsuite/script_test_4.t: New file.
1737 * testsuite/Makefile.am (check_SCRIPTS): Add script_test_4.sh.
1738 (check_DATA): Add script_test_4.stdout.
1739 (MOSTLYCLEANFILES): Likewise.
1740 (script_test_4): New target.
1741 (script_test_4.stdout): New target.
1742 * testsuite/Makefile.in: Rebuild.
1743
4f2a9edd
ILT
1744 * sparc.cc: Add definitions for Output_data_plt_sparc class
1745 constants.
1746
f5314dd5
DM
17472008-04-14 David S. Miller <davem@davemloft.net>
1748
1749 * sparc.cc: New file.
1750 * Makefile.am (TARGETSOURCES): Add sparc.cc
1751 (ALL_TARGETOBJS): Add sparc.$(OBJEXT)
1752 * configure.tgt: Document targ_extra_size and
1753 targ_extra_big_endian. Add entries for sparc-* and
1754 sparc64-*.
1755 * configure.ac: Handle targ_extra_size and
1756 targ_extra_big_endian.
1757 * Makefile.in: Rebuild.
1758 * configure: Likewise.
1759 * po/POTFILES.in: Likewise.
1760 * po/gold.pot: Likewise.
1761
154e0e9a
ILT
17622008-04-14 Ian Lance Taylor <iant@google.com>
1763
1764 * layout.cc (Layout::Layout): Initialize sections_are_attached_.
1765 (Layout::get_output_section): Ignore SHF_WRITE and SHF_EXECINSTR
1766 in the name/type/flags to section mapping. Don't call
1767 allocate_output_section.
1768 (Layout::choose_output_section): Change parameter from adjust_name
1769 to is_input_section. Don't permit input sections after sections
1770 are attached to segments. Don't call allocate_output_section.
1771 (Layout::layout_eh_frame): Call update_flags_for_input_section,
1772 not write_enable_output_section.
1773 (Layout::make_output_section): Don't push to
1774 unattached_section_list_ nor call attach_to_segment. Call
1775 attach_section_to_segment if sections are attached.
1776 (Layout::attach_sections_to_segments): New function.
1777 (Layout::attach_section_to_segment): New function.
1778 (Layout::attach_allocated_section_to_segment): Rename from
1779 attach_to_segment. Remove flags parameter.
1780 (Layout::allocate_output_section): Remove function.
1781 (Layout::write_enable_output_section): Remove function.
1782 * layout.h (class Layout): Update for above changes. Add new
1783 field sections_are_attached_.
1784 * output.h (Output_section::update_flags_for_input_section): New
1785 function.
1786 * output.cc (Output_section::add_input_section): Call
1787 update_flags_for_input_section.
1788 * gold.cc (queue_middle_tasks): Call attach_sections_to_segments.
1789
009a67a2
CC
17902008-04-11 Cary Coutant <ccoutant@google.com>
1791
1792 * i386.cc (Target_i386::got_mod_index_entry): Restore code previously
1793 thought unnecessary.
1794 * x86_64.cc (Target_x86_64::got_mod_index_entry): Likewise.
1795
759b1a24
ILT
17962008-04-11 Ian Lance Taylor <iant@google.com>
1797
1798 * output.h (class Output_section_data): Remove inline definition
1799 of set_addralign.
1800 * output.cc (Output_section_data::set_addralign): New function.
1801
c2b45e22
CC
18022008-04-11 Cary Coutant <ccoutant@google.com>
1803
1804 Add support for TLS descriptors for i386 and x86_64.
1805 * i386.cc (Target_i386::Relocate::tls_desc_gd_to_ie): New function.
1806 (Target_i386::Relocate::tls_desc_gd_to_le): New function.
1807 (Target_i386::Got_type): Add GOT_TYPE_TLS_NOFFSET and
1808 GOT_TYPE_TLS_DESC.
1809 (Target_i386::got_mod_index_entry): Remove unnecessary code.
1810 (Target_i386::Scan::local): Implement R_386_TLS_GOTDESC and
1811 R_386_TLS_DESC_CALL relocations. Fix problem with initial-exec
1812 relocations.
1813 (Target_i386::Scan::global): Fix problem with GD-to-IE relaxation.
1814 Implement R_386_TLS_GOTDESC and R_386_TLS_DESC_CALL relocations;
1815 Fix problem with initial-exec relocations.
1816 (Target_i386::Relocate::relocate_tls): Likewise.
1817 (Target_i386::Relocate::tls_gd_to_ie): Fix problem with GD-to-IE
1818 relaxation.
1819 * output.cc (Output_data_dynamic::Dynamic_entry::write): Add
1820 support for section-plus-offset dynamic table entries.
1821 * output.h (Output_data_dynamic::add_section_plus_offset): New function.
1822 (Output_data_dynamic::Dynamic_entry): Add support for
1823 section-plus-offset dynamic table entries.
1824 (Output_data_dynamic::Classification): Likewise.
1825 (Output_data_dynamic::classification_): Renamed offset_.
1826 * x86_64.cc (Target_x86_64::Relocate::tls_desc_gd_to_ie): New function.
1827 (Target_x86_64::Relocate::tls_desc_gd_to_le): New function.
1828 (Target_x86_64::make_plt_section): New function.
1829 (Target_x86_64::reserve_tlsdesc_entries): New function.
1830 (Output_data_plt_x86_64::Output_data_plt_x86_64): Add new parameter.
1831 (Output_data_plt_x86_64::reserve_tlsdesc_entry): New function.
1832 (Output_data_plt_x86_64::has_tlsdesc_entry): New function.
1833 (Output_data_plt_x86_64::get_tlsdesc_got_offset): New function.
1834 (Output_data_plt_x86_64::get_tlsdesc_plt_offset): New function.
1835 (Output_data_plt_x86_64::tlsdesc_plt_entry): New field.
1836 (Output_data_plt_x86_64::set_final_data_size): Move out of line;
1837 add extra PLT entry for TLS descriptors.
1838 (Output_data_plt_x86_64::got_): New field.
1839 (Output_data_plt_x86_64::tlsdesc_got_offset_): New field.
1840 (Output_data_plt_x86_64::Output_data_plt_x86_64): Initialize new
1841 fields.
1842 (Output_data_plt_x86_64::do_write): Write extra PLT entry for TLS
1843 descriptors.
1844 (Target_x86_64::make_plt_entry): Factor out make_plt_section.
1845 (Target_x86_64::got_mod_index_entry): Remove unnecessary code.
1846 (Target_x86_64::Scan::local): Implement R_386_TLS_GOTDESC and
1847 R_386_TLS_DESC_CALL relocations.
1848 (Target_x86_64::Scan::global): Likewise.
1849 (Target_x86_64::do_finalize_sections): Add dynamic table entries
1850 for TLS descriptors.
1851 (Relocate::relocate_tls): Fix problem with GD-to-IE relaxation.
1852 Implement R_386_TLS_GOTDESC and R_386_TLS_DESC_CALL relocations.
1853 (Target_x86_64::Relocate::tls_gd_to_ie): Fix problem with
1854 GD-to-IE relaxation.
1855 * configure.ac: Export new conditional variables TLS_GNU2_DIALECT
1856 and TLS_DESCRIPTORS.
1857 * Makefile.in: Rebuild.
1858 * configure: Rebuild.
1859 * testsuite/Makefile.am (tls_shared_gd_to_ie_test): New target.
1860 (tls_test_shared2.so): New target.
1861 (tls_shared_gd_to_ie_test_SOURCES): New variable.
1862 (tls_shared_gd_to_ie_test_DEPENDENCIES): New variable.
1863 (tls_shared_gd_to_ie_test_LDFLAGS): New variable.
1864 (tls_shared_gd_to_ie_test_LDADD): New variable.
1865 (tls_shared_gnu2_gd_to_ie_test): New target.
1866 (tls_test_gnu2.o, tls_test_file2_gnu2.o, tls_test_gnu2_shared2.so):
1867 New targets.
1868 (tls_shared_gnu2_gd_to_ie_test_SOURCES): New variable.
1869 (ls_shared_gnu2_gd_to_ie_test_DEPENDENCIES): New variable.
1870 (tls_shared_gnu2_gd_to_ie_test_LDFLAGS): New variable.
1871 (tls_shared_gnu2_gd_to_ie_test_LDADD): New variable.
1872 (tls_shared_gnu2_test): New target.
1873 (tls_test_gnu2_shared.so): New target.
1874 (tls_shared_gnu2_test_SOURCES): New variable.
1875 (tls_shared_gnu2_test_DEPENDENCIES): New variable.
1876 (tls_shared_gnu2_test_LDFLAGS): New variable.
1877 (tls_shared_gnu2_test_LDADD): New variable.
1878 * testsuite/Makefile.in: Rebuild.
1879 * testsuite/Makefile.
1880
83bfb6b7
ILT
18812008-04-11 Ian Lance Taylor <iant@google.com>
1882
1883 * testsuite/Makefile.am (justsyms_2r.o): Add dependency on
1884 justsyms.t.
1885 * testsuite/Makefile.in: Rebuild.
1886
1887 * testsuite/script_test_2a.cc (script_test_string_a): Make 8 bytes
1888 long.
1889 * testsuite/script_test_2.cc (main): Adjust test.
1890
706e1f5e
ILT
18912008-04-11 David S. Miller <davem@davemloft.net>
1892 Ian Lance Taylor <iant@google.com>
1893
1894 * options.h (General_options): Add entries for '-Y' and
1895 '-relax'.
1896 * options.cc (General_options:finalize): If -Y was used, add those
1897 entries to the library path instead of the default "/lib" and
1898 "/usr/lib".
1899
7c98e6bb
DM
19002008-04-11 David S. Miller <davem@davemloft.net>
1901
1902 * testsuite/justsyms.t: Start at 0x100.
1903 * testsuite/justsyms_1.cc: Adjust justsyms_string assertion.
83bfb6b7
ILT
1904 * testsuite/script_test_2b.cc (script_test_string_b): Make 8 bytes
1905 long.
1906 * testsuite/script_test_2.cc: Adjust string and section length
1907 checks.
7c98e6bb 1908
99a37bfd
ILT
19092008-04-09 Ian Lance Taylor <iant@google.com>
1910
2cefc357
ILT
1911 PR gold/5996
1912 * script-sections.cc (Sections_element::allocate_to_segment): Add
1913 orphan parameter.
1914 (Output_section_definition::allocate_to_segment): Likewise.
1915 (Orphan_output_section::allocate_to_segment): Likewise.
1916 (Script_sections::attach_sections_using_phdrs_clause): Don't
1917 propagate non-PT_LOAD segments to orphan sections.
1918 * testsuite/Makefile.am (script_test_3.stdout): Generate using
1919 readelf rather than objdump.
1920 * testsuite/script_test_3.sh: Adjust accordingly. Test that
1921 .interp section and PT_INTERP segment are the same size.
1922 * testsuite/Makefile.in: Rebuild.
1923
99a37bfd
ILT
1924 * symtab.cc (Symbol_table::add_from_dynobj): Only look for weak
1925 aliases for symbols defined in the same object.
1926 * testsuite/Makefile.am (check_PROGRAMS): Add weak_alias_test.
1927 (weak_alias_test_SOURCES): New variable.
1928 (weak_alias_test_DEPENDENCIES): New variable.
1929 (weak_alias_test_LDFLAGS): New variable.
1930 (weak_alias_test_LDADD): New variable.
1931 (weak_alias_test_1_pic.o, weak_alias_test_1.so): New targets.
1932 (weak_alias_test_2_pic.o, weak_alias_test_2.so): New targets.
1933 (weak_alias_test_3.o): New target.
1934 (weak_alias_test_4_pic.o, weak_alias_test_4.so): New targets.
1935 * testsuite/weak_alias_test_main.cc: New file.
1936 * testsuite/weak_alias_test_1.cc: New file.
1937 * testsuite/weak_alias_test_2.cc: New file.
1938 * testsuite/weak_alias_test_3.cc: New file.
1939
780e49c5
ILT
19402008-04-08 Ian Lance Taylor <iant@google.com>
1941
cdb0b8f5
ILT
1942 * options.h (class General_options): Add --noinhibit-exec option.
1943 * main.cc (main): Check --noinhibit-exec.
1944
0864d551
ILT
1945 * options.h (class General_options): Define --wrap as a special
1946 option. Add wrap_symbols_ field.
1947 (General_options::any_wrap_symbols): New function.
1948 (General_options::is_wrap_symbol): New function.
1949 * options.cc (General_options::parse_wrap): New function.
1950 (General_options::General_options): Initialize wrap_symbols_.
1951 * symtab.cc (Symbol_table::wrap_symbol): New function.
1952 (Symbol_table::add_from_object): Handle --wrap.
1953 * symtab.h (class Symbol_table): Declare wrap_symbol.
1954 * target.h (Target::wrap_char): New function.
1955 (Target::Target_info): Add wrap_char field.
1956 * i386.cc (Target_i386::i386_info): Initialize wrap_char.
1957 * x86_64.cc (Target_x86_64::x86_64_info): Likewise.
1958 * testsuite/testfile.cc (Target_test::test_target_info):
1959 Likewise.
1960
789aa6de
ILT
1961 * errors.cc (Errors::undefined_symbol): Mention symbol version if
1962 there is one.
1963
2c38906f
ILT
1964 * layout.h (class Layout): Add added_eh_frame_data_ field.
1965 * layout.cc (Layout::Layout): Initialize new field.
1966 (Layout::layout_eh_frame): Don't add eh_frame_data_ to .eh_frame
1967 output section until we find a section we merged successfully.
1968 * object.cc (Sized_relobj::check_eh_frame_flags): Don't require
1969 that the size be non-zero.
1970
780e49c5
ILT
1971 * merge.cc (Object_merge_map::get_output_offset): Remove inline
1972 qualifier.
1973
7fcd0256
ILT
19742008-04-08 Craig Silverstein <csilvers@google.com>
1975
1976 * configure.ac: Export new conditional variable HAVE_ZLIB.
1977 * testsuite/Makefile.am (flagstest_o_specialfile): Condition
1978 on HAVE_ZLIB.
1979 (flagstest_o_specialfile_and_compress_debug_sections): Likewise.
1980 * configure, Makefile.in, testsuite/Makefile.in: Rebuild.
1981
6835af53
ILT
19822008-04-07 Ian Lance Taylor <iant@google.com>
1983
e24f324c
ILT
1984 * version.cc (version_string): Set to "1.5".
1985
a036edd8
ILT
1986 * x86_64.cc (Target_x86_64::Scan): Change from struct to class.
1987 Add issued_non_pic_error_ field. Declare check_non_pic.
1988 (Target_x86_64::Scan::check_non_pic): New function.
1989 (Target_x86_64::Scan::local): Call check_non_pic as appropriate.
1990 (Target_x86_64::Scan::global): Likewise.
1991
624f8810
ILT
1992 * output.cc (Output_reloc<SHT_REL>::local_section_offset): Add
1993 addend parameter. Change caller. Handle merge sections.
1994 (Output_reloc<SHT_REL>::symbol_value): Change parameter type from
1995 Address to Addend. Don't add in the result of
1996 local_section_offset, pass down the addend and use the returned
1997 value.
1998 * output.h (class Output_reloc<SHT_REL>): Add Addend typedef.
1999 Update declarations of local_section_offset and symbol_value.
2000 * testsuite/two_file_test_1.cc (t18): New function.
2001 * testsuite/two_file_test_2.cc (f18): New function.
2002 * testsuite/two_file_test_main.cc (main): Call t18.
2003 * testsuite/two_file_test.h (t18, f18): Declare.
2004
6835af53
ILT
2005 * configure.ac: Don't test for objdump, c++filt, or readelf.
2006 * testsuite/Makefile.am: Remove READELF and OBJDUMP_AND_CPPFILT
2007 conditionals.
2008 (TEST_READELF): New variable.
2009 (TEST_OBJDUMP, TEST_CXXFILT, TEST_STRIP): New variables.
2010 (check_PROGRAMS): Add two_file_strip_test.
2011 (two_file_strip_test): New target.
2012 (check_PROGRAMS): Add two_file_same_shared_strip_test.
2013 (two_file_same_shared_strip_test_SOURCES): New variable.
2014 (two_file_same_shared_strip_test_DEPENDENCIES): New variable.
2015 (two_file_same_shared_strip_test_LDFLAGS): New variable.
2016 (two_file_same_shared_strip_test_LDADD): New variable.
2017 (two_file_shared_strip.so): New target.
2018 (ver_test_2.syms, ver_test_4.syms): Use TEST_READELF.
2019 (ver_test_5.syms, ver_test_7.syms): Likewise.
2020 (ver_matching_test.stdout): Use TEST_OBJDUMP and TEST_CXXFILT.
2021 (strip_test_3.stdout): Use TEST_OBJDUMP.
2022 * configure, Makefile.in, testsuite/Makefile.in: Rebuild.
2023
86925eef
CC
20242008-04-04 Cary Coutant <ccoutant@google.com>
2025
2026 * symtab.h (Symbol::is_weak_undefined): New function.
2027 (Symbol::is_strong_undefined): New function.
2028 (Symbol::is_absolute): New function.
2029 (Symbol::needs_plt_entry): Exclude weak undefined symbols.
2030 (Symbol::needs_dynamic_reloc): Exclude weak undefined and
2031 absolute symbols.
2032 * testsuite/Makefile.am (check_PROGRAMS): Add weak_undef_test.
2033 (weak_undef_test): New target.
2034 * testsuite/Makefile.in: Rebuild.
2035 * testsuite/weak_undef_file1.cc: New file.
2036 * testsuite/weak_undef_file2.cc: New file.
2037 * testsuite/weak_undef_test.cc: New file.
2038
126f3ece
ILT
20392008-04-03 Craig Silverstein <csilvers@google.com>
2040
2041 * compressed_output.h (class Output_compressed_section): Use
2042 unsigned buffer.
2043 * compressed_output.cc (zlib_compress): Use unsigned buffers,
2044 add zlib header.
2045 (zlib_compressed_suffix): Removed.
2046 (Output_compressed_section::set_final_data_size): Use unsigned
2047 buffers.
2048 * testsuite/Makefile.am (flagstest_compress_debug_sections):
2049 Fix linker invocation.
2050 (flagstest_o_specialfile_and_compress_debug_sections):
2051 Likewise.
2052 * testsuite/Makefile.in: Regenerated.
2053
deae2a14
DM
20542008-04-02 David S. Miller <davem@davemloft.net>
2055
2056 * dwarf_reader.cc (Sized_dwarf_line_info::read_header_prolog,
2057 Sized_dwarf_line_info::process_one_opcode): Use Swap_unaligned.
2058
70752818
ILT
20592008-04-02 Craig Silverstein <csilvers@google.com>
2060
2061 * TODO: New file.
2062
39d0cb0e
ILT
20632008-04-02 Ian Lance Taylor <iant@google.com>
2064
2065 * fileread.cc (File_read::find_view): Add byteshift and vshifted
2066 parameters. Update for new key type to views_. Change all
2067 callers.
2068 (File_read::read): Adjust for byteshift in returned view.
2069 (File_read::add_view): New function, broken out of
2070 find_and_make_view.
2071 (File_read::make_view): New function, broken out of
2072 find_and_make_view.
2073 (File_read::find_or_make_view): Add offset and aligned
2074 parameters. Rewrite accordingly. Change all callers.
2075 (File_read::get_view): Add offset and aligned parameters. Adjust
2076 for byteshift in return value.
2077 (File_read::get_lasting_view): Likewise.
2078 * fileread.h (class File_read): Update declarations.
2079 (class File_read::View): Add byteshift_ field. Add byteshift to
2080 constructor. Add byteshift method.
2081 * archive.h (Archive::clear_uncached_views): New function.
2082 (Archive::get_view): Add aligned parameter. Change all callers.
2083 * object.h (Object::get_view): Add aligned parameter. Change all
2084 callers.
2085 (Object::get_lasting_view): Likewise.
2086
2087 * fileread.cc (File_read::release): Don't call clear_views if
2088 there are multiple objects.
2089 * fileread.h (File_read::clear_uncached_views): New function.
2090 * archive.cc (Add_archive_symbols::run): Call clear_uncached_views
2091 on the archive.
2092
a1207466
CC
20932008-03-31 Cary Coutant <ccoutant@google.com>
2094
2095 Add thin archive support.
2096 * archive.cc (Archive::armagt): New const.
2097 (Archive::setup): Remove task parameter and calls to unlock.
2098 (Archive::unlock_nested_archives): New function.
2099 (Archive::read_header): Add nested_off parameter. Change
2100 all callers.
2101 (Archive::interpret_header): Likewise.
2102 (Archive::include_all_members): Change to handle thin
2103 archives.
2104 (Archive::include_member): Likewise.
2105 * archive.h (Archive::Archive): Add new parameters and
2106 initializers.
2107 (Archive::armagt): New const.
2108 (Archive::setup): Remove task parameter.
2109 (Archive::unlock_nested_archives): New function.
2110 (Archive::read_header): Add nested_off parameter.
2111 (Archive::interpret_header): Likewise.
2112 (Archive::Nested_archive_table): New typedef.
2113 (Archive::is_thin_archive_): New field.
2114 (Archive::nested_archives_): New field.
2115 (Archive::options_): New field.
2116 (Archive::dirpath_): New field.
2117 (Archive::task_): New field.
2118 * readsyms.cc (Read_symbols::do_read_symbols): Add check
2119 for thin archives. Pass additional parameters to
2120 Archive::Archive. Unlock the archive file after calling
2121 Archive::setup.
2122
479f6503
ILT
21232008-03-29 Ian Lance Taylor <iant@google.com>
2124
686c8caf
ILT
2125 * symtab.cc (Symbol_table::do_define_as_constant): Don't force a
2126 version symbol to be local.
2127 * testsuite/ver_test_4.sh: New file.
2128 * testsuite/Makefile.am (check_SCRIPTS): Add ver_test_4.sh.
2129 (check_DATA): Add ver_test_4.syms.
2130 (ver_test_4.syms): New target.
2131 * testsuite/Makefile.in: Rebuild.
2132
ab794b6b
ILT
2133 * output.cc
2134 (Output_section::Input_section_sort_entry::has_priority): New
2135 function.
2136 (Output_section::Input_section_sort_entry::match_file_name): New
2137 function.
2138 (Output_section::Input_section_sort_entry::match_section_name):
2139 Remove.
2140 (Output_section::Input_section_sort_entry::match_section_name_prefix):
2141 Remove.
2142 (Output_section::Input_section_sort_entry::match_section_file):
2143 Remove.
2144 (Output_section::Input_section_sort_compare::operator()): Rewrite
2145 using new Input_section_sort_entry functions. Sort crtbegin and
2146 crtend first. Sort sections with no priority before sections with
2147 a priority.
2148 * testsuite/initpri1.c (d3): Check j != 4.
2149 (cd5): New constructor/destructor function.
2150 (main): Check j != 2.
2151
479f6503
ILT
2152 * symtab.cc (Symbol_table::add_from_object): If we don't use the
2153 new symbol when resolving, don't call set_is_default.
2154 * testsuite/ver_test_7.cc: New file.
2155 * testsuite/ver_test_7.sh: New file.
2156 * testsuite/Makefile.am (ver_test_7.so): New target.
2157 (ver_test_7.o): New target.
2158 (check_SCRIPTS): Add ver_test_7.sh.
2159 (check_DATA): Add ver_test_7.syms.
2160 (ver_test_7.syms): New target.
2161
2fd32231
ILT
21622008-03-28 Ian Lance Taylor <iant@google.com>
2163
2164 * layout.cc (Layout::layout): If we see an input section with a
2165 name that needs sorting, set the must_sort flag for the output
2166 section.
2167 (Layout::make_output_section): If the name of the output section
2168 indicates that it might require sorting, set the may_sort flag.
2169 * output.h (Output_section::may_sort_attached_input_sections): New
2170 function.
2171 (Output_section::set_may_sort_attached_input_sections): New
2172 function.
2173 (Output_section::must_sort_attached_input_sections): New
2174 function.
2175 (Output_section::set_must_sort_attached_input_sections): New
2176 function.
2177 (class Output_section): Declare Input_section_sort_entry. Define
2178 Input_section_sort_compare. Declare
2179 sort_attached_input_sections. Add new fields:
2180 may_sort_attached_input_sections_,
2181 must_sort_attached_input_sections_,
2182 attached_input_sections_are_sorted_.
2183 * output.cc (Output_section::Output_section): Initialize new
2184 fields.
2185 (Output_section::add_input_section): Add an entry to
2186 input_sections_ if may_sort or must_sort are true.
2187 (Output_section::set_final_data_size): Call
2188 sort_attached_input_sections if necessary.
2189 (Output_section::Input_section_sort_entry): Define new class.
2190 (Output_section::Input_section_sort_compare::operator()): New
2191 function.
2192 (Output_section::sort_attached_input_sections): New function.
2193 * configure.ac: Check whether the compiler supports constructor
2194 priorities. Define a CONSTRUCTOR_PRIORITY automake conditional.
2195 * testsuite/initpri1.c: New file.
2196 * testsuite/Makefile.am (check_PROGRAMS): Add initpri1 if
2197 CONSTRUCTOR_PRIORITY.
2198 (initpri1_SOURCES, initpri1_DEPENDENCIES): New variables.
2199 (initpri1_LDFLAGS): New variable.
2200 * configure, Makefile.in, testsuite/Makefile.in: Rebuild.
2201
18e6b24e
ILT
22022008-03-27 Ian Lance Taylor <iant@google.com>
2203
49bdd526
ILT
2204 * common.cc (Sort_commons::operator): Correct sorting algorithm.
2205 * testsuite/common_test_1.c: New file.
2206 * testsuite/Makefile.am (check_PROGRAMS): Add common_test_1.
2207 (common_test_1_SOURCES): New variable.
2208 (common_test_1_DEPENDENCIES): New variable.
2209 (common_test_1_LDFLAGS): New variable.
2210
18e6b24e
ILT
2211 * symtab.cc (Symbol_table::add_from_object): Handle saw_undefined_
2212 and commons_ correctly when NAME/VERSION does not override
2213 NAME/NULL.
2214 * testsuite/ver_test_6.c: New file.
2215 * testsuite/Makefile.am (check_PROGRAMS): Add ver_test_6
2216 (ver_test_6_SOURCES, ver_test_6_DEPENDENCIES): New variables.
2217 (ver_test_6_LDFLAGS, ver_test_6_LDADD): New variables.
2218
04bf7072
ILT
22192008-03-26 Ian Lance Taylor <iant@google.com>
2220
5871526f
ILT
2221 * symtab.cc (Symbol_table::add_from_relobj): Don't set the version
2222 of an undefined symbol from a version script.
2223 * testsuite/Makefile.am (ver_test_5.so): New target.
2224 (ver_test_5.o): New target.
2225 (check_SCRIPTS): Add ver_test_5.sh.
2226 (check_DATA): Add ver_test_5.syms.
2227 (ver_test_5.syms): New target.
2228 * testsuite/ver_test_5.cc: New file.
2229 * testsuite/ver_test_5.script: New file.
2230 * testsuite/ver_test_5.sh: New file.
2231 * Makefile.in, testsuite/Makefile.in: Rebuild.
2232
04bf7072
ILT
2233 PR gold/5986
2234 Fix problems building gold with gcc 4.3.0.
2235 * gold.h (TEMPLATE_ATTRIBUTE_PRINTF_4): Define.
2236 (gold_error_at_location, gold_warning_at_location): Use it.
2237 * configure.ac: Check whether we can compile and use a template
2238 function with a printf attribute.
2239 * x86_64.cc (Target_x86_64::do_code_fill): Swap out a 32-bit value
2240 when jumping over bytes.
2241 * object.cc: Instantiate Object::read_section_data.
2242 * debug.h: Include <cstring>
2243 * dwarf_reader.cc: Include <algorithm>
2244 * main.cc: Include <cstring>.
2245 * options.cc: Include <cstring>.
2246 * output.cc: Include <cstring>.
2247 * script.cc: Include <cstring>.
2248 * script.h: Include <string>.
2249 * symtab.cc: Include <cstring> and <algorithm>.
2250 * target-select.cc: Include <cstring>.
2251 * version.cc: Include <string>.
2252 * testsuite/testmain.cc: Include <cstdlib>.
2253 * configure, config.in: Rebuild.
2254
874c5b28
ILT
22552008-03-25 Ian Lance Taylor <iant@google.com>
2256
819d6c3a
ILT
2257 * options.cc: Include "../bfd/bfdver.h".
2258 (options::help): Print bug reporting address.
2259
f4b2c6f5
ILT
2260 * version.cc (print_version): Adjust output for current value of
2261 BFD_VERSION_STRING.
2262
2263 * NEWS: New file.
2264
e96caa79
ILT
2265 * options.cc (options::help): Print list of supported targets.
2266 * target-select.h: Include <vector>.
2267 (class Target_selector): Make machine_, size_, and is_big_endian_
2268 fields const. Add bfd_name_ and instantiated_target_ fields.
2269 (Target_selector::Target_selector): Add bfd_name parameter.
2270 (Target_selector::recognize): Make non-virtual, call
2271 do_recognize.
2272 (Target_selector::recognize_by_name): Make non-virtual, call
2273 do_recognize_by_name.
2274 (Target_selector::supported_names): New function.
2275 (Target_selector::bfd_name): New function.
2276 (Target_selector::do_instantiate_target): New pure virtual
2277 function.
2278 (Target_selector::do_recognize): New virtual function.
2279 (Target_selector::do_recognize_by_name): New virtual function.
2280 (Target_selector::instantiate_target): New private function.
2281 (supported_target_names): Declare.
2282 * target-select.cc (Target_selector::Target_selector): Update for
2283 new parameter and fields.
2284 (select_target_by_name): Check that the name matches before
2285 calling recognize_by_name.
2286 (supported_target_names): New function.
2287 * i386.cc (class Target_selector_i386): Update Target_selector
2288 constructor call. Remove recognize and recognize_by_name. Add
2289 do_instantiate_target.
2290 * x86_64.cc (class Target_selector_x86_64): Likewise.
2291 * testsuite/testfile.cc (class Target_selector_test): Update for
2292 changes to Target_selector.
2293
874c5b28
ILT
2294 * README: Rewrite, with some notes on unsupported features.
2295
0a65a3a7
CC
22962008-03-24 Cary Coutant <ccoutant@google.com>
2297
2298 * i386.cc (Target_i386::Got_type): New enum declaration.
2299 (Target_i386::Scan::local): Updated callers of Output_data_got
2300 member functions.
2301 (Target_i386::Scan::global): Likewise.
2302 (Target_i386::Relocate::relocate): Likewise.
2303 (Target_i386::Relocate::relocate_tls): Likewise.
2304 * object.h (Got_offset_list): New class.
2305 (Sized_relobj::local_has_got_offset): Added got_type parameter.
2306 (Sized_relobj::local_got_offset): Likewise.
2307 (Sized_relobj::set_local_got_offset): Likewise.
2308 (Sized_relobj::local_has_tls_got_offset): Removed.
2309 (Sized_relobj::local_tls_got_offset): Removed.
2310 (Sized_relobj::set_local_tls_got_offset): Removed.
2311 (Sized_relobj::Local_got_offsets): Changed to store a list of offsets.
2312 * output.cc (Output_data_got::add_global): Added got_type parameter.
2313 (Output_data_got::add_global_with_rel): Likewise.
2314 (Output_data_got::add_global_with_rela): Likewise.
2315 (Output_data_got::add_global_pair_with_rel): New function.
2316 (Output_data_got::add_global_pair_with_rela): New function.
2317 (Output_data_got::add_local): Added got_type parameter.
2318 (Output_data_got::add_local_with_rel): Likewise.
2319 (Output_data_got::add_local_with_rela): Likewise.
2320 (Output_data_got::add_local_pair_with_rel): New function.
2321 (Output_data_got::add_local_pair_with_rela): New function.
2322 (Output_data_got::add_global_tls): Removed.
2323 (Output_data_got::add_global_tls_with_rel): Removed.
2324 (Output_data_got::add_global_tls_with_rela): Removed.
2325 (Output_data_got::add_local_tls): Removed.
2326 (Output_data_got::add_local_tls_with_rel): Removed.
2327 (Output_data_got::add_local_tls_with_rela): Removed.
2328 * output.h (Output_data_got::add_global): Added got_type parameter.
2329 (Output_data_got::add_global_with_rel): Likewise.
2330 (Output_data_got::add_global_with_rela): Likewise.
2331 (Output_data_got::add_global_pair_with_rel): New function.
2332 (Output_data_got::add_global_pair_with_rela): New function.
2333 (Output_data_got::add_local): Added got_type parameter.
2334 (Output_data_got::add_local_with_rel): Likewise.
2335 (Output_data_got::add_local_with_rela): Likewise.
2336 (Output_data_got::add_local_pair_with_rel): New function.
2337 (Output_data_got::add_local_pair_with_rela): New function.
2338 (Output_data_got::add_global_tls): Removed.
2339 (Output_data_got::add_global_tls_with_rel): Removed.
2340 (Output_data_got::add_global_tls_with_rela): Removed.
2341 (Output_data_got::add_local_tls): Removed.
2342 (Output_data_got::add_local_tls_with_rel): Removed.
2343 (Output_data_got::add_local_tls_with_rela): Removed.
2344 * resolve.cc (Symbol::override_base_with_special): Removed
2345 reference to has_got_offset_ field.
2346 * symtab.cc (Symbol::init_fields): Replaced initialization
2347 of got_offset_ with got_offsets_. Removed initialization
2348 of has_got_offset_
53fcba31 2349 * symtab.h (Symbol::has_got_offset): Aded got_type parameter.
0a65a3a7
CC
2350 (Symbol::got_offset): Likewise.
2351 (Symbol::set_got_offset): Likewise.
2352 (Symbol::has_tls_got_offset): Removed.
2353 (Symbol::tls_got_offset): Removed.
2354 (Symbol::set_tls_got_offset): Removed.
2355 (Symbol::got_offset_): Removed.
2356 (Symbol::tls_mod_got_offset_): Removed.
2357 (Symbol::tls_pair_got_offset_): Removed.
2358 (Symbol::got_offsets_): New field.
2359 (Symbol::has_got_offset): Removed.
2360 (Symbol::has_tls_mod_got_offset): Removed.
2361 (Symbol::has_tls_pair_got_offset): Removed.
2362 * x86_64.cc (Target_x86_64::Got_type): New enum declaration.
2363 (Target_x86_64::Scan::local): Updated callers of Output_data_got
2364 member functions.
2365 (Target_x86_64::Scan::global): Likewise.
2366 (Target_x86_64::Relocate::relocate): Likewise.
2367 (Target_x86_64::Relocate::relocate_tls): Likewise.
2368
bd52eafb
BE
23692008-03-25 Ben Elliston <bje@au.ibm.com>
2370
2371 * yyscript.y: Fix spelling error in comment.
2372
8b105e34
ILT
23732008-03-24 Ian Lance Taylor <iant@google.com>
2374
8ed814a9
ILT
2375 * options.h (class General_options): Define build_id option.
2376 * layout.h (class Layout): Declare write_build_id, create_note,
2377 create_build_id. Add build_id_note_ member.
2378 * layout.cc: Include <cerrno>, <fcntl.h>, <unistd.h>,
2379 "libiberty.h", "md5.h", "sha1.h".
2380 (Layout::Layout): Initialize eh_frame_data_,
2381 eh_frame_hdr_section_, and build_id_note_.
2382 (Layout::finalize): Call create_build_id.
2383 (Layout::create_note): New function, broken out of
2384 Layout::create_gold_note.
2385 (Layout::create_gold_note): Call create_note.
2386 (Layout::create_build_id): New function.
2387 (Layout::write_build_id): New function.
2388 (Close_task_runner::run): Call write_build_id.
2389
8b105e34
ILT
2390 * x86_64.cc: Correct license to GPLv3.
2391
086a1841
ILT
23922008-03-23 Ian Lance Taylor <iant@google.com>
2393
2394 * options.cc: Include "demangle.h".
2395 (parse_optional_string): New function.
2396 (parse_long_option): Handle takes_optional_argument.
2397 (parse_short_option): Update dash_z initializer. Handle
2398 takes_optional_argument.
2399 (General_options::General_options): Initialize do_demangle_.
2400 (General_options::finalize): Set do_demangle_. Handle demangling
2401 style.
2402 * options.h (parse_optional_string): Declare.
2403 (struct One_option): Add optional_arg field. Update constructor.
2404 Update call constructor calls. Add takes_optional_argument
2405 function.
2406 (DEFINE_var): Add optional_arg__ parameter. Change all callers.
2407 (DEFINE_optional_string): Define.
2408 (General_options::demangle): Change from DEFINE_bool to
2409 DEFINE_optional_string.
2410 (General_options::no_demangle): New function.
2411 (General_options::do_demangle): New function.
2412 (General_options::set_do_demangle): New function.
2413 (General_options::execstack_status_): Move definition to end of
2414 class definition.
2415 (General_options::static_): Likewise.
2416 (General_options::do_demangle_): New field.
2417 * object.cc (big_endian>::get_symbol_location_info): Call
2418 Options::do_demangle, not Options::demangle.
2419 * symtab.cc (demangle): Likewise.
2420
cbb93e63
ILT
24212008-03-22 Ian Lance Taylor <iant@google.com>
2422
2423 * gold.h: Include <cstddef> and <sys/types.h>
2424 * options.h: Include <cstring>.
2425
ec531623
ILT
24262008-03-21 Ian Lance Taylor <iant@google.com>
2427
2428 * Added source code to GNU binutils.
2429
This page took 0.177759 seconds and 4 git commands to generate.