PR ld/12726
[external/binutils.git] / ld / ChangeLog
1 2011-05-04  Alan Modra  <amodra@gmail.com>
2
3         PR ld/12726
4         * ldexp.h (lang_phase_type): Add lang_assigning_phase_enum.
5         * ldexp.c (exp_fold_tree_1): Correct assign to dot comment.  Don't
6         assign to dot when lang_assigning_phase_enum.
7         * ldlang.h (lang_do_assignments): Update prototype.
8         * ldlang.c (lang_do_assignments): Add phase parameter.  Update all
9         callers.
10         * pe-dll.c (pe_dll_fill_sections, pe_exe_fill_sections): Update
11         lang_do_assignments calls.
12
13 2011-04-28  Daniel C. Klauer  <daniel.c.klauer@web.de>
14
15         PR ld/12614
16         * emultempl/pe.em (_after_open): Correctly check whether symbol is
17         in undef list.
18
19 2011-04-26  Kai Tietz  <ktietz@redhat.com>
20
21         * scripttempl/pe.sc: Handle .eh_frame($|.)* sections.
22         * scripttempl/pep.sc: Likewise.
23
24 2011-04-24  Alan Modra  <amodra@gmail.com>
25
26         PR ld/12365
27         PR ld/12696
28         * ldmain.c (notice): Delete "name" param, add "h".
29         * plugin.c (plugin_notice): Likewise.  Set non_ir_ref.  Handle
30         redefinitions of IR symbols in real BFDs.
31         (plugin_multiple_definition, plugin_multiple_common): Delete.
32         (non_ironly_hash, init_non_ironly_hash): Delete.
33         (is_visible_from_outside): Traverse entry_symbol chain.
34         (get_symbols): Use non_ir_ref flag rather than hash lookup.
35
36 2011-04-21  Tristan Gingold  <gingold@adacore.com>
37
38         * scripttempl/alphavms.sc: Add dwarf2 embedding marks.
39
40 2011-04-20  Tristan Gingold  <gingold@adacore.com>
41
42         * emultempl/aix.em (_add_options): Ignore -bbigtoc switch.
43
44 2011-04-20  Alan Modra  <amodra@gmail.com>
45
46         * ld.h (ld_config_type <hash_table_size>): Make it an unsigned long.
47
48 2011-04-20  Alan Modra  <amodra@gmail.com>
49
50         PR ld/12365
51         * ldfile.c (ldfile_try_open_bfd): Move code creating and switching
52         to plugin IR BFD..
53         * ldmain.c (add_archive_element): ..and similar code here..
54         * plugin.c (plugin_maybe_claim): ..to here.  New function.
55         (plugin_call_claim_file): Make static.
56         (asymbol_from_plugin_symbol): Set ELF st_shndx for common syms.
57         (plugin_multiple_common): New function.
58         (plugin_call_all_symbols_read): Hook in plugin_multiple_common.
59         * plugin.h (plugin_call_claim_file): Don't declare.
60         (plugin_maybe_claim): Declare.
61
62 2011-04-20  Alan Modra  <amodra@gmail.com>
63
64         PR ld/12365
65         * ldmain.c (multiple_definition): Take a bfd_link_hash_entry
66         pointer arg rather than "name", "obfd", "osec", "oval".  Add code
67         removed from linker.c.  Hack around xcofflink.c oddity in
68         passing NULL nbfd.
69         (multiple_common): Similarly.
70         * plugin.c (orig_allow_multiple_defs): Delete.
71         (plugin_call_all_symbols_read): Don't twiddle allow_multiple_definition.
72         (plugin_multiple_definition): Update.
73
74 2011-04-18  Kai Tietz  <ktietz@redhat.com>
75
76         * deffilep.y (def_aligncomm): Avoid duplets.
77
78         * deffilep.y (def_pool_str): New type.
79         (pool_strs): Local static.
80         (def_pool_alloc): Local function.
81         (def_pool_strdup): Likewise.
82         (def_pool_free): Likewise.
83         (opt_name): Replace xmalloc/xstrdup by
84         def_pool_alloc/def_pool_strdup.
85         (dot_name): Likewise.
86         (anylang_id): Likewise.
87         (def_lex): Likewise.
88         (def_file_parse): Call def_pool_free on
89         exit and cleanup directives elements.
90         (def_file_add_directive): Call def_pool_free.
91
92 2011-04-18  Paul Brook  <paul@codesourcery.com>
93
94         * emulparams/elf32_tic6x_le.sh: Define OTHER_READONLY_SECTIONS
95         for unwinding tables.
96
97 2011-04-18  Alan Modra  <amodra@gmail.com>
98
99         PR ld/12365
100         PR ld/12672
101         * ldfile.c (ldfile_try_open_bfd): Don't attempt any plugin action
102         when no_more_claiming.
103         * ldmain.c (add_archive_element): Likewise.
104         (multiple_definition): Remove plugin_multiple_definition call.
105         (notice): Remove plugin_notice call.
106         * ldlang.c (lang_list_insert_after, void lang_list_remove_tail): Move.
107         Delete prototype.
108         (plugin_insert): New static var.
109         (open_input_bfds): Only rescan libs after plugin insert point.
110         (lang_gc_sections): Omit plugin claimed files.
111         (lang_process): Set plugin_insert.  Only rescan when plugin adds
112         objects.
113         * plugin.h (no_more_claiming): Declare.
114         (plugin_notice, plugin_multiple_definition): Don't declare.
115         * plugin.c: Formatting.
116         (orig_notice_all, orig_allow_multiple_defs, orig_callbacks,
117         plugin_callbacks): New static vars.
118         (no_more_claiming): Make global.
119         (plugin_cached_allow_multiple_defs): Delete.
120         (plugin_get_ir_dummy_bfd): Set SEC_EXCLUDE on dummy .text section,
121         use newer bfd_make_section variant.  Make COMMON section too.
122         Error handling.  Correct setting of gp size.
123         (asymbol_from_plugin_symbol): Properly cast last arg of concat.
124         (message): Likewise for ACONCAT.
125         (asymbol_from_plugin_symbol): Use our COMMON section.
126         (get_symbols): When report_plugin_symbols, show visibility too.
127         (init_non_ironly_hash): Move.  Don't test non_ironly_hash.
128         (plugin_load_plugins): Save state of linker callbacks, set up to
129         call plugin_notice instead.  Call init_non_ironly_hash here.
130         (plugin_call_all_symbols_read): Set plugin_multiple_definition in
131         plugin callbacks.
132         (plugin_notice): Rewrite.
133         (plugin_multiple_definition): Make static, call original callback.
134
135 2011-04-15  Alan Modra  <amodra@gmail.com>
136
137         PR ld/12672
138         * ldlang.c (enum open_bfd_mode): New.
139         (open_input_bfds): Replace "force" param with "mode".  Reload
140         archives for rescan.  Update all callers.
141         (lang_process): Make another open_input_bfds pass for plugins.
142
143 2011-04-13  Kai Tietz  <ktietz@redhat.com>
144
145         PR binutils/12658
146         * deffile.h (def_file_add_export): Add is_dup argument.
147         (def_file_add_import): Likewise.
148         * deffilep.y (are_names_equal): New helper.
149         (cmp_export_elem): New helper.
150         (find_export_in_list): Add search routine for exports.
151         (def_file_add_export): Check for duplicates.
152         (cmp_import_elem): New helper.
153         (find_import_in_list): Add search routine for imports.
154         (def_file_add_import): Check for duplicates.
155         (def_exports): Handle duplicates.
156         (def_imports): Likewise.
157         * pe-dll.c (process_def_file_and_drectve): Likewise.
158         (pe_implied_import_dll): Likewise.
159
160 2011-04-11  Chris Quenelle  <chris.quenelle@oracle.com>
161
162         * scripttempl/elf.sc (.exception_ranges): Add new section.
163
164 2011-04-08  Hector Oron  <hector.oron@gmail.com>
165
166         PR ld/12643
167         * configure.tgt: Add support for arm-*-gnueabihf targets.
168
169 2011-04-07  Eric B. Weddington  <eric.weddington@atmel.com>
170
171         * Makefile.in: Regenerate. Remove stray eavrtiny10 rules.
172
173 2011-04-07  Joseph Myers  <joseph@codesourcery.com>
174
175         * configure.tgt: Remove stray ;;.
176
177 2011-04-06  Joseph Myers  <joseph@codesourcery.com>
178
179         * configure.tgt (thumb-*-linux-* | thumb-*-uclinux*,
180         strongarm-*-coff, strongarm-*-elf, strongarm-*-kaos*,
181         thumb-*-coff, thumb-*-elf, thumb-epoc-pe, thumb-*-pe,
182         xscale-*-coff, xscale-*-elf): Remove targets.
183
184 2011-03-31  H.J. Lu  <hongjiu.lu@intel.com>
185
186         * configure.tgt: Add elf_l1om to targ_extra_libpath for
187          x86_64-*-linux-*.
188
189         * emulparams/elf_l1om.sh: Remove duplicates.
190
191 2011-03-31  Bernd Schmidt  <bernds@codesourcery.com>
192
193         * emulparams/elf32_tic6x_le.sh (BIG_OUTPUT_FORMAT, EXTRA_EM_FILE,
194         GENERATE_SHLIB_SCRIPT): New defines.
195         (TEXT_START_ADDR): Define differently depending on target.
196         (.got): Redefine to include "*(.dsbt)".
197         (SDATA_START_SYMBOLS): Remove, replace with
198         (OTHER_GOT_SYMBOLS): New.
199         (OTHER_BSS_SECTIONS): Define only for ELF targets.
200         * emultempl/tic6xdsbt.em: New file.
201         * gen-doc.texi: Set C6X.
202         * ld.texinfo: Likewise.
203         (Options specific to C6X uClinux targets): New section.
204
205 2011-03-29  Alan Modra  <amodra@gmail.com>
206
207         PR ld/12613
208         * ldlex.l (lex_warn_invalid): Don't assume char is unsigned.
209
210 2011-03-26  John Marino  <binutils@marino.st>
211
212         * configure.host: Update *-*-dragonfly* host entry.
213         * configure.tgt: Update *-*-dragonfly* target entry.
214         * ldlex.l: Prevent redefinition of YY_NO_UNPUT.
215
216 2011-03-28  Joseph Myers  <joseph@codesourcery.com>
217
218         * configure.in: Check for windows.h, not Windows.h.
219         * configure: Regenerate.
220         * plugin.c: Include windows.h, not Windows.h.
221
222 2011-03-25  Eric B. Weddington  <eric.weddington@atmel.com>
223
224         * Makefile.in: Regenerate.
225
226 2011-03-23  Joseph Myers  <joseph@codesourcery.com>
227
228         * lexsup.c (parse_args): Only set report_plugin_symbols if plugins
229         are enabled.  Mark level as possibly unused.
230
231 2011-03-22  Eric B. Weddington  <eric.weddington@atmel.com>
232
233         * Makefile.am (ALL_EMULATION_SOURCES): Add AVR XMEGA architectures.
234         (eavrxmega?.c): Likewise.
235         * configure.tgt (targ_extra_emuls): Likewise.
236         * emulparams/avrxmega1.sh: New file.
237         * emulparams/avrxmega2.sh: Likewise.
238         * emulparams/avrxmega3.sh: Likewise.
239         * emulparams/avrxmega4.sh: Likewise.
240         * emulparams/avrxmega5.sh: Likewise.
241         * emulparams/avrxmega6.sh: Likewise.
242         * emulparams/avrxmega7.sh: Likewise.
243         * emultempl/avrelf.em (avr_elf_${EMULATION_NAME}_before_allocation):
244         Add avrxmega6, avrxmega7 to list of architectures for no stubs.
245
246 2011-03-21  Eric B. Weddington  <eric.weddington@atmel.com>
247
248         * scripttempl/avr.sc: Add fuse, lock, and signature memory regions.
249
250 2011-03-14  Richard Sandiford  <richard.sandiford@linaro.org>
251
252         * emultempl/armelf.em (gld${EMULATION_NAME}_finish): Check
253         eh->target_internal.
254
255 2011-03-14  Richard Sandiford  <richard.sandiford@linaro.org>
256
257         * emultempl/armelf.em (arm_elf_before_allocation): Check dynobj
258         instead of dynamic_sections_created.
259
260 2011-03-10  Dave Korn  <dave.korn.cygwin@gmail.com>
261
262         * plugin.c (get_symbols): Use wrapped lookup for undefined symbols.
263
264 2011-03-10  Dave Korn  <dave.korn.cygwin@gmail.com>
265
266         * ldlang.c (lang_check): Don't run checks on dummy IR BFDs.
267
268 2011-03-10  Dave Korn  <dave.korn.cygwin@gmail.com>
269
270         * ldlang.h (lang_input_statement_type): Add new 'claim_archive' flag,
271         wrapping both it and 'claim' flag in #ifdef ENABLE_PLUGINS.
272         * ldmain.c (add_archive_element): Set it if the member is claimed.
273         * ldlang.c (new_afile): Initialise claim_archive and claimed members.
274         (find_replacements_insert_point): New helper function.
275         (lang_process): After adding and opening replacement files passed
276         from plugin, splice them into correct place in statement list and
277         file chains to preserve critical link order.
278         (lang_list_insert_after): New helper function.
279         (lang_list_remove_tail): Likewise.
280
281 2011-03-10  Dave Korn  <dave.korn.cygwin@gmail.com>
282
283         * plugin.c (IRONLY_SUFFIX): Revise to nicely human-readable form.
284         (IRONLY_SUFFIX_LEN): Delete.
285         (plugin_get_ir_dummy_bfd): Don't append IRONLY_SUFFIX.
286         (is_ir_dummy_bfd): Don't look for suffix; check claimed flag of
287         enclosing lang input statement instead.
288
289 2011-03-10  Dave Korn  <dave.korn.cygwin@gmail.com>
290
291         * emultempl/pe.em (gld_${EMULATION_NAME}_place_orphan): Preserve
292         alignment of input sections when creating orphan output sections
293         during relocatable link.
294         * emultempl/pep.em (gld_${EMULATION_NAME}_place_orphan): Likewise.
295
296 2011-03-04  H.J. Lu  <hongjiu.lu@intel.com>
297
298         * ld.texinfo: Document --verbose[=NUMBER].
299
300         * lexsup.c (ld_options): Update --verbose.
301         (parse_args): Set report_plugin_symbols.
302
303         * plugin.c (report_plugin_symbols): New.
304         (get_symbols): Report plugin symbols if report_plugin_symbols
305         is TRUE.
306
307         * plugin.h (report_plugin_symbols): New.
308
309 2011-03-01  H.J. Lu  <hongjiu.lu@intel.com>
310
311         PR ld/12529
312         * testplug.c: Don't include "filenames.h".
313         (onclaim_file): Don't use filename_cmp.
314
315 2011-02-28  Kai Tietz  <kai.tietz@onevision.com>
316
317         * emultempl/beos.em (sort_by_file_name): Use filename_(n)cmp.
318         * emultempl/elf32.em (gld${EMULATION_NAME}_vercheck):
319         Likewise.
320         (gld${EMULATION_NAME}_stat_needed): Likewise.
321         (gld${EMULATION_NAME}_check_needed): Likewise.
322         * emultempl/pe.em (gld_${EMULATION_NAME}_after_open): Likewise.
323         (gld_${EMULATION_NAME}_unrecognized_file): Likewise.
324         * emultempl/pep.em (gld_${EMULATION_NAME}_after_open): Likewise.
325         (gld_${EMULATION_NAME}_unrecognized_file): Likewise.
326         * ldfile.c (ldfile_open_file): Likewise.
327         * ldlang.c (wild_sort): Likewise.
328         (lookup_name): Likewise.
329         (check_excluded_libs): Likewise.
330         * ldmisc.c (vfinfo): Likewise.
331         * pe-dll.c (libnamencmp): Likewise.
332         (auto_export): Likewise.
333         (pe_dll_generate_implib): Likewise.
334         * testplug.c (onclaim_file): Likewise.
335
336 2011-02-24  H.J. Lu  <hongjiu.lu@intel.com>
337
338         PR ld/12507
339         * plugin.c (get_symbols): Don't check entry symbol here.
340         (init_non_ironly_hash): Add entry_symbol chain into
341         non_ironly_hash.
342
343 2011-02-24  H.J. Lu  <hongjiu.lu@intel.com>
344
345         PR ld/12507
346         * plugin.c (get_symbols): Don't mark entry symbol IR only.
347
348 2011-02-18  John David Anglin  <dave.anglin@nrc-cnnrc.gc.ca>
349
350         PR ld/12376
351         emulparams/hppalinux.sh (DATA_ADDR): Define.
352         (SHLIB_DATA_ADDR): Likewise.
353
354 2011-02-16  H.J. Lu  <hongjiu.lu@intel.com>
355
356         * emulparams/elf32_x86_64.sh (LIBPATH_SUFFIX): Changed to
357         x32 for x32.
358
359 2011-02-15  Kai Tietz  <kai.tietz@onevision.com>
360
361         * pe-dll.c (process_def_file_and_drectve): Don't strip
362         leading underscore from symbol by calling bfd_find_version_for_sym.
363
364 2011-02-14  Mike Frysinger  <vapier@gentoo.org>
365
366         * ldlang.c (lang_vers_match): Declare a new c_sym, assign it to
367         the bfd_demangle of sym, change users of sym to c_sym when not
368         already demangling, and free when done.  Change callers of
369         cplus_demangle to bfd_demangle.
370
371 2011-02-14  Alan Modra  <amodra@gmail.com>
372
373         * plugin.c (plugin_get_ir_dummy_bfd): Set SEC_EXCLUDE on dummy
374         .text section, use newer bfd_make_section variant.  Error handling.
375         Correct setting of gp size.
376         (asymbol_from_plugin_symbol): Properly cast last arg of concat.
377         (message): Likewise for ACONCAT.
378         (get_symbols): Formatting.
379
380 2011-02-14  Alan Modra  <amodra@gmail.com>
381
382         * ldmain.c (remove_output): Rename to..
383         (ld_cleanup): ..this. Call bfd_cache_close_all and plugin_call_cleanup.
384         (main): Adjust.
385         * plugin.c (plugin_call_cleanup): Make global.
386         (plugin_load_plugins): Don't register plugin_call_cleanup with xatexit.
387         * plugin.h (plugin_call_cleanup): Declare.
388
389 2011-02-13  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
390
391         * configure: Regenerate.
392
393 2011-02-10  Alan Modra  <amodra@gmail.com>
394
395         * scripttempl/armbpabi.sc: Revert 2010-11-02  H.J. Lu.
396         * scripttempl/avr.sc: Likewise.
397         * scripttempl/elf32cr16.sc: Likewise.
398         * scripttempl/elf32crx.sc: Likewise.
399         * scripttempl/elf32msp430.sc: Likewise.
400         * scripttempl/elf32msp430_3.sc: Likewise.
401         * scripttempl/elf32sh-symbian.sc: Likewise.
402         * scripttempl/elf64hppa.sc: Likewise.
403         * scripttempl/elf_chaos.sc: Likewise.
404         * scripttempl/elfd10v.sc: Likewise.
405         * scripttempl/elfd30v.sc: Likewise.
406         * scripttempl/elfi370.sc: Likewise.
407         * scripttempl/elfm68hc11.sc: Likewise.
408         * scripttempl/elfm68hc12.sc: Likewise.
409         * scripttempl/elfxtensa.sc: Likewise.
410         * scripttempl/ip2k.sc: Likewise.
411         * scripttempl/iq2000.sc: Likewise.
412         * scripttempl/mep.sc: Likewise.
413         * scripttempl/mmo.sc: Likewise.
414         * scripttempl/v850.sc: Likewise.
415         * scripttempl/xstormy16.sc: Likewise.
416         * scripttempl/elf.sc: Revert 2010-10-29  H.J. Lu.
417
418 2011-01-22  H.J. Lu  <hongjiu.lu@intel.com>
419
420         * Makefile.am (CXX): Removed.
421
422         * configure.in: Add AC_PROG_CXX.
423
424         * Makefile.in: Regenerated.
425         * configure: Likewise.
426
427 2011-01-22  Richard Sandiford  <rdsandiford@googlemail.com>
428
429         * plugin.c (plugin_get_ir_dummy_bfd): Copy across the bfd's
430         private data and GP size.
431
432 2011-01-21  Alan Modra  <amodra@gmail.com>
433
434         * ldexp.c (fold_binary): Set result section for arithmetic and
435         logical operations to NULL when both operands are in same section.
436         * ld.texinfo (Expression Section): Describe this.
437
438 2011-01-14  Alan Modra  <amodra@gmail.com>
439
440         * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Don't
441         attempt to put non-alloc orphans before debug sections, just place
442         them after .comment.
443
444 2011-01-14  J. Park  <grassman@gmail.com>
445
446         PR ld/12339
447         * ldlang.c (sort_def_symbol): Handle bfd_link_hash_warning symbols.
448
449 2011-01-14  Alan Modra  <amodra@gmail.com>
450
451         * Makefile.am: Sort emulation rules.
452         (eelf32am33lin.c): Delete.
453         (ALL_EMULATION_SOURCES): Sort, add missing entries.
454         (ALL_64_EMULATION_SOURCES): Likewise.
455         * Makefile.in: Regenerate.
456
457 2011-01-13  Alan Modra  <amodra@gmail.com>
458
459         PR ld/12356
460         * ld.texinfo (Miscellaneous Commands): Describe LD_FEATURE.
461         (Expression Section): Update.
462         * ld.h (ld_config_type): Add sane_expr.
463         * ldgram.y (ifile_p1): Add LD_FEATURE.
464         * ldlex.l (LD_FEATYRE): New.
465         * ldemul.c (after_parse_default): Delete code handling ld_compatibility.
466         * ldexp.h (struct ldexp_control): Delete uses_defined.
467         * ldexp.c: Remove all uses of uses_defined.
468         (fold_name): Test config.sane_expr rather than ld_compatibility.
469         (exp_fold_tree_1): Likewise.  Adjust handling of assignments
470         during first phase.
471         * ldlang.h (ld_compatibility): Delete.
472         (lang_ld_feature): Declare.
473         * ldlang.c (ld_compatibility): Delete.
474         (open_input_bfds): Only handle assignments for --defsym.
475         (lang_ld_feature): New function.
476
477         PR ld/12356
478         * ldexp.h (exp_assop): Delete.
479         (exp_assign, exp_defsym): Declare.
480         * ldexp.c (exp_assop): Make static, handle all assignment variations.
481         (exp_assign, exp_defsym): New functions.
482         (exp_provide): Use exp_assop.
483         * ldgram.y (defsym_expr): Use exp_defsym.
484         * ldctor.c, * ldgram.y, * ldlang.c, * mri.c, * emultempl/beos.em,
485         * emultempl/pe.em, * emultempl/pep.em, * emultempl/spuelf.em,
486         * emultempl/xtensaelf.em: Update exp_assop -> exp_assign.
487
488 2011-01-12  Alan Modra  <amodra@gmail.com>
489
490         PR ld/12380
491         * ldexp.h (enum phase_enum): Comment.  Add exp_dataseg_done.
492         * ldexp.c (fold_unary <DATA_SEGMENT_END>): Rearrange code.  Test
493         for exp_dataseg_done rather than expld.phase == lang_final_phase_enum
494         to detect when we've finished sizing sections.
495         (fold_binary <DATA_SEGMENT_ALIGN>): Likewise.
496         (fold_binary <DATA_SEGMENT_RELRO_END>): Likewise.  Also test
497         that we are not inside an output section statement.
498         * ldlang.c (lang_size_sections): Set exp_dataseg_done on exit if
499         not exp_dataseg_relro_adjust or exp_dataseg_adjust.  Don't set
500         lang_final_phase_enum here.
501         (lang_process): Set lang_final_phase_enum here.
502
503 2011-01-10  Nick Clifton  <nickc@redhat.com>
504
505         * po/da.po: Updated Danish translation.
506
507 2011-01-10  H.J. Lu  <hongjiu.lu@intel.com>
508
509         * ldlang.c (startup_file): Removed.
510         (lang_startup): Updated.
511
512 2011-01-05  H.J. Lu  <hongjiu.lu@intel.com>
513
514         PR ld/12364
515         * plugin.c (get_symbols): Check if owner_sec->owner is NULL
516         before accessing its flags field.
517
518 2011-01-01  H.J. Lu  <hongjiu.lu@intel.com>
519
520         * ldver.c (ldversion): Update copyright to 2011.
521
522 For older changes see ChangeLog-2010
523 \f
524 Local Variables:
525 mode: change-log
526 left-margin: 8
527 fill-column: 74
528 version-control: never
529 End: