3 * MAINTAINERS: Added Jon Beniston as maintainer for LM32 port.
4 * readelf.c: Add support for LM32 machine number.
8 * rcparse.y (rcdata_data): Allow empty comma elements.
12 * objdump.c (dump_reloc_set): Remove STT_IFUNC support.
13 * readelf.c (dump_relocations): Likewise.
14 (get_symbol_type): Likewise.
15 * doc/binutils.texi: Likewise.
19 * configure: Regenerate.
23 * srconv.c (wr_hd): Add parens to placate gcc 4.4.
27 * readelf.c (arm_attr_tag_CPU_arch): Add "v6-M" and "v6S-M".
28 (arm_attr_tag_WMMX_arch): Add "WMMXv2".
29 (arm_attr_tag_NEON_arch): Rename to ...
30 (arm_attr_tag_Advanced_SIMD_arch): ... official name.
31 (arm_attr_tag_ABI_PCS_config): Rename to ...
32 (arm_attr_tag_PCS_config): ... official name.
33 (arm_attr_tag_ABI_PCS_RO_DATA): Rename to ...
34 (arm_attr_tag_ABI_PCS_RO_data): ... official name.
35 (arm_attr_tag_ABI_FP_denormal): Add "Sign only".
36 (arm_attr_tag_CPU_unaligned_access): New array.
37 (arm_attr_tag_T2EE_use): New array.
38 (arm_attr_tag_Virtualization_use): New array.
39 (arm_attr_tag_MPextension_use): New array.
40 (arm_attr_publ): NEON_arch -> Advanced_SIMD_arch.
41 ABI_PCS_config -> PCS_config.
42 ABI_PCS_RO_DATA -> ABI_PCS_RO_data.
43 Add CPU_unaligned_access, nodefaults, also_compatible_with,
44 T2EE_use, conformance, Virtualization_use and MPextension_use.
45 (display_arm_attribute): Handle Tag_nodefaults and
46 Tag_also_compatible_with.
50 * doc/binutils.texi (objdump): Update booke documentation.
51 * NEWS: Document user-visible changes to command line options.
55 * objdump.c (dump_reloc_set): Append "()" to symbol names which
56 have the BSF_INDIRECT_FUNCTION type.
57 * readelf.c (print_symbol): Fix handling of negative widths.
58 (dump_relocations): Append "()" to symbol names which have the
59 STT_IFUNC type. Display negative offsets as a positive number with
61 (get_symbol_type): Return "IFUNC" for STT_IFUNC symbols.
62 * doc/binutils.texi: Document 'i' symbol type.
66 * strings.c (main): New variable `s'. Have string_min parsing
67 call fatal for invalid input strings.
72 * dlltool.c (run): Use formatting string to avoid compile time
74 (gen_exp_file): Check return value from fread.
75 * windmc.c (main): Check return value from fread.
79 * MAINTAINERS: Take over from Bob Wilson as Xtensa maintainer.
83 * doc/fdl.texi: Update to v1.3
84 * doc/binutils.texinfo: Change license to v1.3.
88 * readelf.c (arm_attr_tag_ABI_FP_16bit_format): New.
89 (arm_attr_tag_VFP_HP_extension): New.
90 (arm_attr_public_tag arm_attr_public_tags): Support
95 * version.c (print_version): Update copyright year.
99 * dlltool.c (identify_search_section): Cast argument, not return
100 value, of xstrdup to 'char*'.
104 Added --identify option to dlltool.
105 * binutils/dlltool.c: Add new global variables
106 identify_imp_name and identify_dll_name.
107 (identify_dll_for_implib, identify_search_archive,
108 identify_search_member, identify_process_section_p,
109 identify_search_section): New functions.
110 (usage): Added --identify.
111 (long_options): Added --identify.
112 (main): Handle --identify option.
113 * binutils/doc/binutils.texi: Document --identify.
117 Remove outdated mach-o specific tests.
118 * objdump.c (load_debug_section): Remove mach-o specific test.
119 (mach_o_uncompressed_dwarf_sections): Removed.
120 (mach_o_compressed_dwarf_sections): Removed.
121 (generic_uncompressed_dwarf_sections): Removed.
122 (generic_compressed_dwarf_sections): Removed.
123 (check_mach_o_dwarf): Removed.
124 (dump_dwarf): Remove call to check_mach_o_dwarf.
128 * configure.com: Get version from configure.in of bfd.
129 * makefile.vms-in (DEBUG_OBJS): Add dwarf.obj.
130 (CFLAGS): Update flags.
135 * nm.c (filter_symbols): Only call memcpy when from != to.
140 * objdump.c (disassemble_bytes): Don't skip leading zeros when
141 end of section calculation overflows.
145 * MAINTAINERS: Take over from Anil Paranjpe as H8300 maintainer.
149 * po/id.po: New file.
150 * configure.in (ALL_LINGUAS): Add id.
151 * configure: Regenerate.
155 * windmc.c (res_alloc): Remove unnecessary cast.
156 * windres.c (res_alloc, reswr_alloc): Likewise.
160 * readelf.c: Tidy up code formatting.
164 * readelf.c (display_power_gnu_attribute): Decode
165 Tag_GNU_Power_ABI_Struct_Return.
169 * embedspu.sh: Pass -Wa,-noexecstack to $CC.
173 * dlltool.c (PAGE_SIZE): Make sure it has bfd_vma type.
174 (PAGE_MASK): Likewise.
175 (sfunc): Change to address size of bfd_vma for base-file.
176 (flush_page): Likewise.
177 (gen_exp_file): Likewise.
181 * readelf.c (process_section_headers): Do not cut the section names and
182 types if running with --wide.
186 * dwarf.c (display_debug_frames): Change text for uniformity.
187 (process_debug_info): Likewise.
188 (display_debug_aranges): Likewise. Indent address output.
189 (display_debug_pubnames): Print offset in hex.
194 * stabs.c (parse_stab_string): Parse and ignore =Y<name> strings
195 generated by the SUNPro C++ compiler.
200 * stabs.c (parse_stab_sun_builtin_type): Parse, but ignore SUN's
201 'b' and 'v' extensions.
206 * configure: Regenerate for new libtool.
208 * Makefile.in: Ditto.
209 * doc/Makefile.in: Ditto.
213 * objcopy.c (setup_section): Set elf_group_id.
217 * dwarf.c (size_of_encoded_value, get_encoded_value): Move up.
218 (decode_location_expression): Add section parameter. Handle
219 DW_OP_GNU_encoded_addr.
220 (read_and_display_attr_value): Update decode_location_expression call.
221 (display_debug_loc, display_debug_frames): Likewise.
226 * dwarf.c (print_dwarf_vma): Don't call printf without format string.
230 Suppress warnings on NONE relocations to discarded sections.
231 * readelf.c (is_none_reloc): New function.
232 (debug_apply_relocations): Ignore is_none_reloc() relocations.
236 Fix loading large elf64 binaries on 32bit hosts.
237 * configure.in: Call AC_SYS_LARGEFILE.
238 * config.in: Regenerate.
239 * configure: Regenerate.
247 * BRANCHES: Add 2.18 and 2.19 release branches.
251 * NEWS: Add a marker for the 2.19 features.
255 * readelf.c (load_specific_debug_section): New function, from
257 (load_debug_section): Use load_specific_debug_section.
258 (display_debug_section): Use load_specific_debug_section. Check for
259 multiple sections with the same name.
263 * objdump.c (dump_stabs): Add sections for Darwin.
267 * sysdep.h: Include "binary-io.h".
268 (O_BINARY): Don't define here.
269 * bin2c.c (O_BINARY, O_TEXT, SET_BINARY): Don't define here.
270 * strings.c: Likewise.
271 (main): Remove #ifdef SET_BINARY.
272 * Makefile.am: Run "make dep-am"
273 * Makefile.in: Regenerate.
277 * configure.in: Update a number of obsolete autoconf macros.
278 * configure: Regenerate.
279 * aclocal.m4: Regenerate.
283 * readelf.c (is_32bit_pcrel_reloc): Fix hppa entry.
284 (is_64bit_pcrel_reloc): New.
285 (debug_apply_relocations): Use it. Handle hppa pcrel bias.
290 * configure.in: Invoke AC_USE_SYSTEM_EXTENSIONS.
291 * Makefile.in: Regenerate.
292 * aclocal.m4: Regenerate.
293 * config.in: Regenerate.
294 * configure: Regenerate.
295 * doc/Makefile.in: Regenerate.
300 * rename.c (smart_rename): Punctuate error messages.
307 * readelf.c (get_mips_symbol_other): Handle STO_MIPS_PLT and
309 (slurp_rela_relocs, slurp_rel_relocs): Handle MIPS ELF64 here.
310 (dump_relocations, debug_apply_relocations): Don't handle it here.
311 (get_mips_dynamic_type): Handle DT_MIPS_PLTGOT and DT_MIPS_RWPLT.
312 (print_mips_pltgot_entry): New function.
313 (process_mips_specific): Dump the PLT GOT.
317 * readelf.c (is_64bit_abs_reloc): Return true for R_MIPS_64.
322 * objcopy.c (copy_object): Don't setup_bfd_headers when extract_symbol.
323 (setup_section): Don't zero vma and lma when extract_symbol.
324 (copy_section): Discard relocations when extract_symbol.
325 * doc/binutils.texi: Update --extract-symbol description.
329 * Makefile.am (POTFILES.in): Set LC_ALL=C.
330 * Makefile.in: Regenerate.
334 * readelf.c (get_osabi_name <ELFOSABI_AROS>): Change name.
338 * dwarf.c (dwarf_regnames_i386): Remove AVX registers.
339 (dwarf_regnames_x86_64): Likewise.
343 * dlltool.c, dwarf.c, objdump.c, readelf.c, resrc.c, resres.c,
344 windmc.c: Silence gcc warnings.
348 * readelf.c (print_vma): Typo fix.
353 * readelf.c (print_dec_vma, print_hex_vma): Delete.
354 (print_vma): Use BFD_VMA_FMT.
355 * size.c (size_number, rprint_number): Likewise.
359 * readelf.c (display_power_gnu_attribute): Display
360 single-precision hard float.
364 * readelf.c (get_note_type): Handle VSX notes.
368 * objdump.c (load_debug_section): Initialize section_is_compressed
370 * readelf.c (load_debug_section): Likewise.
376 * readelf.c (get_machine_flags): Deal with Blackfin specific
381 * readelf.c (get_machine_flags): Deal with Blackfin specific
386 * config.in: Add HAVE_ZLIB_H
387 * configure.in: Add test for libz and zlib.h
388 * configure: Regenerate.
389 * dwarf.c (debug_displays): Add .zdebug_* strings.
390 * dwarf.h (struct dwarf_section): Add fields uncompressed_namd
392 * objdump.c (load_debug_section): Call
393 bfd_uncompress_section_contents when loading a compressed
395 (dump_dwarf_section): Recognize compressed section name.
396 (mach_o_dwarf_sections): Rename as
397 mach_o_uncompressed_dwarf_sections.
398 (mach_o_compressed_dwarf_sections): New variable.
399 (generic_dwarf_section): Rename as
400 generic_uncompressed_dwarf_sections.
401 (generic_compressed_dwarf_sections): New variable.
402 (check_mach_o_dwarf): Save and restore
403 mach_o_compressed_dwarf_sections.
404 * readelf.c: Add #include for config.h and zlib.h
405 (process_section_headers): Recognize compressed section name.
406 (uncompress_section_contents): New function.
407 (load_debug_section): Call uncompress_section_contents when
408 loading a compressed section.
409 (display_debug_section): Recognize compressed section name.
413 * objdump.c (find_symbol_for_address): Prefer symbols in current
418 * ieee.c (write_ieee_debugging_info): Use bfd_make_section_with_flags.
419 * nlmconv.c (main, powerpc_build_stubs): Likewise.
420 * rescoff.c (write_coff_file): Likewise.
421 * resres.c (write_res_file): Likewise.
422 * windmc.c (windmc_write_bin): Likewise.
426 * readelf.c (guess_is_rela): Add EM_CR16_OLD.
427 (dump_relocations): Likewise.
428 (get_machine_name): Likewise.
429 (is_32bit_abs_reloc): Likewise.
433 * configure: Regenerate.
437 * readelf.c (guess_is_rela): Add EM_M32C_OLD.
438 (dump_relocations): Likewise.
439 (process_section_headers): Likewise.
440 (is_32bit_abs_reloc): Likewise.
441 (is_16bit_abs_reloc): Likewise.
446 * objdump.c (dump_bfd): If the -g option found no STABS or IEEE
447 debug information to display, try dumping DWARF information
449 * rddbg.c (read_debugging_info): Add a parameter to suppress the
450 display of a warning message when no debug information is found.
451 * budbg.h (read_debugging_info): Update prototype.
452 * objcopy.c (copy_object): Continue to allow read_debugging_info
453 to produce warning messages.
454 * doc/binutils.texi (--debugging): Document new behaviour of the
455 -g/--debugging option.
459 * MAINTAINERS: Remove myself as m68k maintainer.
463 * Makefile.in: Regenerate.
464 * doc/Makefile.in: Regenerate.
468 * embedspu.sh: Test for presence of ._ea by looking at section
469 table rather than looking at relocs. Correct toe_addr substitution.
473 * embedspu.sh: Take note of R_SPU_PPU32/64 relocs without a symbol,
474 and if present, put image in ".data.speelf". Put program handle
475 in ".data.spehandle".
479 * readelf.c (print_symbol): Add code to display non-printing
484 * doc/binutils.texi (strings): Add "unicode" to the documentation
485 of strings in order to make explicit that it supports this
490 * readelf.c (process_program_headers): Correct section in segment
497 * objdump.c (slurp_file): Open the file in binary mode.
498 * ar.c: Remove conditional definition of O_BINARY.
500 * rename.c: Likewise.
501 * strings.c: Likewise.
502 * sysdep.h: Add conditional definition of O_BINARY.
506 * aclocal.m4: Regenerate.
507 * configure: Regenerate.
512 * objcopy.c (stuct symlist): Rename to
513 is_specified_symbol_predicate_data.
514 (strip_specific_list): Rename to strip_specific_htab.
515 (strip_unneeded_list): Rename to strip_unneeded_htab.
516 (keep_specific_list): Rename to keep_specific_htab.
517 (localize_specific_list): Rename to localize_specific_htab.
518 (globalize_specific_list): Rename to globalize_specific_htab.
519 (keepglobal_specific_list): Rename to keepglobal_specific_htab.
520 (weaken_specific_list): Rename to weaken_specific_htab.
521 (eq_string): New function.
522 (create_symbol_htab): New function.
523 (create_symbol_htabs): New function.
524 (add_specific_symbol): Change to use hash tables.
525 (is_specified_symbol_predicate): New function.
526 (is_specified_symbol): Use hash table lookup.
527 (is_strip_section): Update to use new functions and hash tables.
528 (filter_symbols): Likewise.
529 (copy_object): Likewise.
530 (copy_section): Likewise.
531 (strip_main): Likewise.
532 (copy_main): Likewise.
537 * readelf.c (get_gnu_elf_note_type): Recognize NT_GNU_GOLD_VERSION.
541 * dwarf.c (display_debug_lines): Rename to
542 display_debug_lines_raw.
543 (display_debug_lines_decoded): New function. Displays the
544 interpreted contents of a .debug_line section.
545 (display_debug_lines): New function: Selects either a raw dump or
546 a decoded dump (or both) as requested by the user.
547 * dwarf.h (do_debug_lines_decoded): New extern.
548 * readelf.c: Add support for -wL or --debug-dump=decodedline
549 option to display the decoded contents of a .debug_line section.
550 * doc/binutils.texi: Document the new option.
551 * NEWS: Mention the new feature.
555 * dwarf.c: Remove trailing whitespace throughout file.
559 * po/sk.po: Updated Slovak translation.
563 * dwarf.c (dwarf_regnames_i386): Add AVX registers.
564 (dwarf_regnames_x86_64): Likewise.
568 Add support for thin archives.
569 * ar.c (make_thin_archive): New global flag.
570 (map_over_members): Deal with full pathnames in thin archives.
571 (usage, main): Add 'T' option for building thin archives.
572 (replace_members): Pass thin archive flag to ar_emul_append.
573 * arsup.c (ar_open): Initialize new flag.
574 * binemul.c (ar_emul_append): Add new parameter for
575 flattening nested archives.
576 (do_ar_emul_default_append): New function.
577 (ar_emul_default_append): Factored out recursive code.
578 * binutils/binemul.h (ar_emul_default_append): Add new parameter.
579 (struct bin_emulation_xfer_struct): New parameter for ar_append.
580 * dlltool.c (gen_lib_file): Initialize thin archive flag.
581 * emul_aix.c (ar_emul_aix_internal): Add new flatten
582 parameter, currently unimplemented.
584 * objcopy.c (copy_archive): Preserve thin archive flag.
585 * doc/binutils.texi: Update ar documentation.
586 * NEWS: Mention the new feature.
590 * readelf.c (process_mips_specific): Declare addr_size as int.
594 * readelf.c (print_mips_got_entry): New function.
595 (process_mips_specific): Print GOT information.
599 * aclocal.m4: Regenerate.
600 * configure: Likewise.
601 * Makefile.in: Likewise.
602 * doc/Makefile.in: Likewise.
606 * rcparse.y (resid): Allow control text to span multiple lines.
610 * readelf.c: Use %u throughout when printing sh_link or sh_info,
611 %lu when printing sh_addralign.
612 (process_version_sections): Use identical formats when printing
613 all offset and sh_link fields.
617 * Makefile.am: Run "make dep-am".
618 * Makefile.in: Regenerate.
619 * doc/Makefile.in: Regenerate.
620 * configure: Regenerate.
625 * readelf.c (SECTION_HEADER_INDEX, SECTION_HEADER_NUM): Delete.
626 Remove use throughout file.
627 (SECTION_HEADER): Likewise.
628 (dump_relocations): Don't adjust st_shndx for reserved range.
629 (process_file_header): Mask SHN_XINDEX to values seen in external
630 elf structs. Simplify valid section index tests.
631 (get_32bit_elf_symbols, get_64bit_elf_symbols): Mask SHN_XINDEX.
632 Map reserved st_shndx to internal form.
633 (process_section_groups): Test that group symbol st_shndx is in
634 range, not just non-zero. Delete reserved range check.
635 (get_symbol_index_type): Mask "type" to 16 bits when printing PRC,
640 * readelf.c (arm_attr_tag_VFP_arch): Add "VFPv3-D16".
644 * MAINTAINERS: Update my email address.
648 * dwarf.c (decode_location_expression): Handle
649 DW_OP_PGI_omp_thread_num.
653 * objdump.c (objdump_print_addr): Initialise "sym".
658 * ar.c (usage): Mention -t command line switch.
659 * doc/binutils.texi (ranlib): Document -t command line switch.
663 * objdump.c (objdump_print_addr): If displaying file offsets, show
664 the offset even if there are no symbols available.
665 (dump_section): Display nothing if none of the section is going to
666 be dumped. Display the file offset, if requested, of the location
667 from where the dump starts.
668 * doc/binutils.texi (objdump): Mention that dumping via the -s
669 switch is also affected by the -F option.
673 Re-apply this patch which was accidentally deleted:
676 * doc/binutils.texi: Use "Binutils Index" for index name.
680 * objdump.c (display_file_offsets): New variable.
681 (long_options): Add -F/--file-offsets.
682 (objdump_print_addr_with_sym): If displaying file offsets, print
683 the offset of the given address.
684 (disassemble_bytes): If displaying file offsets, tell the user how
685 many zeroes are skipped and the file offset of the point where
687 (disassemble_section): Only display the name of the section if
688 data is going to be dumped from it.
689 (main): Handle new option. Produce error messages if the start or
690 stop addresses do not make sense.
691 * doc/binutils.texi: Document the new feature.
692 * NEWS: Mention the new feature.
698 * strings.c (integer_arg): Delete function.
699 (string_min): Initialise to 4.
700 (main): Use strtoul to parse integer arguments.
701 Move check for an invalid string length to after all the arguments
703 (usage): Use indentation to indicate that -<n> is a another form
704 of the --bytes= command line option.
708 * dlltool.c (mcore_elf_cache_filename): Add a const qualifier to
710 (scan_obj_filename): Do not drop the const qualifier when calling
711 mcore_elf_cache_filename.
712 (struct fname_cache): Add const qualifier to filename field.
717 * strings.c (main): Set string_min to 4 if it is <= 0.
721 * objdump.c (main): Don't pass unadorned NULL to concat.
726 * configure: Regenerated.
730 * readelf.c (get_machine_flags): Handle Octeon.
734 * readelf.c (dump_relocations): Decode OpenVMS-specific sections.
735 (get_ia64_dynamic_type): Decode OpenVMS-specific tags.
736 (get_dynamic_type): Handle IA64-specific tags.
737 (get_ia64_section_type_name): Handle OpenVMS-specific sections.
738 (get_section_type_name): Handle OS-specific sections (and
739 particularly IA64 OpenVMS one).
740 (get_elf_section_flags): Makes flags static. Add entries for IA64 and
745 * dwarf.c (print_dwarf_vma): New function. Display the value of a
746 dwarf_vma type at a specified precision. Use mingw field type
747 specifier if necessary.
748 (display_debug_loc): Use dwarf_vma type for begin and end values.
749 Use print_dwarf_vma to display their values. Use byte_get_signed
750 in order to correctly detect the -1 escape value.
751 (display_debug_aranges): Likewise.
752 (display_debug_ranges): Likewise.
756 * dwarf.c (display_debug_loc): Correct test for base address
757 entry when 64-bit host dumping 32-bit object.
761 * MAINTAINERS: Remove myself as ix86 maintainer. Add for SPU.
766 * rclex.c (yylex): Also allow the hypen character.
770 * dwarf.c: Include "elf/common.h".
771 (eh_addr_size): Changed to int.
772 (dwarf_regnames_i386): New.
773 (dwarf_regnames_x86_64): Likewise.
774 (dwarf_regnames): Likewise.
775 (dwarf_regnames_count): Likewise.
776 (init_dwarf_regnames): Likewise.
778 (frame_display_row): Properly support different address size.
779 Call regname to get register name.
780 (display_debug_frames): Call regname to get register name.
781 Display DW_CFA_def_cfa_register as DW_CFA_def_cfa_register
782 instead of DW_CFA_def_cfa_reg.
784 * dwarf.h (init_dwarf_regnames): New.
786 * objdump.c: Include "elf-bfd.h".
787 (dump_dwarf): Call init_dwarf_regnames on ELF input.
789 * readelf.c (guess_is_rela): Change argument to int.
790 (parse_args): Remove the undocumented upper case options for
792 (process_file_header): Call init_dwarf_regnames.
796 * readelf.c (process_section_headers): Add m16c handler.
797 (is_16bit_abs_reloc): Recognize R_M32C_16.
801 * prdbg.c: Correct formatter style use.
802 * readelf.c: Likewise.
803 * strings.c: Likewise.
807 * po/ru.po: Updated Russian translation.
811 * MAINTAINERS: Update my email address.
815 * dwarf.c (process_debug_info): Include the CU offset and corrupt
816 version value when reporting unrecognised DWARF version numbers.
817 (load_debug_info): Remember a failed attempt to load and parse the
818 .debug_info section and do not repeat such attempts.
819 (display_debug_lines): Check the return value from load_debug_info
820 and return whilst displaying a warning message if the load failed.
821 (display_debug_loc): Likewise.
822 (display_debug_ranges): Likewise.
823 (DEBUG_INFO_UNAVAILABLE): Value stored in num_debug_info_entries
824 when the .debug_info section could not be loaded/parsed.
825 (process_debug_info): Display the length of the compilation unit
826 in hex, so that it corresponds with the offsets that will follow.
827 Tell the user if the length was 32-bit or 64-bit.
828 If a DIE abbreviation could not be found, tell the user the offset
830 (free_debug_memory): Do not attempt to free any entries in the
831 debug_information array if num_debug_info_entries is set to
832 DEBUG_INFO_UNAVAILABLE.
836 * readelf.c (is_64bit_abs_reloc): Handle R_S390_64.
841 * bucomm.c (list_supported_architectures): Free architecture list
843 * windres.c (set_endianess): Likewise.
844 * windmc.c (set_endianess): Likewise.
849 * binutils/rclex.c: (yylex): Add ':', '_', '\\', and '/' to post
850 characters for name tokens.
854 * prdbg.c (print_vma): Print as long long, if host supports it.
858 * dwarf.c (read_and_display_attr_value): Prefix values that are
859 displayed in hexadecimal with 0x.
860 For the DW_AT_import attribute display the abbreviation number and
861 tag of the imported DIE.
862 (process_debug_info): Warn about lengths that reserved by the
863 DWARF3 specification.
864 Provide more information when corrupted DIEs are detected.
865 Warn if DIE corruption makes the sibling level negative.
867 For older changes see ChangeLog-2007
869 Copyright (C) 2008 Free Software Foundation, Inc.
871 Copying and distribution of this file, with or without modification,
872 are permitted in any medium without royalty provided the copyright
873 notice and this notice are preserved.
879 version-control: never