1 2017-04-03 Nick Clifton <nickc@redhat.com>
4 * readelf.c (get_unwind_section_word): Fix snafu checking for
5 invalid word offsets in ARM unwind information.
7 2017-03-31 Pip Cet <pipcet@gmail.com>
9 * NEWS: Use "WebAssembly" consistently.
10 * testsuite/binutils-all/wasm32/wasm32.exp: Fix copyright notice.
12 2017-03-30 Pip Cet <pipcet@gmail.com>
14 * readelf.c: Add support for wasm32 ELF format WebAssembly files.
15 (guess_is_rela): Likewise.
16 (dump_relocations): Likewise.
17 (is_32bit_abs_reloc): Likewise.
18 (is_none_reloc_): Likewise.
19 * NEWS: Mention the new support.
20 * testsuite/lib/binutils-common.exp (is_elf_format): Mark wasm32
22 (supports_gnu_unique): Mark wasm32 as supporting STB_GNU_UNIQUE.
23 * testsuite/binutils-all/nm.exp: Mark wasm32 as requiring .size annotations.
24 * testsuite/binutils-all/wasm32: New directory.
25 * testsuite/binutils-all/wasm32/create-wasm.d: New file.
26 * testsuite/binutils-all/wasm32/create-wasm.s: Likewise.
27 * testsuite/binutils-all/wasm32/custom-section.d: Likewise.
28 * testsuite/binutils-all/wasm32/custom-section.s: Likewise.
29 * testsuite/binutils-all/wasm32/invalid-wasm-1.d: Likewise.
30 * testsuite/binutils-all/wasm32/invalid-wasm-1.s: Likewise.
31 * testsuite/binutils-all/wasm32/long-sections.d: Likewise.
32 * testsuite/binutils-all/wasm32/long-sections.s: Likewise.
33 * testsuite/binutils-all/wasm32/parse-wasm.d: Likewise.
34 * testsuite/binutils-all/wasm32/parse-wasm.s: Likewise.
35 * testsuite/binutils-all/wasm32/parse-wasm-2.d: Likewise.
36 * testsuite/binutils-all/wasm32/parse-wasm-2.s: Likewise.
37 * testsuite/binutils-all/wasm32/prepared-section.d: Likewise.
38 * testsuite/binutils-all/wasm32/prepared-section.s: Likewise.
39 * testsuite/binutils-all/wasm32/wasm32.exp: New file, run tests.
41 2017-03-29 Alan Modra <amodra@gmail.com>
43 * doc/binutils.texi (objdump): Document PowerPC -M options.
45 2017-03-21 Andi Kleen <ak@linux.intel.com>
47 * objdump.c (unwind_inlines): Add.
48 (option_values): Add OPTION_INLINES.
49 (show_line): Unwind inlines if requested.
50 (main): Parse OPTION_INLINES.
51 (usage): Document --inlines.
52 * doc/binutils.texi: Document --inlines.
55 2017-03-21 Nick Clifton <nickc@redhat.com>
57 * readelf.c (print_gnu_build_attribute_name): Allow stack
58 protection notes to contain numeric values. Use a colon rather
59 than a space to separate a string name from its values. Decode
60 the numeric value of a stack protection note.
61 * objcopy.c (merge_gnu_build_notes): Allow version notes to
62 contain extra text after the protocol version number.
64 2017-03-20 Mark Wielaard <mark@klomp.org>
66 * readelf.c (process_program_headers): Move dynamic_addr check
67 after .dynamic section cross check.
69 2017-03-17 Nick Clifton <nickc@redhat.com>
71 * readelf.c (print_gnu_build_attribute_name): Fix off by one error
72 printing the value for a build note with an ascii name.
74 2017-03-16 Nick Clifton <nickc@redhat.com>
76 * readelf.c (print_gnu_build_attribute_name): Add support for
77 GNU_BUILD_ATTRIBUTE_SHORT_ENUM.
79 2017-03-14 Nick Clifton <nickc@redhat.com>
81 * readelf.c (print_gnu_build_attribute_description): Move symbol
83 (print_symbol_for_build_attribute): New function. ...here.
84 Add to find the best symbol to associate with an OPEN note.
85 Add code to cache the symbol table and string table, so that they
86 are not loaded every time a note is displayed.
87 * testsuite/binutils-all/note-2-32.s: Add a function symbol.
88 * testsuite/binutils-all/note-2-64.s: Likewise.
89 * testsuite/binutils-all/note-2-32.d: Update expected note output.
90 * testsuite/binutils-all/note-2-64.d: Likewise.
92 2017-03-13 Alan Modra <amodra@gmail.com>
93 Taeung Song <treeze.taeung@gmail.com>
95 * objdump.c (update_source_path): Add abfd param. Add struct
96 stat var. Pass to try_print_file_open. Warn if source is more
98 (try_print_file_open, slurp_file): Add struct stat param to
100 (show_line): Call update_source_path with bfd.
102 2017-03-10 Chia-Hao Lo <fcamel@gmail.com>
105 * objdump.c (main): Set do_wide with --wide.
107 2017-03-10 Nick Clifton <nickc@redhat.com>
109 * readelf.c (get_machine_name): Rearrange switch table in order of
110 increasing machine number. Add missing entries.
112 2017-03-08 H.J. Lu <hongjiu.lu@intel.com>
115 * readelf.c (decode_x86_isa): Change argument to unsigned int.
116 (print_gnu_property_note): Retrieve property type and datasz as
117 4-byte integer. Consolidate property datasz check. Check
118 GNU_PROPERTY_LOPROC and GNU_PROPERTY_LOUSER.
119 * testsuite/binutils-all/i386/pr21231a.d: New file.
120 * testsuite/binutils-all/i386/pr21231a.s: Likewise.
121 * testsuite/binutils-all/i386/pr21231b.d: Likewise.
122 * testsuite/binutils-all/i386/pr21231b.s: Likewise.
123 * testsuite/binutils-all/x86-64/pr21231a.d: Likewise.
124 * testsuite/binutils-all/x86-64/pr21231a.s: Likewise.
125 * testsuite/binutils-all/x86-64/pr21231b.d: Likewise.
126 * testsuite/binutils-all/x86-64/pr21231b.s: Likewise.
128 2017-03-06 Nick Clifton <nickc@redhat.com>
130 * readelf.c (print_gnu_build_attribute_name): Read byte values
131 from the name string as unsigned bytes.
132 (process_notes_at): Use memcpy to copy an unterminated name
135 2017-03-06 Sam Thursfield <sam.thursfield@codethink.co.uk>
137 * configure.ac (AC_CHECK_DECLS): Add asprintf.
138 * config.in: Regenerate.
139 * configure: Regenerate.
141 2017-03-02 Nick Clifton <nickc@redhat.com>
143 * readelf.c (print_gnu_build_attribute_description): Use global
144 symbols for OPEN attributes if at all possible.
145 * objcopy.c (is_merged_note_section): Support build note sections
146 without the SHF_GNU_BUILD_NOTE section flag set.
148 2017-03-02 Jan Kratochvil <jan.kratochvil@redhat.com>
150 * dwarf.c (debug_displays_assert): New static assertion.
152 2017-03-02 Jan Kratochvil <jan.kratochvil@redhat.com>
154 * dwarf.h (enum dwarf_section_display_enum): Add loclists and rnglists.
156 2017-03-01 Nick Clifton <nickc@redhat.com>
158 * readelf.c (get_note_type): Add support for GNU_BUILD_NOTEs.
159 (get_gnu_elf_note_type): Add support for GNU_PROPERTY_NOTEs.
160 (decode_x86_isa): New function.
161 (print_gnu_property_note): New function.
162 (print_gnu_note): Handle GNU_PROPERTY_NOTEs.
163 (print_gnu_build_attribute_description): New function.
164 (print_gnu_build_attribute_name): New function.
165 (process_note): Add support for GNU_BUILD_NOTEs.
166 * objcopy.c (--merge-notes): New command line option.
167 (copy_options): Add merge-notes.
168 (copy_usage): Likewise.
169 (is_merge_note_section): New function.
170 (merge_gnu_build_notes): New function.
171 (copy_object): Merge note sections if asked to do so.
172 (skip_section): Add skip_copy parameter. Add support for skipping
173 merged note sections.
174 (copy_relocations_in_section): Update call to skip_section.
175 (copy_section): Likewise.
176 (copy_main): Add support for merge-notes option.
177 * doc/binutils.texi: Document the new option to objcopy.
178 * NEWS: Mention the new feature.
179 * testsuite/binutils-all/note-2-32.d: New test. Checks note
180 merging on 32-bit targets.
181 * testsuite/binutils-all/note-2-32.s: New test source file.
182 * testsuite/binutils-all/note-2-64.d: New test. Like note-2-32.d
183 but for 64-bit targets.
184 * testsuite/binutils-all/note-2-64.s: New test source file.
185 * testsuite/binutils-all/objcopy.exp: Run the new test.
187 2017-02-28 Peter Bergner <bergner@vnet.ibm.com>
189 * objdump.c (main): Use remove_whitespace_and_extra_commas.
191 2017-02-27 Jan Kratochvil <jan.kratochvil@redhat.com>
193 Fix compilation with GCC 4.4.7.
194 * dwarf.c (display_loclists_list, display_debug_rnglists_list):
195 Initialize begin and end.
197 2017-02-25 Alan Modra <amodra@gmail.com>
199 * testsuite/binutils-all/dw5.S: Replace .string with .asciz.
200 Support hpux .comm variant.
201 * testsuite/binutils-all/readelf.exp: Define HPUX when assembling
202 dw5 test for hppa64-hpux.
204 2017-02-24 Nick Clifton <nickc@redhat.com>
206 * readelf.c (show_name, do_dynamic, do_syms, do_dyn_syms,
207 (do_reloc, do_sections, do_section_groups, do_section_details,
208 (do_segments, do_unwind, do_using_dynamic, do_header, do_dump,
209 (do_version, do_histogram, do_debugging, do_arch, do_notes,
210 (do_archive_index, is_32bit_elf, decompress_dumps): Use
212 (parse_args): Treat the do_* variables as booleans.
213 (print_vma): Return an unsigned int.
214 (print_symbol): Change width parameter to signed int.
215 (is_ia64_vms): Change return type to bfd_boolean.
216 (guess_is_rela): Likewise.
217 (slurp_rela_relocs): Likewise.
218 (slurp_rel_relocs): Likewise.
219 (dump_relocations): Likewise.
220 (process_file_header): Likewise.
221 (get_program_headers): Likewise.
222 (process_program_headers): Likewise.
223 (process_section_headers): Likewise.
224 (process_section_groups): Likewise.
225 (dump_ia64_vms_dynamic_fixups): Likewise.
226 (dump_ia64_vms_dynamic_relocs): Likewise.
227 (process_ia64_vms_dynamic_relocs): Likewise.
228 (process_relocs): Likewise.
229 (dump_ia64_unwind): Likewise.
230 (ia64_process_unwind): Likewise.
231 (dump_hppa_unwind): Likewise.
232 (slurp_hppa_unwind_table): Likewise.
233 (hppa_process_unwind): Likewise.
234 (decode_arm_unwind_bytecode): Likewise.
235 (decode_tic6x_unwind_bytecode): Likewise.
236 (decode_arm_unwind): Likewise.
237 (dump_arm_unwind): Likewise.
238 (arm_process_unwind): Likewise.
239 (process_unwind): Likewise.
240 (get_32bit_dynamic_section): Likewise.
241 (get_64bit_dynamic_section): Likewise.
242 (process_dynamic_section): Likewise.
243 (process_version_sections): Likewise.
244 (process_symbol_table): Likewise.
245 (process_syminfo): Likewise.
246 (apply_relocations): Likewise.
247 (disassemble_section): Likewise.
248 (dump_section_as_strings): Likewise.
249 (dump_section_as_bytes): Likewise.
250 (load_specific_debug_section): Likewise.
251 (load_debug_section): Likewise.
252 (display_debug_section): Likewise.
253 (process_section_contents): Likewise.
254 (process_attributes): Likewise.
255 (process_nds32_specific): Likewise.
256 (process_gnu_liblist): Likewise.
257 (print_core_note): Likewise.
258 (print_gnu_note): Likewise.
259 (print_v850_note): Likewise.
260 (process_netbsd_elf_note): Likewise.
261 (print_stapsdt_note): Likewise.
262 (print_ia64_vms_note): Likewise.
263 (process_note): Likewise.
264 (process_notes_at): Likewise.
265 (process_corefile_note_segments): Likewise.
266 (process_v850_notes): Likewise.
267 (process_note_sections): Likewise.
268 (process_notes): Likewise.
269 (process_arch_specific): Likewise.
270 (get_file_header): Likewise.
271 (process_object): Likewise.
272 (process_archive): Likewise.
273 (process_file): Likewise.
274 (section_subset): Make static.
275 (get_mips_reg_size): Return a signed integer.
276 (process_object): Reverse the logic of the return value.
277 (process_archive): Likewise.
278 (process_file): Likewise.
279 (process_program_headers): Fix snafu - if the program headers are
280 not available then this is not a cause to fail.
281 (process_corefile_note_segments): Likewise.
283 2017-02-24 Maciej W. Rozycki <macro@imgtec.com>
285 * readelf.c (get_ver_flags): Tidy the formatting of the string
288 2017-02-24 Maciej W. Rozycki <macro@imgtec.com>
290 * readelf.c (process_version_sections) <SHT_GNU_verdef>: Make
292 <SHT_GNU_verneed>: Likewise.
294 2017-02-24 Maciej W. Rozycki <macro@imgtec.com>
296 * readelf.c (process_version_sections) <SHT_GNU_verdef>: Limit
297 the number of entries processed by the section size. Don't
298 break out of the loop if `ent.vd_next' is 0.
300 2017-02-23 Jan Kratochvil <jan.kratochvil@redhat.com>
302 * testsuite/binutils-all/dw5.S: New file.
303 * testsuite/binutils-all/dw5.W: New file.
304 * testsuite/binutils-all/readelf.exp (readelf -wiaoRlL): New test.
306 2017-02-23 Jan Kratochvil <jan.kratochvil@redhat.com>
308 * dwarf.c (read_and_display_attr_value): Support DW_FORM_data16.
310 2017-02-23 Jan Kratochvil <jan.kratochvil@redhat.com>
312 * dwarf.c (display_debug_macro): Support DWARF-5. Rename
315 2017-02-23 Jan Kratochvil <jan.kratochvil@redhat.com>
317 * dwarf.c (decode_location_expression): Support DW_OP_implicit_pointer,
318 DW_OP_const_type, DW_OP_regval_type, DW_OP_deref_type, DW_OP_convert
319 and DW_OP_reinterpret.
320 (read_and_display_attr_value): Support DW_AT_call_value,
321 DW_AT_call_data_value, DW_AT_call_target and
322 DW_AT_call_target_clobbered.
324 2017-02-23 Jan Kratochvil <jan.kratochvil@redhat.com>
326 * dwarf.c (fetch_indirect_line_string): New function.
327 (abbrev_attr): New field implicit_const.
328 (add_abbrev_attr): New parameter implicit_const.
329 (process_abbrev_section): Support DW_FORM_implicit_const.
330 (decode_location_expression): Support DW_OP_entry_value.
331 (read_and_display_attr_value): Add parameter implicit_const. Support
332 DW_FORM_line_strp and DW_FORM_implicit_const.
333 (read_and_display_attr): Add parameter implicit_const.
334 (process_debug_info): Support line_str and DWARF-5.
335 (read_debug_line_header): Support DWARF-5.
336 (display_formatted_table): New function.
337 (display_debug_lines_raw): New parameter file. Support DWARF-5.
338 (display_debug_lines_decoded): New parameter fileptr. Support DWARF-5.
339 (display_debug_lines): Pass file parameter.
340 (display_debug_macro): Update read_and_display_attr_value caller.
341 (display_debug_abbrev): Support DW_FORM_implicit_const.
342 (display_loclists_list): New function.
343 (display_loc_list): Support .debug_loclists.
344 (display_debug_ranges_list): New function from display_debug_ranges.
345 (display_debug_rnglists_list): New function.
346 (display_debug_ranges): Support .debug_rnglists.
347 (debug_displays): Add .debug_line_str, .debug_loclists and
349 * dwarf.h: Include dwarf2.h
350 (DWARF2_Internal_LineInfo): Add li_offset_size.
351 (DWARF2_Internal_CompUnit): Add cu_unit_type.
352 (enum dwarf_section_display_enum): Add line_str.
353 * readelf.c (process_section_headers): Add rnglists and loclists.
355 2017-02-23 Jan Kratochvil <jan.kratochvil@redhat.com>
357 * dwarf.c (display_block): Add parameter delimiter.
358 (decode_location_expression): Update display_block callers.
359 (read_and_display_attr_value): Add parameter delimiter.
360 (read_and_display_attr, display_debug_macro): Update
361 read_and_display_attr_value caller.
363 2017-02-23 Jan Kratochvil <jan.kratochvil@redhat.com>
365 * dwarf.c (display_loc_list): Use dwarf_vma for offset, base_address
367 (display_loc_list_dwo): Use dwarf_vma for offset.
368 (display_debug_loc): Use dwarf_vma for offset, base_address.
369 (struct range_entry, range_entry_compar): Use dwarf_vma for
371 (display_debug_ranges): Use dwarf_vma for ranges_offset, offset and
374 2017-02-23 Nick Clifton <nickc@redhat.com>
376 * readelf.c (display_tag_value): Use an explicit signed type for
378 (display_gnu_attributes): Use an unsigned integer type for
380 (display_power_gnu_attribute): Likewise.
381 (display_s390_gnu_attribute): Likewise.
382 (display_sparc_hwcaps): Likewise.
383 (display_sparc_hwcaps2): Likewise.
384 (display_sparc_gnu_attribute): Likewise.
385 (display_mips_gnu_attribute): Likewise.
386 (display_tic6x_attribute): Likewise.
387 (display_raw_attribute): Likewise.
388 (process_attributes): Likewise.
389 (process_arm_specific): Delete redundant function.
390 (process_power_specific): Likewise.
391 (process_s390_specific): Likewise.
392 (process_sparc_specific): Likewise.
393 (process_tic6x_specific): Likewise.
394 (process_msp430x_specific): Likewise.
395 (display_public_gnu_attributes): New function. Displays known
396 information about an unknown gnu attribute.
397 (display_generic_attribute): New function. Calls
398 display_tag_value for non-nul tags.
399 (process_arch_specific): Call process_attributes even for
400 architectures not known to specifically support gnu attributes.
402 2017-02-22 Jan Kratochvil <jan.kratochvil@redhat.com>
404 * dwarf.c (decode_location_expression): Display also OP.
406 2017-02-22 Maciej W. Rozycki <macro@imgtec.com>
408 * readelf.c (process_version_sections) <SHT_GNU_verdef>: Print a
409 new line between the heading and the first version definition
412 2017-02-20 Nick Clifton <nickc@redhat.com>
415 * dwarf.c (cu_tu_indexes_read): Move into...
416 (load_cu_tu_indexes): ... here. Change the variable into
417 tri-state. Change the function into boolean, returning
418 false if the indicies could not be loaded.
419 (find_cu_tu_set): Return NULL if the indicies could not be
422 2017-02-17 Nick Clifton <nickc@redhat.com>
425 * readelf.c (find_section_in_set): Test for invalid section
428 2017-02-17 Nick Clifton <nickc@redhat.com>
430 * readelf.c (get_section_type_name): Add decoding of GNU section
433 2017-02-15 Nick Clifton <nickc@redhat.com>
435 * MAINTAINERS: (MIPS, MN10300): Move Eric Christopher to Past
438 2017-02-14 Nick Clifton <nickc@redhat.com>
441 * readelf.c (dump_section_as_strings): Reset the start address if
442 no decompression is perfromed.
443 (dump_section_as_bytes): Likewise.
445 2017-02-14 Nick Clifton <nickc@redhat.com>
448 * rddbg.c (read_symbol_stabs_debugging_info): Check for a null or
451 2017-02-14 Nick Clifton <nickc@redhat.com>
454 * stabs.c (parse_stab_enum_type): Check for corrupt NAME:VALUE
456 (parse_number): Exit early if passed an empty string.
458 2017-02-14 Nick Clifton <nickc@redhat.com>
461 * readelf.c (IN_RANGE): New macro. Tests for an address + offset
462 being within a given range.
463 (target_specific_reloc_handling): Use macro to test for underflow
464 as well as overflow of reloc offset.
466 2017-02-13 Nick Clifton <nickc@redhat.com>
469 * nm.c (file_symbol): Add test of string length before testing
472 2017-02-13 Nick Clifton <nickc@redhat.com>
475 * readelf.c (dump_section_as_bytes): Handle the case where
476 uncompress_section_contents returns false.
477 (dump_section_as_bytes, load_specific_debug_section): Likewise.
479 2017-02-13 Nick Clifton <nickc@redhat.com>
482 * readelf.c (get_compression_header): Add size parameter. Check
483 size against sizeof compression header before attempting to
485 (process_section_headers): Pass size to get_compression_header.
486 (dump_section_as_strings): Likewise.
487 (dump_section_as_bytes): Likewise.
488 (load_specific_debug_section): Likewise.
490 2017-02-13 Nick Clifton <nickc@redhat.com>
493 * readelf.c (process_version_sections): Include size of auxillary
494 version information when checking for buffer overflow.
496 2017-02-13 Nick Clifton <nickc@redhat.com>
499 * readelf.c (process_section_contents): Fix off by one error
500 reporting un-dumped sections.
502 2017-02-13 Nick Clifton <nickc@redhat.com>
505 * readelf.c (target_specific_reloc_handling): Add num_syms
506 parameter. Check for symbol table overflow before accessing
507 symbol value. If reloc pointer is NULL, discard all saved state.
508 (apply_relocations): Pass num_syms to target_specific_reloc_handling.
509 Call target_specific_reloc_handling with a NULL reloc pointer
510 after processing all of the relocs.
512 2017-02-13 Nick Clifton <nickc@redhat.com>
515 * readelf.c (target_specific_reloc_handling): Add end parameter.
516 Check for buffer overflow before writing relocated values.
517 (apply_relocations): Pass end to target_specific_reloc_handling.
519 2017-01-27 Dilyan Palauzov <dilyan.palauzov@aegee.org>
520 Nick Clifton <nickc@redhat.com>
523 * doc/binutils.texi (ar): Extend documentation of the --plugin
524 option. Include a description of where the plugins should be
528 2017-01-23 Nick Clifton <nickc@redhat.com>
530 * MAINTAINERS: Add Bernd to Past Maintainers section.
531 (SCORE): Remove Mei Ligang as maintainer. Add to Past Maintainers
534 2017-01-23 Bernd Schmidt <bschmidt@redhat.com>
536 * MAINTAINERS (BFIN): Remove myself as Blackfin maintainer.
538 2017-01-20 Andrew Burgess <andrew.burgess@embecosm.com>
540 * objdump.c (dump_section_header): Extract max section name length
541 from data parameter, use this when formatting output.
542 (find_longest_section_name): New function.
543 (dump_headers): Calculate longest section name when in wide mode,
544 reformat to unify printing of header line.
546 2017-01-18 Bernhard Rosenkranzer <bero@lindev.ch>
549 * arlex.l: Support processing with flex 2.6.3.
550 * deflex.l: Likewise.
552 2017-01-17 Dmitry Timoshkov <dmitry@baikal.ru>
554 * resbin.c: Optional dialog control data immediately follows
555 the control description without alignment.
556 * testsuite/binutils-all/windres/controldata.rc: New test.
558 * testsuite/binutils-all/windres/controldata.rsd: New test.
560 2017-01-12 Nick Clifton <nickc@redhat.com>
563 * NEWS: Mention the new feature.
564 * testsuite/binutils-all/objdump.exp (test_build_id_debuglink):
565 New proc to test the location of separate debug info files using
568 2017-01-10 Nick Clifton <nickc@redhat.com>
571 * stabs.c (parse_stab_members): Fix thinko checking for g++
572 version 1 stabs information.
574 2017-01-09 Nick Clifton <nickc@redhat.com>
576 * objdump.c (display_file): Add new parameter 'last_file'. If
577 last_file is true, do not call bfd_close at the end of the
579 (main): Set the value of the last_file parameter when calling
582 2017-01-09 Alan Modra <amodra@gmail.com>
584 * readelf.c (process_section_headers): Correct .rel.dyn/.rela.dyn
587 2017-01-06 Nick Clifton <nickc@redhat.com>
589 * MAINTAINERS: Move Paul Brook to the Past Maintainers section.
591 2017-01-04 Dilan Palauzov <dilyan.palauzov@aegee.org>
594 * syslex.l (option): Add noyywrap
597 2017-01-02 Alan Modra <amodra@gmail.com>
599 Update year range in copyright notice of all files.
601 For older changes see ChangeLog-2016
603 Copyright (C) 2017 Free Software Foundation, Inc.
605 Copying and distribution of this file, with or without modification,
606 are permitted in any medium without royalty provided the copyright
607 notice and this notice are preserved.
613 version-control: never