Fix debug section compression so that it is only performed if it would make the secti...
[external/binutils.git] / binutils / ChangeLog
1 2015-03-18  Jon Turney  <jon.turney@dronecode.org.uk>
2             Nick Clifton  <nickc@redhat.com>
3
4         PR binutils/18087
5         * doc/binutils.texi: Note that when objcopy compresses debug
6         sections the compression is only performed if it makes the section
7         smaller.
8
9 2015-03-10  H.J. Lu  <hongjiu.lu@intel.com>
10
11         PR binutils/18101
12         * readelf.c (parse_args): Move nothing to do warning to ...
13         (main): Here.
14
15 2015-03-10  Nick Clifton  <nickc@redhat.com>
16
17         PR binutils/18101
18         * readelf.c (parse_args): Enhance check for nothing to do by
19         accounting for the --wide option.
20
21         PR binutils/17636
22         * objcopy.c (copy_object): Avoid calling fatal as that does not
23         allow the parent to clean up temporary files.
24
25 2015-03-10  Yuri Gribov  <y.gribov@samsung.arm>
26
27         PR ld/16572
28         * readelf.c: Remove support for ELF_ARM_HASENTRY.
29
30 2015-03-05  Nick Clifton  <nickc@redhat.com>
31
32         PR binutils/18064
33         * doc/binutils.texi (objcopy): Extend description of
34         --add-gnu-debuglink option to explain that the separate debug info
35         file must exist.  Add a description of what to do if the debug
36         info file is built in one place but then installed into a separate
37         location.
38
39 2015-03-05  Nick Clifton  <nickc@redhat.com>
40
41         PR binutils/17994
42         * dlltool.c (temp_file_to_remove): New local array.
43         (unlink_temp_files): New functions - unlinks any file in the
44         temp_file_to_remove array, unless dotdeltemps is set.
45         (gen_exp_file): Add temp files to array.
46         (make_head): Likewise.
47         (make_delay_head): Likewise.
48         (make_tail): Likewise.
49         (gen_lib_file): Call unlink_temp_files.
50
51 2015-02-28  Andrew Burgess  <andrew.burgess@embecosm.com>
52
53         * objcopy.c (update_sections): New list.
54         (command_line_switch): Add OPTION_UPDATE_SECTION.
55         (copy_options): Add update-section.
56         (copy_usage): Document new option.
57         (is_update_section): New function.
58         (is_strip_section_1): Add check for attempt to update and remove
59         the same section.
60         (copy_object): Update size and content of requested sections.
61         (skip_section): Don't copy for updated sections.
62         (copy_main): Handle --update-section.
63         * doc/binutils.texi (objcopy): Add description of --update-section
64         option.
65         * NEWS: Mention --update-section option.
66
67 2015-02-26  Nick Clifton  <nickc@redhat.com>
68
69         PR binutils/17512
70         * coffgrok.c (do_type): Check for an out of range tag index.
71         Check for integer overflow computing array dimension.
72         (do_define): Likewise.
73
74 2015-02-26  Andrew Burgess  <andrew.burgess@embecosm.com>
75
76         * objcopy.c (init_section_add): Rename optarg to arg in order to
77         avoid shadowing a global variable.
78
79 2015-02-26  Nick Clifton  <nickc@redhat.com>
80
81         PR binutils/17512
82         * resrc.c (write_rc_messagetable): Tighten check for invalid
83         message lengths.
84
85         * dwarf.c (display_debug_loc): Pacify the undefined behaviour
86         sanitizer by simplifying address difference calculation.
87         (struct Frame_Chunk): Change type of cfa_offset to dwarf_vma in
88         order to avoid arithmetic overflows.
89         (frame_display_row): Cast cfa_offset before printing it.
90         (display_debug_frames): Likewise.
91         Check for an unexpected segment size.
92         Chnage type of 'l' local to dwarf_vma and cast it back to an int
93         when printing.
94         (process_cu_tu_index): Tighten check for an invalid ncols value.
95         * readelf.c (process_corefile_note_segment): Check for
96         inote.descdata extending beyond the end of the section.
97         (process_v850_notes): Likewise.
98
99 2015-02-26  Terry Guo  <terry.guo@arm.com>
100
101         * readelf.c (arm_attr_tag_ABI_HardFP_use): Update how we
102         display it.
103
104 2015-02-25  Andrew Burgess  <andrew.burgess@embecosm.com>
105
106         * objcopy.c (init_section_add): New function.
107         (section_add_load_file): New function.
108         (copy_main): Make use of new functions.
109
110 2015-02-25  Andrew Burgess  <andrew.burgess@embecosm.com>
111
112         * od-elf32_avr.c: Add elf32-avr.h include.
113         (OPT_AVRPROP): Define.
114         (options[]): Add 'avr-prop' entry.
115         (elf32_avr_help): Add avr-prop help text.
116         (elf32_avr_dump_avr_prop): New function.
117         (elf32_avr_dump): Add check for avr-prop.
118
119 2015-02-24  Nick Clifton  <nickc@redhat.com>
120
121         * readelf.c (get_machine_flags): Remove deprecated V850 machine
122         flags.
123         (get_v850_section_type_name): New function.  Handles V850 special
124         sections.
125         (get_section_type_name): Add support for V850.
126         (get_v850_elf_note_type): New function.  Returns the name of a
127         V850 note.
128         (print_v850_note): New function.  Prints a V850 note.
129         (process_v850_notes): New function.  Prints V850 notes.
130         (process_note_sections): Add support for V850.
131
132 2015-02-24  Mike Frysinger  <vapier@gentoo.org>
133
134         PR binutils/17531
135         * readelf.c (process_symbol_table): Declare chained.  Increment it
136         in every loop.  Abort when chained is larger than nchains.  Move
137         error check outside of chain loop.
138
139 2015-02-24  Dmitry Antipov  <dantipov@nvidia.com>
140
141         * readelf.c (find_symbol_for_address): Use a binary search to
142         speed up symbol location.  Skip check for function symbol type.
143         (*_unw_aux_info): Add funtab and nfuns fields contains a sorted
144         list of function symbols.
145         (dump_ia64_unwind): Initialise the funtab and nfuns fields and
146         pass them to find_symbol_for_address.
147         (dump_hppa_unwind): Likewise.
148         (arm_print_vma_and_name): Pass funtab to find_symbol_for_address.
149         (dump_arm_unwind): Initialise the funtab and nfuns fields.
150
151 2015-02-24  Nick Clifton  <nickc@redhat.com>
152
153         * objdump.c (dump_section): Extend the warning message displayed
154         when a section cannot be loaded.
155
156 2015-02-21  Mike Frysinger  <vapier@gentoo.org>
157
158         * readelf.c (process_program_headers): Add newline to warning
159         message.
160
161 2015-02-20  Andreas Arnez  <arnez@linux.vnet.ibm.com>
162
163         * readelf.c (get_note_type): Add NT_S390_VXRS_LOW and
164         NT_S390_VXRS_HIGH.
165
166 2015-02-13  Nick Clifton  <nickc@redhat.com>
167
168         PR binutils/17512
169         * dwarf.c (read_leb128): Fix test for shift becoming too large.
170
171         * coffgrok.c (do_define): Add check for type size overflow.
172         * srconv.c (walk_tree_sfile): Check that enough sections are
173         available before parsing.
174         (prescan): Likewise.
175
176         PR binutils/17531
177         * dwarf.c (display_debug_aranges): Add check for an excessive
178         ar_length value.
179         (process_cu_tu_index): Check for a row * columns sum being too
180         large.
181
182 2015-02-13  Alan Modra  <amodra@gmail.com>
183
184         * dwarf.c: Formatting, whitespace.
185         (process_debug_info): Style fix.
186
187 2015-02-11  Nick Clifton  <nickc@redhat.com>
188
189         * rl78-decode.opc: Add 'a' attribute to instructions that support
190         [HL+0] addressing.
191         * rl78-decode.c: Regenerate.
192         * rl78-dis.c (print_insn_rl78): Display the offset in [HL+0]
193         addresses.
194
195 2015-02-11  Nick Clifton  <nickc@redhat.com>
196
197         PR binutils/17531
198         * dwarf.c (display_debug_pubnames_worker): Work around compiler
199         bug checking address ranges.
200         (display_debug_frames): Likewise.
201         (display_gdb_index): Likewise.
202         (process_cu_tu_index): Add range check on the ncols value.
203
204 2015-02-10  Nick Clifton  <nickc@redhat.com>
205
206         PR binutils/17512
207         * dwarf.c (eh_addr_size): Use an unsigned type.
208         (size_of_encoded_value): Return an unsigned type.
209         (read_leb128): Break if the shift becomes too big.
210         (process_extended_line_op): Do not read the address if the length
211         is too long.
212         (read_cie): Warn and fail if the pointer size or segment size are
213         too big.
214         * dwarf.h (DWARF2_External_LineInfo): Delete unused and incorrect
215         structure definition.
216         (DWARF2_External_PubNames): Likewise.
217         (DWARF2_External_CompUnit): Likewise.
218         (DWARF2_External_ARange): Likewise.
219         (DWARF2_Internal_LineInfo): Use dwarf_vma type for
220         li_prologue_length.
221         (eh_addr_size): Update prototype.
222
223         PR binutils/17531
224         * dwarf.c (process_debug_info): Zero the debug information array
225         since correct initialisation cannot be relied upon.
226         (process_cu_tu_index): Improve range checks.
227
228         PR binutils/17531
229         * dwarf.c (display_debug_pubnames_worker): Use dwarf_vma type for
230         offset.
231         * readelf.c (dump_relocations): Handle printing offsets which are
232         MIN_INT.
233         (process_corefile_note_segment): Add range check of the namesz
234         field.
235
236 2015-02-09  Mark Wielaard  <mjw@redhat.com>
237
238         * dwarf.c (read_and_display_attr_value): Handle DW_LANG_Fortran03
239         and DW_LANG_Fortran08.
240
241 2015-02-06  Nick Clifton  <nickc@redhat.com>
242
243         PR binutils/17512
244         * dwarf.c (display_debug_frames): Fix range checks to work on
245         32-bit binaries complied on a 64-bit host.
246
247         PR binutils/17531
248         * dwarf.c (xcmalloc): Fail if the arguments are too big.
249         (xcrealloc): Likewise.
250         (xcalloc2): Likewise.
251         * readelf.c (process_mips_specific): Fail if an option has an
252         invalid size.
253
254 2015-02-05  Alan Modra  <amodra@gmail.com>
255
256         PR binutils/17926
257         * dwarf.c (dwarf_select_sections_by_letters): Don't refer to optarg.
258
259 2015-02-04  Nick Clifton  <nickc@redhat.com>
260
261         PR binutils/17531
262         * dwarf.c (read_and_display_attr_value): Test for a block length
263         being so long that it wraps around to before the start of the block.
264         (process_debug_info): Test for section_begin wrapping around to
265         before the start of the section.
266         (display_gdb_index): Test for num_cus being so large that the end
267         address wraps around to before the start of the section.
268         (process_cu_tu_index): Test for j being so large that the section
269         index pool wraps around to before the start of the section.
270
271 2015-02-03  Nick Clifton  <nickc@redhat.com>
272
273         PR binutils/17531
274         * dwarf.c (process_debug_info): Add range check.
275         (display_debug_pubnames_worker): Likewise.
276         (display_gdb_index): Fix range check.
277         (process_cu_tu_index): Add range check.
278         * readelf.c (get_data): Change parameter types from size_t to
279         bfd_size_type.  Add checks for loss of accuracy when casting from
280         bfd_size_type to size_t.
281         (get_dynamic_data): Likewise.
282         (process_section_groups): Limit number of error messages.
283
284 2015-02-03  Nick Clifton  <nickc@redhat.com>
285
286         PR binutils/17512
287         * objdump.c (display_any_bfd): Fail if archives nest too deeply.
288
289 2015-01-28  James Bowman  <james.bowman@ftdichip.com>
290
291         * readelf.c: Add FT32 support.
292
293 2015-01-27  Nick Clifton  <nickc@redhat.com>
294
295         PR binutils/17512
296         * dlltool.c (identify_search_archive): If the last archive was the
297         same as the current archive, terminate the loop.
298
299         * addr2line.c (slurp_symtab): If the symcount is zero, free the
300         symbol table pointer.
301
302         * rcparse.y: Add checks to avoid integer divide by zero.
303         * rescoff.c (read_coff_rsrc): Add check on the size of the
304         resource section.
305         (read_coff_res_dir): Add check on the nesting level.
306         Check for resource names overrunning the buffer.
307         * resrc.c (write_rc_messagetable): Update formatting.
308         Add check of 'elen' being zero.
309
310 2015-01-23  Nick Clifton  <nickc@redhat.com>
311
312         * nlmconv.c (powerpc_mangle_relocs): Fix build errors introduced
313         by recent delta, when compiling on for a 32-bit host.
314
315 2015-01-21  Nick Clifton  <nickc@redhat.com>
316
317         PR binutils/17512
318         * addr2line.c (main): Call bfd_set_error_program_name.
319         * ar.c (main): Likewise.
320         * coffdump.c (main): Likewise.
321         * cxxfilt.c (main): Likewise.
322         * dlltool.c (main): Likewise.
323         * nlmconv.c (main): Likewise.
324         * nm.c (main): Likewise.
325         * objdump.c (main): Likewise.
326         * size.c (main): Likewise.
327         * srconv.c (main): Likewise.
328         * strings.c (main): Likewise.
329         * sysdump.c (main): Likewise.
330         * windmc.c (main): Likewise.
331         * windres.c (main): Likewise.
332         * objcopy.c (main): Likewise.
333         (copy_relocations_in_section): Check for relocs without associated
334         symbol pointers.
335
336 2015-01-21  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
337
338         * MAINTAINERS: Add self to ARM maintainers list.
339
340 2015-01-21  Nick Clifton  <nickc@redhat.com>
341
342         PR binutils/17512
343         * coffgrok.c (do_type): Check that computed ref exists.
344         (doit): Add range checks when computing section for scope.
345
346 2015-01-12  H.J. Lu  <hongjiu.lu@intel.com>
347
348         * dwarf.c (process_debug_info): Properly check abbrev size.
349
350 2015-01-12  Nick Clifton  <nickc@redhat.com>
351
352         PR binutils/17531
353         * dwarf.c (process_debug_info): Check for abbrev_base being larger
354         than the section size.
355         (process_cu_tu_index): Use xcalloc2 to allocate the CU and TU
356         arrays.
357         (xcalloc2): New function.  Like xcalloc, but checks for overflow.
358         (display_debug_addr): Use xcalloc to allocate the debug_addr_info
359         array.  Check for an address_base that is too large.
360
361         * dwarf.h (xcalloc2): Prototype.
362
363 2015-01-12  Alan Modra  <amodra@gmail.com>
364
365         * prdbg.c (print_debugging_info): Don't use void* for function
366         pointer param.
367         * budbg.h (print_debugging_info): Update prototype.
368
369 2015-01-08  Nick Clifton  <nickc@redhat.com>
370
371         PR binutils/17512
372         * ojcopy.c (copy_object): Free the symbol table if no symbols
373         could be loaded.
374         (copy_file): Use bfd_close_all_done to close files that could not
375         be copied.
376
377         * sysdump.c (getINT): Fail if reading off the end of the buffer.
378         Replace call to abort with a call to fatal.
379         (getCHARS): Prevetn reading off the end of the buffer.
380
381         * nlmconv.c (i386_mangle_relocs): Skip relocs without an
382         associated symbol.
383         (powerpc_mangle_relocs): Skip unrecognised relocs.  Check address
384         range before applying a reloc.
385
386 2015-01-07  Nick Clifton  <nickc@redhat.com>
387
388         PR binutils/17512
389         * dlltool.c (scan_obj_file): Break loop if the last archive
390         displayed matches the current archive.
391
392         * objdump.c (display_any_bfd): Add a depth limit to nested archive
393         display in order to avoid infinite loops.
394         * srconv.c: Replace calls to abort with calls to fatal with an
395         error message.
396
397 2015-01-06  Nick Clifton  <nickc@redhat.com>
398
399         PR binutils/17512
400         * coffdump.c (dump_coff_section): Check for a symbol being
401         available before printing its name.
402         (main): Check the return value from coff_grok.
403         * coffgrok.c: Reformat and tidy.
404         Add range checks to most functions.
405         (coff_grok): Return NULL if the input bfd is not in a COFF
406         format.
407         * coffgrok.h: Reformat and tidy.
408         (struct coff_section): Change the nrelocs field to unsigned.
409         * srconv.c (main): Check the return value from coff_grok.
410
411 2015-01-05  Nick Clifton  <nickc@redhat.com>
412
413         PR binutils/17512
414         * nm.c (print_symbol): Add 'is_synthetic' parameter.  Use it to
415         help initialize the info.elfinfo field.
416         (print_size_symbols): Add 'synth_count' parameter.  Use it to set
417         the is_synthetic parameter when calling print_symbol.
418         (print_symbols): Likewise.
419         (display_rel_file): Pass synth_count to printing function.
420         (display_archive): Break loop if the last archive displayed
421         matches the current archive.
422         * size.c (display_archive): Likewise.
423
424 2015-01-05  Nick Clifton  <nickc@redhat.com>
425
426         PR binutils/17531
427         * dwarf.c (alloc_num_debug_info_entries): New variable.
428         (process_debug_info): Set it.  Use it to avoid displaying
429         attributes for which there is no info.
430         (display_debug_abbrev): Check that the debug_info_entry index is
431         valid before using it.
432         (display_loc_list_dwo): Likewise.
433         (process_cu_tu_index): Add range check for an overlarge dw_sect
434         value.
435         (free_debug_memory): Reset alloc_num_debug_info_entries.
436         * readelf.c (slurp_ia64_unwind_table): Warn if the reloc could not
437         be indentified.
438         (dynamic_section_mips_val): Warn if the timestamp is invalid.
439         (print_mips_got_entry): Add a data_end parameter.  Warn if a read
440         would go beyond the end of the data, and return an error value.
441         (process_mips_specific): Do not read options from beyond the end
442         of the section.
443         Correct code to display optional data at the end of an option.
444         Warn if there are too many GOT symbols.
445         Update calls to print_mips_got_entry, and handle error returns.
446
447 2015-01-05  Daniel Klauer  <daniel.c.klauer@web.de>
448
449         PR binutils/17489
450         * doc/binutils.texi (dlltool): Correct description of --kill-at
451         option.
452
453 2015-01-01  Alan Modra  <amodra@gmail.com>
454
455         * version.c (print_version): Just print current year.
456
457 2015-01-01  Alan Modra  <amodra@gmail.com>
458
459         Update year range in copyright notice of all files.
460
461 For older changes see ChangeLog-2014
462 \f
463 Copyright (C) 2015 Free Software Foundation, Inc.
464
465 Copying and distribution of this file, with or without modification,
466 are permitted in any medium without royalty provided the copyright
467 notice and this notice are preserved.
468
469 Local Variables:
470 mode: change-log
471 left-margin: 8
472 fill-column: 74
473 version-control: never
474 End: