1 2014-11-14 Nick Clifton <nickc@redhat.com>
4 * dwarf.c (get_encoded_value): Add an 'end' parameter. Change the
5 'data' parameter to a double pointer and return the updated value.
6 (decode_location_expression): Update call to get_encoded_value.
7 (frame_need_space): Handle the case where one or both of the
9 (read_cie): Initialise the cie pointer, even if the read fails.
10 (display_debug_frames): Warn if the calculated block_end is before
11 the start of the block. Break the loop if the CIE could not be
12 read. Update call to get_encoded_value. Warn if the read CFA
13 expressions are too big.
15 2014-11-13 Nick Clifton <nickc@redhat.com>
18 * readelf.c (process_version_sections): If the read of the version
19 def information fails, make sure that the external verdef data is
21 (get_dynamic_data): Do not attempt to allocate memory for more
22 dynamic data than there is in the file. If the read fails, free
24 (process_symbol_table): Do not print dynamic information if we
25 were unable to read the dynamic symbol table.
26 (print_gnu_note): Do not print the note if the descsz is too
29 2014-11-12 Nick Clifton <nickc@redhat.com>
32 * dwarf.c (read_and_display_attr_value): Check that we do not read
34 (display_debug_pubnames_worker): Add range checks.
35 (process_debug_info): Check for invalid pointer sizes.
36 (display_loc_list): Likewise.
37 (display_loc_list_dwo): Likewise.
38 (display_debug_ranges): Likewise.
39 (display_debug_aranges): Check for invalid address size.
40 (read_cie): Add range checks. Replace call strchr with while loop.
41 * objdump.c (dump_dwarf): Replace abort with a warning message.
42 (print_section_stabs): Improve range checks.
43 * rdcoff.c (coff_get_slot): Use long for indx parameter type.
44 Add check for an excesively large index.
45 * rddbg.c (read_section_stabs_debugging_info): Zero terminate the
46 string table. Avoid walking off the end of the stabs data.
47 * stabs.c (parse_stab_string): Add check for a NULL name.
49 2014-11-11 Nick Clifton <nickc@redhat.com>
52 * binutils/readelf.c (dynamic_nent): Change type to size_t.
53 (slurp_rela_relocs): Use size_t type for nrelas.
54 (slurp_rel_relocs): Likewise.
55 (get_program_headers): Improve out of memory error message.
56 (get_32bit_section_headers): Likewise.
57 (get_32bit_section_headers): Likewise.
58 (get_64bit_section_headers): Likewise.
59 (get_32bit_elf_symbols): Likewise.
60 (get_64bit_elf_symbols): Likewise.
61 (process_section_groups): Likewise.
62 (get_32bit_dynamic_section): Likewise.
63 (get_64bit_dynamic_section): Likewise.
64 (process_dynamic_section): Likewise.
65 (process_version_sections): Likewise.
66 (get_symbol_index_type): Likewise.
67 (process_mips_specific): Likewise.
68 (process_corefile_note_segment): Likewise.
69 (process_version_sections): Use size_t type for total.
70 (get_dynamic_data): Change type of number parameter to size_t.
71 Improve out of memory error messages.
72 (process_symbol_table): Change type of nbuckets and nchains to
73 size_t. Skip processing of sections headers if there are none.
74 Improve out of memory error messages.
76 2014-11-11 Nick Clifton <nickc@redhat.com>
78 * po/fr.po: Updated French translation.
80 2014-11-11 Nick Clifton <nickc@redhat.com>
83 * readelf.c (display_arm_attribute): Avoid reading off the end of
84 the buffer when processing a Tag_nodefaults.
86 2014-11-10 Nick Clifton <nickc@redhat.com>
89 * (ia64_process_unwind): Replace assertion with an error message.
90 Add range checking for group section indicies.
91 (hppa_process_unwind): Replace assertion with an error message.
92 (process_syminfo): Likewise.
93 (decode_arm_unwind_bytecode): Add range checking.
94 (dump_section_as_strings): Add more string range checking.
95 (display_tag_value): Likewise.
96 (display_arm_attribute): Likewise.
97 (display_gnu_attribute): Likewise.
98 (display_tic6x_attribute): Likewise.
99 (display_msp430x_attribute): Likewise.
101 2014-11-10 Nick Clifton <nickc@redhat.com>
104 * (copy_archive): Clean up temporary files even if an error
107 2014-11-07 H.J. Lu <hongjiu.lu@intel.com>
109 * readelf.c (process_dynamic_section): Cast time value to unsigned
112 2014-11-07 Nick Clifton <nickc@redhat.com>
115 * readelf.c (get_data): Avoid allocating memory when we know that
117 (find_section_by_type): New function.
118 (get_unwind_section_word): Check for invalid symbol indicies.
119 Check for invalid reloc types.
120 (get_32bit_dynamic_section): Add range checks.
121 (get_64bit_dynamic_section): Add range checks.
122 (process_dynamic_section): Check for a corrupt time value.
123 (process_symbol_table): Add range checks.
124 (dump_section_as_strings): Add string length range checks.
125 (display_tag_value): Likewise.
126 (display_arm_attribute): Likewise.
127 (display_gnu_attribute): Likewise.
128 (display_tic6x_attribute): Likewise.
129 (display_msp430x_attribute): Likewise.
130 (process_mips_specific): Add range check.
132 2014-11-06 Nick Clifton <nickc@redhat.com>
134 PR binutils/17552, binutils/17533
135 * bucomm.c (is_valid_archive_path): New function. Returns false
136 for absolute pathnames and pathnames that include /../.
137 * bucomm.h (is_valid_archive_path): Add prototype.
138 * ar.c (extract_file): Use new function to check for valid
139 pathnames when extracting files from an archive.
140 * objcopy.c (copy_archive): Likewise.
141 * doc/binutils.texi: Update documentation to mention the
142 limitation on pathname of archive members.
144 2014-11-05 Nick Clifton <nickc@redhat.com>
147 * readelf.c (printable_section_name): New function.
148 (printable_section_name_from_index): New function.
149 (dump_relocations): Use new function.
150 (process_program_headers, get_32bit_elf_symbols,
151 (get_64bit_elf_symbols, process_section_headers,
152 (process_section_groups, process_relocs, ia64_process_unwind,
153 (hppa_process_unwind, get_unwind_section_word, decode_arm_unwind,
154 (arm_process_unwind, process_version_sections,
155 (process_symbol_table, apply_relocations, get_section_contents,
156 (dump_section_as_strings, dump_section_as_bytes,
157 (display_debug_section, process_attributes, process_mips_specific,
158 (process_mips_specific process_gnu_liblist): Likewise.
159 (get_unwind_section_word): Check for a missing symbol table.
160 Replace aborts with error messages.
161 (arm_process_unwind): Check for a missing string table.
162 (process_attributes): Check for an attribute length that is too
164 (process_mips_specific): Check for a corrupt GOT symbol offset.
166 2014-11-05 Nick Clifton <nickc@redhat.com>
169 * bucomm.c (is_valid_archive_path): New function.
170 * bucomm.h (is_valid_archive_path): Prototype it.
171 * ar.c (extract_file): Call is_valid_archive_path to verify a
172 member filename before extracting it.
173 * objcopy.c (copy_archive): Likewise.
175 2014-11-05 Jan-Benedict Glaw <jbglaw@lug-owl.de>
177 * readelf.c (process_mips_specific): Fix format string warning.
179 2014-11-04 Matthew Fortune <matthew.fortune@imgtec.com>
181 * readelf.c (process_mips_specific): Rename index to idx.
183 2014-11-04 Nick Clifton <nickc@redhat.com>
186 * readelf.c (get_data): If the reason parameter is null, do not
187 print any error messages.
188 (get_32bit_section_headers): Verify section header entry size
189 before reading in the section headers.
190 (get_64bit_section_headers): Likewise.
191 (process_section_headers): Pass FALSE to get_section_headers.
192 (get_file_header): Pass TRUE to get_section_headers.
193 (process_dynamic_section): Change an assert to an error message.
194 (process_symbol_table): Handle corrupt histograms.
196 (get_32bit_program_headers): Verify program header entry size
197 before reading in the program headers.
198 (get_64bit_program_headers): Likewise.
199 (get_unwind_section_word): Do nothing if no section was provided.
200 Fail if the offset is outside of the section.
201 (print_dynamic_symbol): Catch out of range symbol indicies.
202 (process_mips_specific): Likewise.
203 (process_attributes): Make sure that there is enough space left in
204 the section before attempting to read the length of the next
207 2014-11-03 Nick Clifton <nickc@redhat.com>
210 * objdump.c (slurp_symtab): Fail gracefully if the table could not
212 (dump_relocs_in_section): Likewise.
214 2014-11-03 Nick Clifton <nickc@redhat.com>
216 * po/fi.po: Updated Finnish translation.
217 * po/sv.po: Updated Swedish translation.
219 2014-11-01 Hans-Peter Nilsson <hp@axis.com>
221 * readelf.c (get_32bit_elf_symbols): Cast error
222 parameters of bfd_size_type with the %lx format to
225 2014-10-31 Andrew Pinski <apinski@cavium.com>
226 Naveen H.S <Naveen.Hurugalawadi@caviumnetworks.com>
228 * readelf.c (print_mips_isa_ext): Print the value of Octeon3.
230 2014-10-31 Iain Buclaw <ibuclaw@gdcproject.org>
232 * cxxfilt.c (main): Add case for dlang_demangling style.
234 2014-10-31 Nick Clifton <nickc@redhat.com>
237 * readelf.c (process_program_headers): Avoid memory exhaustion due
238 to corrupt values in a dynamis segment header.
239 (get_32bit_elf_symbols): Do not attempt to read an over-large
241 (get_64bit_elf_symbols): Likewise.
243 2014-10-31 Nick Clifton <nickc@redhat.com>
245 * strings.c: Add new command line option --data to only scan the
246 initialized, loadable data secions of binaries. Choose the
247 default behaviour of --all or --data based upon a configure
249 * doc/binutils.texi (strings): Update documentation. Include
250 description of why the --data option might be unsafe.
251 * configure.ac: Add new option --disable-default-strings-all which
252 restores the old behaviour of strings using --data by default. If
253 the option is not used make strings use --all by default.
254 * NEWS: Mention the new behaviour of strings.
255 * configure: Regenerate.
256 * config.in: Regenerate.
258 2014-10-30 Nick Clifton <nickc@redhat.com>
260 * readelf.c (CHECK_ENTSIZE_VALUES): Rewrite error message so that
261 there is a single string for translation.
262 (dynamic_section_mips_val): Likewise.
264 2014-10-29 Nick Clifton <nickc@redhat.com>
266 * po/bg.po: Updated Bulgarian translation.
267 * po/sr.po: New Serbian translation.
268 * po/sv.po: Updated Swedish translation.
270 2014-10-22 Matthew Fortune <matthew.fortune@imgtec.com>
272 * readelf.c (print_mips_ases): Print unknown ASEs.
273 (print_mips_isa_ext): Print the value of an unknown extension.
275 2014-10-15 Tristan Gingold <gingold@adacore.com>
277 * configure: Regenerate.
279 2014-10-14 Tristan Gingold <gingold@adacore.com>
281 * NEWS: Add marker for 2.25.
283 2014-10-14 Alan Modra <amodra@gmail.com>
286 * dwarf.c (read_leb128): Avoid signed overflow.
287 (read_debug_line_header): Likewise.
289 2014-10-14 Alan Modra <amodra@gmail.com>
292 * readelf.c (process_program_headers): Correct fscanf format used
295 2014-10-09 Jose E. Marchesi <jose.marchesi@oracle.com>
297 * readelf.c (display_sparc_hwcaps2): New function.
298 (display_sparc_gnu_attribute): Call `display_sparc_hwcaps2' when
299 handling `Tag_GNU_Sparc_HWCAPS2' attributes.
301 2014-09-22 Alan Modra <amodra@gmail.com>
304 * dwarf.c (GET): Remove semicolon.
305 (read_cie): New function, extracted from..
306 (display_debug_frames): ..here. Correctly handle signed offset
307 from FDE to CIE in .eh_frame. Decode forward referenced CIEs too.
309 2014-09-16 Nick Clifton <nickc@redhat.com>
311 * readelf.c (display_arm_attribute): Use unsigned int type for
312 tag, val and type variables.
314 2014-09-16 Kuan-Lin Chen <kuanlinchentw@gmail.com>
316 * readelf.c (decode_NDS32_machine_flags): Display ABI2 FP+.
318 2014-09-15 Andrew Bennett <andrew.bennett@imgtec.com>
319 Matthew Fortune <matthew.fortune@imgtec.com>
321 * readelf.c (get_machine_flags): Add support for mips32r6 and
324 2014-09-01 Jon TURNEY <jon.turney@dronecode.org.uk>
326 * objcopy.c (is_nondebug_keep_contents_section): Change
327 '.build-id' to '.buildid'.
329 2014-08-22 Richard Henderson <rth@redhat.com>
331 * dwarf.h (init_dwarf_regnames_aarch64): Declare.
332 * dwarf.c (dwarf_regnames_aarch64): New.
333 (init_dwarf_regnames_aarch64): New.
334 (init_dwarf_regnames): Call it.
335 * objdump.c (dump_dwarf): Likewise.
337 2014-08-19 Alan Modra <amodra@gmail.com>
339 * configure: Regenerate.
341 2014-08-14 Alan Modra <amodra@gmail.com>
343 * configure.ac: Move ACX_LARGEFILE after LT_INIT.
344 * config.in: Regenerate.
345 * configure: Regenerate.
347 2014-07-29 Matthew Fortune <matthew.fortune@imgtec.com>
349 * readelf.c (get_mips_segment_type): Display name for PT_MIPS_ABIFLAGS.
350 (get_mips_section_type_name): Display name for SHT_MIPS_ABIFLAGS.
351 (display_mips_gnu_attribute): Abstracted fp abi printing to...
352 (print_mips_fp_abi_value): New static function. Handle new FP ABIs.
353 (print_mips_ases, print_mips_isa_ext): New static functions.
354 (get_mips_reg_size): Likewise.
355 (process_mips_specific): Display abiflags data.
357 2014-07-28 Alan Modra <amodra@gmail.com>
360 * nm.c (filter_symbols): Warn on __gnu_lto_slim.
362 2014-07-07 Nick Clifton <nickc@redhat.com>
364 * readelf.c (get_symbol_type): Revert accidental change to
365 detection of thumb function symbols.
367 2014-07-04 Alan Modra <amodra@gmail.com>
369 * configure.ac: Rename from configure.in.
370 * Makefile.in: Regenerate.
371 * config.in: Regenerate.
372 * doc/Makefile.in: Regenerate.
374 2014-07-04 Alan Modra <amodra@gmail.com>
376 * configure.in: Include bfd/version.m4.
377 (AC_INIT, AM_INIT_AUTOMAKE): Use modern form.
378 (BFD_VERSION): Delete.
379 * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Remove bfd/configure.in.
380 * configure: Regenerate.
381 * Makefile.in: Regenerate.
382 * doc/Makefile.in: Regenerate.
384 2014-07-03 Tristan Gingold <gingold@adacore.com>
386 * doc/binutils.texi: Clarify addr2line output.
388 2014-07-01 Alan Modra <amodra@gmail.com>
390 * objdump.c (dump_bfd_header): Don't print HAS_LOAD_PAGE.
392 2014-06-26 Erik Akermann <kurterikackermann@gmail.com>
394 * strings.c: Add -w/--include-all-whitespace option to include any
395 whitespace character in the displayed strings.
396 * NEWS: Mention the new feature.
397 * doc/binutils.texi (strings): Document the new command line
400 2014-06-26 Nick Clifton <nickc@redhat.com>
402 * readelf.c (process_note_sections): If there are no note sections
403 try processing note segments instead.
405 2014-06-17 Anton Lavrentiwev <lavr@ncbi.nim.nih.gov>
408 * rcparse.y (fixedverinfo): Prevent large version numbers from
409 corrupting other values.
411 2014-06-09 Romain Chastenet <romain.chastenet@free.fr>
414 * dwarf.c (display_debug_frames): Remember the state of the
415 cfa_offset, cfa_reg, ra and cfa_exp field
417 2014-06-05 Joel Brobecker <brobecker@adacore.com>
419 * Makefile.am (CONFIG_STATUS_DEPENDENCIES): Add dependency on
420 bfd's development.sh.
421 * Makefile.in, configure: Regenerate.
423 2014-05-16 Jon Turney <jon.turney@dronecode.org.uk>
425 * objcopy.c (is_nondebug_keep_contents_section): New function.
426 (setup_section): Use it.
428 2014-05-16 Kaushik Phata <Kaushik.Phatak@kpit.com>
430 * readelf.c (get_machine_flags): Handle RL78 64-bit doubles flag.
432 2014-05-02 Alan Modra <amodra@gmail.com>
434 * emul_aix.c: Update bfd target vector naming.
435 * testsuite/binutils-all/objcopy.exp: Likewise.
437 2014-04-24 Christian Svensson <blue@cmd.nu>
439 * MAINTAINERS: Add myself and Stefan as OR1K maintainers.
441 2014-04-23 Andrew Bennett <andrew.bennett@imgtec.com>
443 * doc/binutils.texi: Document the disassemble MIPS XPA instructions
446 2014-04-22 Christian Svensson <blue@cmd.nu>
448 * readelf.c: Remove openrisc and or32 support. Add support for or1k.
450 2014-04-18 Tristan Gingold <gingold@adacore.com>
452 * od-macho.c (dump_section_map): Adjust as load commands
454 (dump_load_command, dump_section_content): Likewise.
456 2014-04-16 Tristan Gingold <gingold@adacore.com>
458 * od-macho.c (OPT_DYLD_INFO): New macro.
459 (options): Add entry for dyld_info.
460 (mach_o_help): Likewise.
461 (load_and_dump, dump_dyld_info_rebase, dump_dyld_info_bind)
462 (dump_dyld_info_export_1, dump_dyld_info_export): New functions.
463 (bfd_mach_o_dyld_rebase_type_name): New array.
464 (export_info_data): New struct.
465 (dump_dyld_info): Add verbose argument. Dump rebase, bind and
467 (dump_load_command): Adjust dump_dyld_info call.
468 (mach_o_dump): Handle dyld_info.
470 2014-04-16 Tristan Gingold <gingold@adacore.com>
472 * od-macho.c (dump_header): Display sizeofcmds in decimal too.
473 (dump_segment): Reformat output.
474 (dump_dyld_info): Also display end offsets.
475 (dump_load_command): Add IDX argument, display commands size
476 and offset, reformat display.
477 (dump_load_commands): Adjust for added argument.
479 2014-04-07 Alan Modra <amodra@gmail.com>
482 * objcopy.c (copy_object): Error if no sections.
484 2014-04-03 Markus Trippelsdorf <markus@trippelsdorf.de>
487 ar.c: Set plugin_target early if plugins are supported.
490 2014-04-03 Tristan Gingold <gingold@adacore.com>
492 * od-macho.c (printf_uint64): New function.
493 (dump_load_command, dump_obj_compact_unwind): Use it.
494 (dump_exe_compact_unwind): Display personality functions.
496 2014-04-02 Tristan Gingold <gingold@adacore.com>
498 * od-macho.c (OPT_TWOLEVEL_HINTS): New macro.
499 (options): Add entry for twolevel_hints.
500 (dump_data_in_code): Fix error message.
501 (dump_twolevel_hints): New function.
502 (dump_load_command): Handle prebound dylib, prebind cksum
504 (mach_o_dump): Handle twolevel hints.
506 2014-04-01 Tristan Gingold <gingold@adacore.com>
508 * od-macho.c (OPT_DATA_IN_CODE): New macro.
509 (options): Add entry for data in code.
510 (mach_o_help): Ditto.
511 (data_in_code_kind_name): New array.
512 (dump_data_in_code): New function.
513 (dump_load_command): Handle data in code.
514 (mach_o_dump): Ditto.
515 (dump_header): Display a terminal newline.
517 2014-03-27 Tristan Gingold <gingold@adacore.com>
519 * od-macho.c (dump_load_command): Display value for
520 BFD_MACH_O_LC_DYLD_ENVIRONMENT. Handle BFD_MACH_O_LC_DATA_IN_CODE
521 and BFD_MACH_O_LC_DYLIB_CODE_SIGN_DRS.
523 2014-03-27 Tristan Gingold <gingold@adacore.com>
525 * od-macho.c (OPT_FUNCTION_STARTS): New macro.
526 (options): Add entry for function_starts.
527 (mach_o_help): Ditto.
528 (disp_segment_prot): New function.
529 (dump_section_map): Call disp_segment_prot.
530 (dump_function_starts): New function.
531 (dump_obj_compact_unwind): Fix ouput indentation.
532 (dump_exe_compact_unwind): Fix ouput indentation.
533 (mach_o_dump): Handle function_starts.
535 2014-03-26 Tristan Gingold <gingold@adacore.com>
537 * od-macho.c (bfd_mach_o_cpu_name): Add BFD_MACH_O_CPU_TYPE_ARM64.
539 2014-03-24 Tristan Gingold <gingold@adacore.com>
541 * objdump.c (load_specific_debug_section): Set address of section.
543 2014-03-24 Tristan Gingold <gingold@adacore.com>
545 * od-macho.c (dump_unwind_encoding_x86): Set the factor.
546 (dump_exe_compact_unwind): Change the condition. Improve
549 2014-03-20 Nick Clifton <nickc@redhat.com>
551 * readelf.c (process_version_sections): Fix off-by-one error in
554 2014-03-19 Nick Clifton <nickc@redhat.com>
557 * readelf.c (process_version_sections): Prevent an infinite loop
558 when the vn_next field is zero but there are still entries to be
561 2014-03-17 Tristan Gingold <gingold@adacore.com>
563 * od-macho.c (dump_section_header): Renames of dump_section.
564 (dump_segment): Adjust after renaming.
565 (OPT_COMPACT_UNWIND): Define.
566 (options): Add compact unwind.
567 (mach_o_help): Document compact_unwind.
568 (unwind_x86_64_regs, unwind_x86_regs): New arrays.
569 (dump_unwind_encoding_x86, dump_unwind_encoding)
570 (dump_obj_compact_unwind, dump_exe_compact_unwind)
571 (dump_section_content): New functions.
572 (mach_o_dump): Handle compact unwind.
574 2014-03-17 Tristan Gingold <gingold@adacore.com>
576 * od-macho.c (dump_load_command): Handle lazy load dylib.
578 2014-03-14 Anthony Green <green@moxielogic.com>
580 * objcopy.c (copy_object): Check fwrite return code.
582 2014-03-14 Meador Inge <meadori@codesourcery.com>
584 * dwarf.c (strnlen): Move prototype ...
585 * sysdep.h (strnlen): ... to here.
587 2014-03-12 Nick Clifton <nickc@redhat.com>
590 * doc/binutils.texi (ar cmdline): Move --plugin command line
591 option to after the command option.
593 2014-03-12 Dmitry Gorbachev <d.g.gorbachev@gmail.com>
596 * deflex.l: Add noinput and nounput options.
598 2014-03-12 Alan Modra <amodra@gmail.com>
600 * Makefile.in: Regenerate.
601 * doc/Makefile.in: Regenerate.
603 2014-03-06 Nick Clifton <nickc@redhat.com>
606 * readelf.c (process_attributes): Add checks for corrupt
607 attribute section names.
609 2014-03-05 Alan Modra <amodra@gmail.com>
611 Update copyright years.
613 2014-03-03 Alan Modra <amodra@gmail.com>
615 * README: Add "Copyright Notices" paragraph.
617 2014-02-11 Cary Coutant <ccoutant@google.com>
619 * binutils/dwarf.c (read_and_display_attr_value): Don't warn
620 for zero-length attribute value.
622 2014-02-10 Alan Modra <amodra@gmail.com>
624 * po/binutils.pot: Regenerate.
626 2014-02-06 Andrew Pinski <apinski@cavium.com>
628 * readelf.c (get_machine_flags): Handle E_MIPS_MACH_OCTEON3 case.
630 2014-02-06 Cary Coutant <ccoutant@google.com>
633 * readelf.c (print_gnu_note): Add support for NT_GNU_GOLD_VERSION.
635 2014-01-08 H.J. Lu <hongjiu.lu@intel.com>
637 * version.c (print_version): Update copyright year to 2014.
639 2014-01-07 Tom Tromey <tromey@redhat.com>
641 * bucomm.c (fatal, non_fatal): Replace obsolete VA_* macros with
643 * dlltool.c (inform): Replace obsolete VA_* macros with stdarg
645 * dllwrap.c (inform, warn): Replace obsolete VA_* macros with
648 2014-01-07 Tom Tromey <tromey@redhat.com>
650 * coffgrok.h (coff_ofile): Don't use PARAMS.
651 * nlmheader.y (strerror): Don't use PARAMS.
653 For older changes see ChangeLog-2013
655 Copyright (C) 2014 Free Software Foundation, Inc.
657 Copying and distribution of this file, with or without modification,
658 are permitted in any medium without royalty provided the copyright
659 notice and this notice are preserved.
665 version-control: never