Add support for generating and inserting build IDs into COFF binaries.
[platform/upstream/binutils.git] / ld / ChangeLog
1 2014-04-08  Jon TURNEY  <jon.turney@dronecode.org.uk>
2
3         * emultempl/elf32.em (id_note_section_size, read_hex, write_build_id):
4         Move code for parsing build-id option and calculating the build-id to...
5         * ldbuildid.c: New file.
6         * ldbuildid.h: New file.
7         * Makefile.am (CFILES, HFILES, OFILES, ld_new_SOURCES): Add new
8         files.
9         * Makefile.in: Regenerate.
10         * ld.texinfo: Update --build-id description to mention COFF
11         support.
12         * NEWS: Mention support for COFF build ids.
13         * emultempl/pe.em (gld${EMULATION_NAME}_handle_option):
14         (pecoff_checksum_contents, write_build_id, setup_build_id)
15         (gld_${EMULATION_NAME}_after_open):  Handle and implement
16         build-id option.
17         * emultempl/pep.em: Likewise.
18
19 2014-04-04  Cary Coutant  <ccoutant@google.com>
20
21         PR gold/16804
22         * ld.texinfo: Document optional comma following output section
23         command and overlay command.
24
25 2014-04-04  Alan Modra  <amodra@gmail.com>
26
27         * ldlang.c (lang_size_sections_1 <lang_input_section_enum>): Use
28         current "fill", not "output_section_statement->fill".
29
30 2014-03-31  Nick Clifton  <nickc@redhat.com>
31
32         PR ld/16744
33         * emultempl/elf32.em (_after_open): Create a .note.GNU-stack
34         section when performing a relocatable link with -z [no]execstack
35         specified.
36
37 2014-03-27  H.J. Lu  <hongjiu.lu@intel.com>
38
39         PR ld/16756
40         * ldmain.c (symbol_warning): New function.
41         (warning_callback): Use it.  Scan all input files for a reference
42         to SYMBOL.
43
44 2014-03-21  Christopher Faylor  <me.cygwin2013@cgf.cx>
45
46         * ld.texinfo: Document change in handling of --enable-auto-image-base.
47         * emultempl/pe.em (pe_auto_image_base): Set to default base.
48         (gld_${EMULATION_NAME}_list_options): Change usage message to reflect
49         optional --enable-auto-image-base argument.
50         (gld${EMULATION_NAME}_handle_option): Handle optional
51         --enable-auto-image-base argument.
52         (compute_dll_image_base): Eliminate constant.  Use pe_auto_image_base.
53
54 2014-03-19  Nick Clifton  <nickc@redhat.com>
55
56         * Makefile.am (default-manifest.o): Use WINDRES_FOR_TARGET.
57         * Makefile.in: Regenerate.
58         * emultempl/default-manifest.rc: Fix typo.
59         * scripttempl/pe.sc (R_RSRC): Fix default-manifest exclusion.
60         (.rsrc): Add SUBALIGN(4).  Remove SORT.
61         * scripttempl/pep.sc: Likewise.
62
63 2014-03-17  Christopher Faylor  <me.cygwin2014@cgf.cx>
64
65         * Makefile.am: Use host version of windres.
66         * Makefile.in: Regenerate.
67
68 2014-03-14  Romain Geissler  <romain.geissler@amadeus.com>
69             Alan Modra  <amodra@gmail.com>
70
71         * ldlang.h (full_name_provided): New input flag.
72         * ldlang.c (new_afile): Don't use lang_input_file_is_search_file_enum
73         for -l:namespec.  Instead use lang_input_file_is_l_enum with
74         full_name_provided flag.
75         * ldlfile.c (ldfile_open_file_search): Don't complete lib name if
76         full_name_provided flag is set.
77         * emultempl/elf32.em (gld${EMULATION_NAME}_open_dynamic_archive):
78         Handle full_name_provided libraries.  Tidy EXTRA_SHLIB_EXTENSION
79         support.  Set DT_NEEDED for -l:namespec as namespec.
80         * emultempl/aix.em (ppc_after_open_output): Handle full_name_provided.
81         * emultempl/linux.em (gld${EMULATION_NAME}_open_dynamic_archive):
82         Don't handle full_name_provided libraries.
83         * emultempl/pe.em (gld${EMULATION_NAME}_open_dynamic_archive): Ditto.
84         * emultempl/pep.em (gld${EMULATION_NAME}_open_dynamic_archive): Ditto.
85         * emultempl/vms.em (gld${EMULATION_NAME}_open_dynamic_archive): Ditto.
86
87 2014-03-12  Alan Modra  <amodra@gmail.com>
88
89         * Makefile.in: Regenerate.
90
91 2014-03-05  Alan Modra  <amodra@gmail.com>
92
93         Update copyright years.
94
95 2014-03-04  Nick Clifton  <nickc@redhat.com>
96
97         * Makefile.am (ALL_EMUL_EXTRA_BINARIES): Remove default-manifest.
98         * Makefile.in: Regenerate.
99
100 2014-02-27  Yuri Gribov  <y.gribov@samsung.com>
101
102         * emultempl/armelf.em (OPTION_LONG_PLT): Define.
103         (PARSE_AND_LIST_LONGOPTS): Add long-plt.
104         (PARSE_AND_LIST_OPTIONS): Likewise.
105         (PARSE_AND_LIST_ARGS_CASES): Handle long-plt.
106         * ld.texinfo: Document --long-plt.
107
108 2014-02-27  Alan Modra  <amodra@gmail.com>
109
110         * emulparams/elf32ppcvxworks.sh: Source plt_unwind.sh and
111         use ppc32elf.em.
112         * emultempl/ppc32elf.em (ppc_after_open): Don't compile for
113         vxworks.
114         (LDEMUL_AFTER_OPEN): Don't set for vxworks.
115         (PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Exclude
116         -secure-plt, -bss-plt and -sdata-got when vxworks.
117
118 2014-02-27  Nick Clifton  <nickc@redhat.com>
119
120         * configure.in (all_emul_extra_binaries): New variable.  Populated
121         by invoking configure.tgt.
122         (EMUL_EXTRA_BINARIES): New substitution.
123         * configure: Regenerate.
124         * configure.tgt (target_extra_binaries): New variable.  Set to
125         default-manifest.o for Cygwin and MinGW targets.
126         * Makefile.am (EMUL_EXTRA_BINARIES): New variable.  Initialised
127         by the configure script.
128         (ALL_EMUL_EXTRA_BINARIES): New variable.
129         (default-manifest.o): New rule to build the default manifest.
130         (ld_new_DEPENDENCIES): Add EMUL_EXTRA_BINARIES.
131         (install-data-local): Add EMUL_EXTRA_BINARIES.
132         * Makefile.in: Regenerate.
133         * ld.texinfo: Document default manifest support.
134         * emulparams/i386pe.sh (DEFAULT_MANIFEST): Define.
135         * emulparams/i386pep.sh (DEFAULT_MANIFEST): Define.
136         * emultempl/default-manifest.rc: New file.
137         * scripttempl/pe.sc (R_RSRC): Include DEFAULT_MANIFEST, if defined.
138         * scripttempl/pep.sc (R_RSRC): Likewise.
139
140 2014-02-26  Dan Mick  <dan.mick@inktank.com>
141
142         PR ld/16569
143         * ldcref.c (cref_sort_array): Compare unmangled names unless
144         demanglng has been requiested.
145         (output_one_cref): Output unmangled name unless demangling has
146         been requested.
147
148 2014-02-19  Igor Zamyatin  <igor.zamyatin@intel.com>
149             H.J. Lu  <hongjiu.lu@intel.com>
150
151         * emulparams/elf_x86_64.sh (TINY_READONLY_SECTION): New.
152
153 2014-02-19  Alan Modra  <amodra@gmail.com>
154
155         * emultempl/ppc64elf.em (params): Init new field.
156         (ppc_create_output_section_statements): Set params.save_restore_funcs
157         default.
158         (PARSE_AND_LIST_*): Add support for --save-restore-funcs and
159         --no-save-restore-funcs.
160
161 2014-02-17  Alan Modra  <amodra@gmail.com>
162
163         * emultemps/ppc64elf.em (params): New static struct replacing
164         various other static vars.  Adjust code throughout file.
165
166 2014-02-17  Alan Modra  <amodra@gmail.com>
167
168         * emultempl/ppc32elf.em (ppc_after_open_output): Really enable
169         ppc476 workaround for ld -r.
170
171 2014-02-12  Alan Modra  <amodra@gmail.com>
172
173         * emultempl/ppc32elf.em (pagesize): New static var.
174         (ppc_after_open_output): Set params.pagesize_p2 from pagesize.
175         (PARSE_AND_LIST_ARGS_CASES): Adjust to use pagesize.
176
177 2014-02-11  Andrew Pinski  <apinski@cavium.com>
178
179         * emulparams/aarch64linux32.sh (LIBPATH_SUFFIX): Change to ilp32.
180         (ELF_INTERPRETER_NAME): Define.
181         * emulparams/aarch64linux32b.sh (ELF_INTERPRETER_NAME): Define.
182
183 2014-02-10  Alan Modra  <amodra@gmail.com>
184
185         * po/ld.pot: Regenerate.
186
187 2014-02-03  Alan Modra  <amodra@gmail.com>
188
189         * emultempl/ppc32elf.em (no_tls_get_addr_opt, emit_stub_syms)
190         plt_style): Delete.  Adjust all refs to instead use..
191         (params): ..this.  New variable.
192         (ppc_after_open_output): New function.  Tweak params and pass to
193         ppc_elf_link_params.
194         (ppc_after_open): Adjust ppc_elf_select_plt_layout call.
195         (ppc_before_allocation): Adjust ppc_elf_tls_setup call.  Enable
196         relaxation for ppc476 workaround.
197         (PARSE_AND_LIST_*): Add --{no-,}ppc476-workaround support.
198         (LDEMUL_CREATE_OUTPUT_SECTION_STATEMENTS): Define.
199
200 2014-02-02  Sebastian Huber  <sebastian.huber@embedded-brains.de>
201
202         * ld/ld.texinfo: Change ALIGN_WITH_INPUT documentation.
203         * ld/ldlang.c (lang_size_sections_1): Add dotdelta
204         variable which reflects the VMA change due to alignment
205         requirements.  Use dotdelta do change the LMA if
206         ALIGN_WITH_INPUT is requested.
207
208 2014-02-01  Hans-Peter Nilsson  <hp@bitrange.com>
209
210         * emultempl/mmix-elfnmmo.em (mmix_after_allocation): Fix typo in
211         call to bfd_set_section_vma exposed by recent bfd_set_section_vma
212         change.
213
214 2014-01-30  Sandra Loosemore  <sandra@codesourcery.com>
215
216         * Makefile.am (enios2elf.c, enios2linux.c): Update dependencies.
217         * Makefile.in: Regenerated.
218         * emulparams/nios2elf.sh (EXTRA_EM_FILE): Set.
219         * emulparams/nios2linux.sh (EXTRA_EM_FILE): Set.
220         * emultempl/nios2elf.em: New file.
221         * gen-doc.texi (NIOSII): Set.
222         * ld.texinfo (NIOSII): Set.
223
224 2014-01-28  Nick Clifton  <nickc@redhat.com>
225
226         * Makefile.am: Remove obsolete MSP430 emulations.
227         * configure.tgt: Likewise.
228         * emulparams/msp430all.sh: Likewise.
229         * Makefile.in: Regenerate.
230
231 2014-01-24  H.J. Lu  <hongjiu.lu@intel.com>
232
233         PR ld/16498
234         * emultempl/elf32.em (gld${EMULATION_NAME}_place_orphan): Improve
235         orphaned TLS section handling.
236
237 2014-01-24  Alan Modra  <amodra@gmail.com>
238
239         * ldlang.c (lang_output_section_find_by_flags): Be careful to
240         test look->bfd_section->flags if available rather than
241         look->flags.  Separate SEC_THREAD_LOCAL handling from
242         SEC_READONLY loop, and rewrite.
243
244 2014-01-22  Alan Modra  <amodra@gmail.com>
245
246         * ldlang.c (asneeded_list_head, asneeded_list_tail): New vars.
247         (lang_init): Initialise them.
248         (lang_print_asneeded): New function.
249         (lang_process): Call lang_print_asneeded.
250         * ldlang.h (struct asneeded_minfo): New.
251         (asneeded_list_tail): Declare.
252         * ldmain.c (add_archive_element): Improve archive map heading.
253         * ldmisc.c (minfo): Stash --as-needed info.
254
255 2014-01-22  Alan Modra  <amodra@gmail.com>
256
257         * ld.h (struct map_symbol_def): Move to..
258         * ldlang.h: ..here.
259         * ldlang.c (print_assignment): Don't set expld.assign_name to dot.
260
261 2014-01-22  Alan Modra  <amodra@gmail.com>
262
263         * ld.texinfo (Output Section Discarding): Mention assigning to dot
264         as a way of keeping otherwise empty sections.
265         * ldexp.c (is_dot, is_value, is_sym_value, is_dot_ne_0,
266         is_dot_plus_0, is_align_conditional): New predicates.
267         (exp_fold_tree_1): Set SEC_KEEP when assigning to dot inside an
268         output section, except for some special cases.
269         * scripttempl/elfmicroblaze.sc: Use canonical form to align at
270         end of .heap and .stack.
271
272 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
273
274         * emulparams/aarch64linuxb.sh (ELF_INTERPRETER_NAME): Define.
275
276 2014-01-20  Marcus Shawcroft  <marcus.shawcroft@arm.com>
277
278         * emulparams/aarch64linux.sh (ELF_INTERPRETER_NAME): Define.
279
280 2014-01-20  Alan Modra  <amodra@gmail.com>
281
282         * ldlang.h (struct lang_definedness_hash_entry): Add by_object and
283         by_script.  Make iteration a single bit field.
284         (lang_track_definedness, lang_symbol_definition_iteration): Delete.
285         (lang_symbol_defined): Declare.
286         * ldlang.c (lang_statement_iteration): Expand comment a little.
287         (lang_init <lang_definedness_table>): Make it bigger.
288         (lang_track_definedness, lang_symbol_definition): Delete.
289         (lang_definedness_newfunc): Update.
290         (lang_symbol_defined): New function.
291         (lang_update_definedness): Create entries here.  Do track whether
292         script definition of symbol is valid, even when also defined in
293         an object file.
294         * ldexp.c (fold_name <DEFINED>): Update.
295         (fold_name <NAME>): Allow self-assignment for absolute symbols
296         defined in a linker script.
297
298 2014-01-20  Guy Martin <gmsoft@tuxicoman.be>
299             Alan Modra  <amodra@gmail.com>
300
301         * ldlang.h (lang_output_section_get): Define.
302         * ldlang.c (lang_output_section_get): Likewise.
303         (init_os): Set the output_section userdata to the output
304         section statement.
305         * emultempl/hppaelf.em: Use lang_output_section_get instead of
306         lang_output_section_find where applicable.
307         * emultempl/aarch64elf.em: Likewise.
308         * emultempl/aix.em: Likewise.
309         * emultempl/armelf.em: Likewise.
310         * emultempl/m68hc1xelf.em: Likewise.
311         * emultempl/metagelf.em: Likewise.
312         * emultempl/mipself.em: Likewise.
313         * emultempl/ppc64elf.em: Likewise.
314         * emultempl/spuelf.em: Likewise.
315
316 2014-01-17  Alan Modra  <amodra@gmail.com>
317
318         * genscripts.sh (COMPILE_IN): Don't set if already set.
319         * emulparams/nds32elf.sh: Don't clear EMULATION_LIBPATH, set
320         COMPILE_IN=no.
321         * emulparams/nds32elf16m.sh: Likewise.
322         * emulparams/nds32elf_linux.sh: Likewise.
323         * emultempl/aix.em: Test COMPILE_IN value is "yes".
324         * emultempl/armcoff.em: Likewise.
325         * emultempl/elf32.em: Likewise.
326         * emultempl/generic.em: Likewise.
327         * emultempl/gld960.em: Likewise.
328         * emultempl/gld960c.em: Likewise.
329         * emultempl/linux.em: Likewise.
330         * emultempl/lnk960.em: Likewise.
331         * emultempl/m68kcoff.em: Likewise.
332         * emultempl/sunos.em: Likewise.
333         * emultempl/ticoff.em: Likewise.
334
335 2014-01-16  H.J. Lu  <hongjiu.lu@intel.com>
336
337         PR ld/16456
338         * genscripts.sh: Don't search directory with LIBPATH_SUFFIX_SKIP
339         suffix.
340         * emulparams/elf32_x86_64.sh (LIBPATH_SUFFIX_SKIP): Set to 64
341         for elf32_x86_64 emulation.
342         * emulparams/elf_i386.sh (LIBPATH_SUFFIX_SKIP): Set to 64
343         for elf_i386 emulation.
344
345 2014-01-16  Alan Modra  <amodra@gmail.com>
346
347         * ld.h (fat_section_userdata_type, get_userdata): Move to..
348         * ldlang.h (input_section_userdata_type, get_userdata): ..here.
349         * ldlang.c (init_map_userdata): Delete.  Fold into..
350         (sort_def_symbol): ..here.  Don't attach input section userdata
351         to output sections or global bfd sections.
352         (lang_map): Don't pre-allocate input section userdata.
353         (init_os): Don't allocate userdata for output sections.
354         (print_all_symbols): Update.
355
356 2014-01-15  H.J. Lu  <hongjiu.lu@intel.com>
357
358         * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
359         Silence uninitialized warning on ehdr_start_save with older
360         GCC.
361
362 2014-01-15  Alan Modra  <amodra@gmail.com>
363
364         * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Define
365         __ehdr_start before size_dynamic_sections and restore afterwards.
366
367 2014-01-10  Alan Modra  <amodra@gmail.com>
368
369         PR ld/14207
370         PR ld/16322
371         PR binutils/16323
372         * ldlang.c (lang_size_sections): Remove unneeded RELRO base
373         adjust.  Tidy comments.
374         * ld.texinfo (DATA_SEGMENT_RELRO_END): Correct description.
375
376 2014-01-10  Hans-Peter Nilsson  <hp@axis.com>
377
378         * emulparams/crislinux.sh (COMMONPAGESIZE): Define.
379
380 2014-01-08  H.J. Lu  <hongjiu.lu@intel.com>
381
382         PR ld/14207
383         PR ld/16322
384         PR binutils/16323
385         * ldlang.c (lang_size_sections): Properly align RELRO base.
386
387 2014-01-08  H.J. Lu  <hongjiu.lu@intel.com>
388
389         * ldver.c (ldversion): Update copyright year to 2014.
390
391 For older changes see ChangeLog-2013
392 \f
393 Copyright (C) 2014 Free Software Foundation, Inc.
394
395 Copying and distribution of this file, with or without modification,
396 are permitted in any medium without royalty provided the copyright
397 notice and this notice are preserved.
398
399 Local Variables:
400 mode: change-log
401 left-margin: 8
402 fill-column: 74
403 version-control: never
404 End: