2016-07-16 06:02:16 +02:00
|
|
|
|
2016-07-16 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ar.c: Include plugin-api.h.
|
|
|
|
|
* nm.c: Likewise.
|
|
|
|
|
|
2016-07-16 06:00:41 +02:00
|
|
|
|
2016-07-16 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* bucomm.c: Don't include libbfd.h.
|
|
|
|
|
(endian_string, display_target_list): Delete forward declaration.
|
|
|
|
|
(display_info_table, display_target_tables): Likewise.
|
|
|
|
|
(LONGEST_ARCH): Delete.
|
|
|
|
|
(struct display_target): New.
|
|
|
|
|
(do_display_target): New function.
|
|
|
|
|
(display_target_list, display_info): Rewrite functions.
|
|
|
|
|
(display_info_table): Delete.
|
|
|
|
|
(do_info_size, do_info_header, do_info_row): New functions.
|
|
|
|
|
|
2016-07-16 05:58:30 +02:00
|
|
|
|
2016-07-16 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* elfcomm.h (HOST_WIDEST_INT): Move to..
|
|
|
|
|
* sysdep.h: ..here.
|
|
|
|
|
* od-macho.c: Don't include libbfd.h. Do include dwarf.h
|
|
|
|
|
(dump_dyld_info_rebase): Use read_leb128 rather than
|
|
|
|
|
read_unsigned_leb128.
|
|
|
|
|
(dump_dyld_info_bind, dump_dyld_info_export_1): Likewise.
|
|
|
|
|
(dump_segment_split_info): Likewise.
|
|
|
|
|
(dump_dyld_info): Rename vars to avoid shadowing dwarf.h enums.
|
|
|
|
|
(dump_load_command): Likewise.
|
|
|
|
|
|
2016-07-16 05:55:11 +02:00
|
|
|
|
2016-07-16 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ar.c: Don't include libbfd.h.
|
|
|
|
|
* objcopy.c: Likewise.
|
|
|
|
|
* bucomm.c (bfd_get_archive_filename): Use xmalloc rather than
|
|
|
|
|
bfd_malloc.
|
|
|
|
|
|
2016-07-15 09:03:53 +02:00
|
|
|
|
2016-07-15 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/binutils-all/remove-relocs-01.s: Use .dc.a, not .word.
|
|
|
|
|
|
objcopy/strip: Add option --remove-relocations=SECTIONPATTERN
The objcopy and strip tools make use of the bfd library to manipulate
the state of the input file (to produce an output file). Within the
input file (for ELF at least), relocations are held within a section,
and so, if the user wanted to remove the relocations, but keep the
section to which the relocations would have been applied, it is tempting
to think that specifying the name of a relocation section to objcopy's
--remove-section option might do what you want, for example:
objcopy --remove-section=.rela.text input.elf output.elf
However, this does not work. The reason is that when the input file is
loaded, relocations are not managed as sections, but are, instead,
loaded as data associated with the section to which the relocations
would be applied. In our example above the relocations in '.rela.text'
are held as data on the section '.text' once 'input.elf' is loaded.
One task that objcopy and strip do is copy the relocations from the
input file to the output file if the section is also being copied from
the input file to the output file.
This commit adds a new command line option for objcopy and strip,
--remove-relocations, which can be used to remove the relocations, while
keeping the section that the relocations would have been applied to, for
example:
objcopy --remove-relocations=.text input.elf output.elf
in this case the section '.text' will appear in both 'input.elf' and
'output.elf', but any relocations in 'input.elf' that apply to '.text'
will not be present in 'output.elf'.
I have also added a special case to the handling of --remove-section
that spots if a user tries to remove a relocation section (currently
this is done by spotting the '.rela.' or '.rel.' prefix) and forwards
the request to --remove-relocations.
As with --remove-section and --only-section the --remove-relocations
option supports the '!' prefix on the section-patterns it takes to allow
for sections to be specifically not matched.
There are tests for all the new functionality.
binutils/ChangeLog:
* doc/binutils.texi (objcopy): Document 'remove-relocations'.
(strip): Likewise.
* objcopy.c (SECTION_CONTEXT_REMOVE_RELOCS): Define.
(enum command_line_switch): Add 'OPTION_REMOVE_RELOCS'.
(struct option strip_options): Add 'remove-relocations'.
(struct option copy_options): Likewise.
(copy_usage): Likewise.
(strip_usage): Likewise.
(handle_remove_relocations_option): New function.
(discard_relocations): New function.
(handle_remove_section_option): New function.
(copy_relocations_in_section): Use discard_relocations.
(strip_main): Use handle_remove_section_option for
'remove-section', and handle 'remove-relocations' option.
(copy_main): Likewise.
* testsuite/binutils-all/objcopy.exp: Run new tests.
* testsuite/binutils-all/remove-relocs-01.d: New file.
* testsuite/binutils-all/remove-relocs-01.s: New file.
* testsuite/binutils-all/remove-relocs-02.d: New file.
* testsuite/binutils-all/remove-relocs-03.d: New file.
* testsuite/binutils-all/remove-relocs-04.d: New file.
* testsuite/binutils-all/remove-relocs-05.d: New file.
* testsuite/binutils-all/remove-relocs-06.d: New file.
2015-08-21 21:08:26 +02:00
|
|
|
|
2016-07-14 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* doc/binutils.texi (objcopy): Document 'remove-relocations'.
|
|
|
|
|
(strip): Likewise.
|
|
|
|
|
* objcopy.c (SECTION_CONTEXT_REMOVE_RELOCS): Define.
|
|
|
|
|
(enum command_line_switch): Add 'OPTION_REMOVE_RELOCS'.
|
|
|
|
|
(struct option strip_options): Add 'remove-relocations'.
|
|
|
|
|
(struct option copy_options): Likewise.
|
|
|
|
|
(copy_usage): Likewise.
|
|
|
|
|
(strip_usage): Likewise.
|
|
|
|
|
(handle_remove_relocations_option): New function.
|
|
|
|
|
(discard_relocations): New function.
|
|
|
|
|
(handle_remove_section_option): New function.
|
|
|
|
|
(copy_relocations_in_section): Use discard_relocations.
|
|
|
|
|
(strip_main): Use handle_remove_section_option for
|
|
|
|
|
'remove-section', and handle 'remove-relocations' option.
|
|
|
|
|
(copy_main): Likewise.
|
|
|
|
|
* testsuite/binutils-all/objcopy.exp: Run new tests.
|
|
|
|
|
* testsuite/binutils-all/remove-relocs-01.d: New file.
|
|
|
|
|
* testsuite/binutils-all/remove-relocs-01.s: New file.
|
|
|
|
|
* testsuite/binutils-all/remove-relocs-02.d: New file.
|
|
|
|
|
* testsuite/binutils-all/remove-relocs-03.d: New file.
|
|
|
|
|
* testsuite/binutils-all/remove-relocs-04.d: New file.
|
|
|
|
|
* testsuite/binutils-all/remove-relocs-05.d: New file.
|
|
|
|
|
* testsuite/binutils-all/remove-relocs-06.d: New file.
|
|
|
|
|
* NEWS: Mention new option.
|
|
|
|
|
|
2015-08-24 14:02:39 +02:00
|
|
|
|
2016-07-14 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* objcopy.c (find_section_list): Handle section patterns starting
|
|
|
|
|
with '!' being a non-matching pattern.
|
|
|
|
|
* doc/binutils.texi (objcopy): Give example of using '!' with
|
|
|
|
|
--remove-section and --only-section.
|
|
|
|
|
(strip): Give example of using '!' with --remove-section.
|
|
|
|
|
* testsuite/binutils-all/data-sections.s: New file.
|
|
|
|
|
* testsuite/binutils-all/only-section-01.d: New file.
|
|
|
|
|
* testsuite/binutils-all/remove-section-01.d: New file.
|
|
|
|
|
* testsuite/binutils-all/objcopy.exp: Run new tests.
|
|
|
|
|
* NEWS: Mention new feature.
|
|
|
|
|
|
2016-07-09 06:55:31 +02:00
|
|
|
|
2016-07-09 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/20337
|
|
|
|
|
* objdump.c (compare_symbols): For ELF, sort same value/type
|
|
|
|
|
symbols according to size.
|
|
|
|
|
|
2016-07-05 12:28:46 +02:00
|
|
|
|
2016-07-05 Andre Vieria <andre.simoesdiasvieira@arm.com>
|
|
|
|
|
|
|
|
|
|
* objdump.c (dump_section_header): Rename SEC_ELF_NOREAD
|
|
|
|
|
to SEC_ELF_NOREAD.
|
|
|
|
|
* readelf.c (get_elf_section_flags): Rename ARM_NOREAD to
|
|
|
|
|
ARM_PURECODE and SHF_ARM_NOREAD to SHF_ARM_PURECODE.
|
|
|
|
|
(process_section_headers): Rename noread to purecode.
|
|
|
|
|
|
|
|
|
|
* section.c (SEC_ELF_NOREAD): Rename to ...
|
|
|
|
|
(SEC_ELF_PURECODE): ... this.
|
|
|
|
|
|
2016-07-01 13:35:01 +02:00
|
|
|
|
2016-07-01 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* prdbg.c (pr_enum_type): Use a buffer big enough to hold an
|
|
|
|
|
extremely large decimal value.
|
|
|
|
|
(pr_range_type): Likewise.
|
|
|
|
|
(pr_array_type): Likewise.
|
|
|
|
|
(pr_struct_field): Likewise.
|
|
|
|
|
(pr_class_baseclass): Likewise.
|
|
|
|
|
(pr_class_method_variant): Likewise.
|
|
|
|
|
(pr_tag_type): Likewise.
|
|
|
|
|
(pr_int_constant): Likewise.
|
|
|
|
|
(pr_typed_constant): Likewise.
|
|
|
|
|
(pr_variable): Likewise.
|
|
|
|
|
(pr_function_parameter): Likewise.
|
|
|
|
|
(pr_start_block): Likewise.
|
|
|
|
|
(pr_lineno): Likewise.
|
|
|
|
|
(pr_end_block): Likewise.
|
|
|
|
|
(tg_enum_type): Likewise.
|
|
|
|
|
(tg_int_constant): Likewise.
|
|
|
|
|
(tg_typed_constant): Likewise.
|
|
|
|
|
(tg_start_block): Likewise.
|
|
|
|
|
|
2016-07-01 11:32:45 +02:00
|
|
|
|
2016-07-01 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/binutils-all/objcopy.exp
|
|
|
|
|
(objcopy_test_without_global_symbol): Expect this test to fail on
|
|
|
|
|
the AArch64 and ARM targets, since they preserve their mapping
|
|
|
|
|
symbols.
|
|
|
|
|
|
2016-07-01 10:57:46 +02:00
|
|
|
|
2016-07-01 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* NEWS: Add marker for 2.27.
|
|
|
|
|
|
2016-06-29 12:09:06 +02:00
|
|
|
|
2016-07-30 Tristan Gingold <gingold@adacore.com>
|
|
|
|
|
|
|
|
|
|
* doc/binutils.texi (objdump): Fix mis-placement.
|
|
|
|
|
|
2016-06-28 15:05:34 +02:00
|
|
|
|
2016-06-28 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/binutils-all/ar.exp: Relax previous restriction on
|
|
|
|
|
Alpha targets. Allow ELF based Alpha targets.
|
|
|
|
|
|
2016-06-28 14:21:36 +02:00
|
|
|
|
2016-06-28 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/binutils-all/ar.exp: Use `supports_gnu_unique' with
|
|
|
|
|
the `unique_symbol' test.
|
|
|
|
|
|
2016-06-28 11:29:33 +02:00
|
|
|
|
2016-06-28 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR 20304
|
|
|
|
|
* objdump.c (objdump_print_symname): Don't attempt to retrieve
|
|
|
|
|
version info from synthetic symbols.
|
|
|
|
|
|
2016-06-23 14:41:57 +02:00
|
|
|
|
2016-06-24 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* objcopy.c (find_section_rename): Forward declare. Remove
|
|
|
|
|
ibfd and sec_ptr param. Add old_name param. Allow for NULL
|
|
|
|
|
returned_flags. Move read of section name and flags to..
|
|
|
|
|
(setup_section): ..here. Update find_section_rename call.
|
|
|
|
|
(filter_symbols): Rename section symbols for renamed sections.
|
|
|
|
|
(copy_object): Call filter_symbols when renamed sections.
|
|
|
|
|
* testsuite/lib/binutils-common.exp (is_bad_symtab): New.
|
|
|
|
|
* testsuite/binutils-all/update-section.exp: Revert 96037eb0
|
|
|
|
|
mips xfail.
|
|
|
|
|
* testsuite/binutils-all/objcopy.exp (copy_executable): Use
|
|
|
|
|
is_bad_symtab.
|
|
|
|
|
(localize-hidden-1): xfail if is_bad_symtab.
|
|
|
|
|
* testsuite/binutils-all/readelf.exp: Use is_bad_symtab to select
|
|
|
|
|
between mips/tmips.
|
|
|
|
|
|
2016-06-24 03:20:25 +02:00
|
|
|
|
2016-06-24 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* objdump.c (struct print_file_list): Add "max_printed".
|
|
|
|
|
(try_print_file_open): Init new field.
|
|
|
|
|
(show_line): Don't show 5 context lines when redisplaying source.
|
|
|
|
|
|
2016-06-22 15:42:26 +02:00
|
|
|
|
2016-06-22 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/binutils-all/ar.exp: Skip tests for Alpha target.
|
|
|
|
|
Skip bfdtest1 tests for tic30 target.
|
|
|
|
|
* testsuite/binutils-all/arm/objdump.exp: Skip for aout arm
|
|
|
|
|
target.
|
|
|
|
|
* testsuite/binutils-all/compress.exp: Expect some tests to fail
|
|
|
|
|
on the nds32.
|
|
|
|
|
* testsuite/binutils-all/copy-3.d: Skip for go32 targets.
|
|
|
|
|
* testsuite/binutils-all/copy-4.d: Skip for AIX and linuxecoff
|
|
|
|
|
targets.
|
|
|
|
|
* testsuite/binutils-all/nm.exp: Treat beos based targets as ELF
|
|
|
|
|
targets.
|
|
|
|
|
* testsuite/binutils-all/objcopy.exp: Only run reverse bytes tests
|
|
|
|
|
if the bintest.o file was created. Use the
|
|
|
|
|
get_standard_section_names proc to get the name of the data
|
|
|
|
|
section.
|
|
|
|
|
* testsuite/binutils-all/objdump.exp: Update regexps to allow for
|
|
|
|
|
RX section names.
|
|
|
|
|
* testsuite/binutils-all/readelf.exp: Use
|
|
|
|
|
get_standard_section_names proc to get the name of the data
|
|
|
|
|
section.
|
|
|
|
|
* testsuite/binutils-all/readelf.r: Allow for non standard text
|
|
|
|
|
section names.
|
|
|
|
|
* testsuite/binutils-all/readelf.s: Update regexps for tilepro.
|
|
|
|
|
* testsuite/binutils-all/size.exp: Allow for non standard section
|
|
|
|
|
names.
|
|
|
|
|
* testsuite/binutils-all/update-section.exp: Expect comapre 1vs4
|
|
|
|
|
to fail on mips targets.
|
|
|
|
|
* testsuite/lib/utils-lib.exp (default_binutils_run): Use
|
|
|
|
|
get_standard_section_names proc.
|
|
|
|
|
(run_dump_test): Likewise.
|
|
|
|
|
(proc get_standard_section_names): New proc.
|
|
|
|
|
|
2016-06-22 10:55:50 +02:00
|
|
|
|
2016-06-22 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (dynamic_section_mips_val): Increase size of timebuf.
|
|
|
|
|
(process_mips_specific): Likewise.
|
|
|
|
|
(process_gnu_liblist): Likewise.
|
|
|
|
|
|
2016-06-21 15:03:08 +02:00
|
|
|
|
2016-06-21 Graham Markall <graham.markall@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (decode_ARC_machine_flags): Remove E_ARC_MACH_NPS400
|
|
|
|
|
case.
|
|
|
|
|
|
2016-06-15 17:25:34 +02:00
|
|
|
|
2016-06-15 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (is_24bit_abs_reloc): Add support for R_FT32_20
|
|
|
|
|
reloc.
|
|
|
|
|
|
2016-06-11 15:09:06 +02:00
|
|
|
|
2016-06-14 John Baldwin <jhb@FreeBSD.org>
|
|
|
|
|
|
|
|
|
|
* objcopy.c (do_elf_stt_common): Use correct type.
|
|
|
|
|
|
2016-06-14 05:54:37 +02:00
|
|
|
|
2016-06-14 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* ar.c: Expand uses of bfd_my_archive.
|
|
|
|
|
* size.c: Likewise.
|
|
|
|
|
|
2016-06-14 05:42:00 +02:00
|
|
|
|
2016-06-14 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
PR ld/20241
|
|
|
|
|
* bucomm.c (bfd_get_archive_filename): Return file name within thin
|
|
|
|
|
archive.
|
|
|
|
|
|
2016-06-02 12:34:49 +02:00
|
|
|
|
2016-06-02 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
2016-06-02 17:20:27 +02:00
|
|
|
|
PR 20089
|
|
|
|
|
* objcopy.c (group_signature): Fail if the input symbol table has
|
2016-06-02 17:32:45 +02:00
|
|
|
|
not been loaded, or if the sh_info field of the group header is 0.
|
2016-06-02 17:20:27 +02:00
|
|
|
|
|
2016-06-02 12:34:49 +02:00
|
|
|
|
* dwarf.c (display_debug_frames): Do not display any
|
|
|
|
|
interpretation if the block consists solely of DW__CFA_NOPs.
|
|
|
|
|
|
2016-05-31 12:51:09 +02:00
|
|
|
|
2016-05-31 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* objcopy.c: Formatting, whitespace throughout.
|
|
|
|
|
(copy_main): Init newsym->othersym.
|
|
|
|
|
(parse_symflags): Make len a size_t. Adjust uses.
|
|
|
|
|
|
2016-05-25 18:46:47 +02:00
|
|
|
|
2016-05-25 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/14625
|
|
|
|
|
* NEWS: Mention --enable-64-bit-archive.
|
|
|
|
|
|
2016-05-18 16:21:16 +02:00
|
|
|
|
2016-05-18 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 20096
|
|
|
|
|
* objcopy.c (copy_relocations_in_section): Also check for the
|
|
|
|
|
symbol pointed to by sym_ptr_ptr being NULL.
|
|
|
|
|
|
2016-05-18 12:22:30 +02:00
|
|
|
|
2016-05-18 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/binutils-all/mips/mixed-mips16-micromips.d: New test.
|
|
|
|
|
* testsuite/binutils-all/mips/mixed-mips16-micromips.s: New test
|
|
|
|
|
source.
|
|
|
|
|
* testsuite/binutils-all/mips/mips.exp: Run the new test.
|
|
|
|
|
|
2016-05-18 13:44:43 +02:00
|
|
|
|
2016-05-18 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* po/sv.po: Updated Swedish translation.
|
|
|
|
|
|
2016-05-18 05:30:50 +02:00
|
|
|
|
2016-05-18 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (dynamic_section_mips_val) <DT_MIPS_RLD_VERSION>
|
|
|
|
|
<DT_MIPS_LOCAL_GOTNO, DT_MIPS_CONFLICTNO, DT_MIPS_LIBLISTNO>
|
|
|
|
|
<DT_MIPS_SYMTABNO, DT_MIPS_UNREFEXTNO, DT_MIPS_HIPAGENO>
|
|
|
|
|
<DT_MIPS_DELTA_CLASS_NO, DT_MIPS_DELTA_INSTANCE_NO>
|
|
|
|
|
<DT_MIPS_DELTA_RELOC_NO, DT_MIPS_DELTA_SYM_NO>
|
|
|
|
|
<DT_MIPS_DELTA_CLASSSYM_NO, DT_MIPS_COMPACT_SIZE>: Use the
|
|
|
|
|
`d_val' rather than `d_ptr' member of the dynamic entry.
|
|
|
|
|
|
2016-05-16 09:51:26 +02:00
|
|
|
|
2016-05-17 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/binutils-common.exp (supports_gnu_unique): New
|
|
|
|
|
procedure.
|
|
|
|
|
* testsuite/binutils-all/objcopy.exp: Use `supports_gnu_unique'
|
|
|
|
|
with the `strip-10' test.
|
|
|
|
|
|
2016-05-16 09:22:59 +02:00
|
|
|
|
2016-05-16 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/binutils-all/objcopy.exp: Don't skip the `strip-10'
|
|
|
|
|
test for the V850.
|
|
|
|
|
|
2014-11-26 12:15:01 +01:00
|
|
|
|
2016-05-11 Andrew Bennett <andrew.bennett@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (print_mips_ases): Add DSPR3.
|
|
|
|
|
|
2016-05-10 16:15:15 +02:00
|
|
|
|
2016-05-10 Thomas Preud'homme <thomas.preudhomme@arm.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (display_arm_attribute): Add output for Tag_DSP_extension.
|
|
|
|
|
(arm_attr_public_tags): Define DSP_extension attribute.
|
|
|
|
|
|
2016-04-29 14:22:51 +02:00
|
|
|
|
2016-05-10 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* doc/binutils.texi (nm): Update description of --size-sort.
|
|
|
|
|
|
2016-05-09 18:31:07 +02:00
|
|
|
|
2016-05-09 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/20063
|
|
|
|
|
* readelf.c (get_32bit_section_headers): Warn if an out of range
|
|
|
|
|
sh_link or sh_info field is encountered.
|
|
|
|
|
(get_64bit_section_headers): Likewise.
|
|
|
|
|
|
2016-05-04 14:03:52 +02:00
|
|
|
|
2016-05-04 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/binutils-common.exp (is_elf_format): Add avr-*-*.
|
|
|
|
|
|
2016-05-03 14:36:22 +02:00
|
|
|
|
2016-05-03 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* po/sv.po: Updated Swedish translation.
|
|
|
|
|
|
2016-04-29 15:05:12 +02:00
|
|
|
|
2016-04-29 Pitchumani Sivanupandi <pitchumani.s@atmel.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (is_32bit_pcrel_reloc): Return true if reloc is 32-bit
|
|
|
|
|
PC relocation for AVR target.
|
|
|
|
|
(is_none_reloc): Return true if reloc is any of AVR diff
|
|
|
|
|
relocations.
|
|
|
|
|
|
2016-04-29 10:24:42 +02:00
|
|
|
|
2016-04-29 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 19938
|
|
|
|
|
* readelf.c (get_solaris_segment_type): New function.
|
|
|
|
|
(get_segment_type): Call it.
|
|
|
|
|
|
2016-04-28 15:09:49 +02:00
|
|
|
|
2016-04-28 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* po/zh_CN.po: Updated Chinese (simplified) translation.
|
|
|
|
|
|
2016-04-28 10:11:03 +02:00
|
|
|
|
2016-04-28 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/19722
|
|
|
|
|
* testsuite/binutils-all/aarch64/illegal.s: New test.
|
|
|
|
|
* testsuite/binutils-all/aarch64/illegal.d: New test driver.
|
|
|
|
|
|
2016-04-14 00:30:46 +02:00
|
|
|
|
2016-04-20 Trevor Saunders <tbsaunde+binutils@tbsaunde.org>
|
|
|
|
|
|
|
|
|
|
* resres.c: Likewise.
|
|
|
|
|
|
2016-04-16 01:20:02 +02:00
|
|
|
|
2016-04-15 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* Makefile.in: Regenerated with automake 1.11.6.
|
|
|
|
|
* aclocal.m4: Likewise.
|
|
|
|
|
* doc/Makefile.in: Likewise.
|
|
|
|
|
|
2016-04-14 13:04:09 +02:00
|
|
|
|
2016-04-14 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR target/19938
|
|
|
|
|
* testsuite/binutils-all/i386/compressed-1b.d: Allow for the
|
|
|
|
|
string sections possibly having the SHF_STRINGS flag bit set.
|
|
|
|
|
* testsuite/binutils-all/i386/compressed-1c.d: Likewise.
|
|
|
|
|
* testsuite/binutils-all/readelf.s: Likewise.
|
|
|
|
|
* testsuite/binutils-all/readelf.s-64: Likewise.
|
|
|
|
|
* testsuite/binutils-all/x86-64/compressed-1b.d: Likewise.
|
|
|
|
|
* testsuite/binutils-all/x86-64/compressed-1c.d: Likewise.
|
|
|
|
|
|
2016-04-13 16:37:55 +02:00
|
|
|
|
2016-04-13 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
2016-04-14 13:04:09 +02:00
|
|
|
|
PR target/19938
|
2016-04-13 16:37:55 +02:00
|
|
|
|
* readelf.c (get_solaris_section_type): New function: Returns the
|
|
|
|
|
name of Solaris specific section types.
|
|
|
|
|
(get_solaris_dynamic_type): New function: Return the name of
|
|
|
|
|
Solaris specific dynamic types.
|
|
|
|
|
(get_dynamic_type): Use get_solaris_dynamic_type.
|
|
|
|
|
(get_section_type_name): Use get_solaris_section_type.
|
|
|
|
|
(get_solaris_symbol_visibility): New function: Returns Solaris
|
|
|
|
|
specific symbol visibilities.
|
|
|
|
|
(print_dynamic_symbol): Use get_solaris_symbol_visibility.
|
|
|
|
|
(process_symbol_table): Likewise.
|
|
|
|
|
|
2016-04-13 10:56:30 +02:00
|
|
|
|
2016-04-13 Andreas Arnez <arnez@linux.vnet.ibm.com>
|
|
|
|
|
|
|
|
|
|
* dwarf.h (init_dwarf_regnames_s390): Declare.
|
|
|
|
|
* dwarf.c (dwarf_regnames_s390): New.
|
|
|
|
|
(init_dwarf_regnames_s390): New.
|
|
|
|
|
(init_dwarf_regnames): Call it.
|
|
|
|
|
* objdump.c (dump_dwarf): Likewise.
|
|
|
|
|
|
2016-04-11 18:56:01 +02:00
|
|
|
|
2016-04-11 Maciej W. Rozycki <macro@imgtec.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/binutils-all/mips/mips16-undecoded.d: New test.
|
|
|
|
|
* testsuite/binutils-all/mips/mips16-undecoded.s: New test
|
|
|
|
|
source.
|
|
|
|
|
* testsuite/binutils-all/mips/mips.exp: Run the new test.
|
|
|
|
|
|
2016-04-04 13:53:33 +02:00
|
|
|
|
2016-04-04 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 19872
|
|
|
|
|
* dwarf.c (display_debug_aranges): Skip warning about unrecognised
|
|
|
|
|
version number if the version is zero.
|
|
|
|
|
|
2016-03-29 08:41:46 +02:00
|
|
|
|
2016-03-29 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (get_data): Use BFD_VMA_FMT to print bfd_size_type vars.
|
|
|
|
|
(get_dynamic_data): Likewise.
|
|
|
|
|
|
2016-03-22 10:41:16 +01:00
|
|
|
|
2016-03-22 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
2016-03-22 14:25:22 +01:00
|
|
|
|
PR 19851
|
|
|
|
|
* dwarf.c (SAFE_BYTE_GET): Replace local dynamic array allocation
|
|
|
|
|
with run time size check.
|
|
|
|
|
|
2016-03-22 10:41:16 +01:00
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2016-03-15 22:51:50 +01:00
|
|
|
|
2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (decode_ARC_machine_flags): Handle nps400.
|
|
|
|
|
|
arc: Remove EF_ARC_CPU_GENERIC constant.
The constant EF_ARC_CPU_GENERIC is defined in the include/elf/arc.h
file, and is used in a few places in binutils, however, this constant
should never make it into the elf header flags; we always set a valid
cpu type in the assembler, which should then be copied over during
linking.
There are some non-gnu arc compilers that don't write an architecture
type into the e_flags field, instead leaving the field as 0, which is
the EF_ARC_CPU_GENERIC value. This non-gnu compiler uses the machine
type to distinguish between the old and newer arc architectures, setting
the machine type to EM_ARC_COMPACT for old arc600, arc601, and arc700
architectures, while using EM_ARC_COMPACT2 for newer arcem and archs
architectures.
Previously when displaying the machine flags for an older EM_ARC_COMPACT
machine, if the e_flags had not been filled in, then we relied on the
default case statement to display the message "Generic ARCompact", while
in the EM_ARC_COMPACT2 case we specifically handled EF_ARC_CPU_GENERIC
to print "ARC Generic", leaving the default case to print a message
about unrecognised cpu flag.
After this commit EF_ARC_CPU_GENERIC has been removed, for both machine
types EM_ARC_COMPACT and EM_ARC_COMPACT2 we now rely on the default case
statement to handle the situation where the e_flags has not been filled
in. The message displayed is now "Unknown ARCompact" (for older arc
architectures) and "Unknown ARC" (for the newer architectures). The
switch from "Generic" to "Unknown" in the message string is for clarity,
calling the file "Generic" can give the impression that the file is
compiled for a common sub-set of the architectures, and would therefore
run on any type of machine (or at least any type of new or old machine
depending on if the machine type is ARC or ARCv2). However, this was
not what "Generic" meant, it really meant "Unknown", so that's what we
now say.
As part of the merging of the readelf flag reading code, I have unified
the strings used in displaying the ELF ABI. This means that for older
arc machines (arc600, arc601, and arc700) the string used for the
original ABI, and ABIv2 have changed, the current ABIv3 remains the
same. For the newer architectures (arcem and archs) the abi strings
remain unchanged in all cases.
bfd/ChangeLog:
* elf32-arc.c (arc_elf_print_private_bfd_data): Remove use of
EF_ARC_CPU_GENERIC.
(arc_elf_final_write_processing): Don't bother setting cpu field
in e_flags, this will have been set elsewhere.
binutils/ChangeLog:
* readelf.c (get_machine_flags): Move arc processing into...
(decode_ARC_machine_flags): ... new function. Remove use of
EF_ARC_CPU_GENERIC, change default case from "generic arc" to
"unknown arc". Merged ABI printing between two machine types.
gas/ChangeLog:
* config/tc-arc.c (arc_select_cpu): Remove use of
EF_ARC_CPU_GENERIC.
include/ChangeLog:
* elf/arc.h (EF_ARC_CPU_GENERIC): Delete. Update related comment.
2016-03-15 22:38:30 +01:00
|
|
|
|
2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (get_machine_flags): Move arc processing into...
|
|
|
|
|
(decode_ARC_machine_flags): ... new function. Remove use of
|
|
|
|
|
EF_ARC_CPU_GENERIC, change default case from "generic arc" to
|
|
|
|
|
"unknown arc". Merged ABI printing between two machine types.
|
|
|
|
|
|
2016-03-01 12:41:12 +01:00
|
|
|
|
2016-03-21 Andrew Burgess <andrew.burgess@embecosm.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/binutils-all/objdump.exp (cpus_expected): Add ARC700
|
|
|
|
|
to the architecture list.
|
|
|
|
|
|
2016-03-21 17:31:46 +01:00
|
|
|
|
2016-03-21 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* dlltool.c: Replace use of alloca with call to xmalloc.
|
|
|
|
|
* dllwrap.c: Likewise.
|
|
|
|
|
* nlmconv.c: Likewise.
|
|
|
|
|
* objdump.c: Likewise.
|
|
|
|
|
* resrc.c: Likewise.
|
|
|
|
|
* winduni.c: Likewise.
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2016-03-07 18:29:25 +01:00
|
|
|
|
2016-03-07 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/19775
|
|
|
|
|
* testsuite/binutils-all/ar.exp (proc empty_archive): New proc.
|
|
|
|
|
Run the new proc.
|
|
|
|
|
* testsuite/binutils-all/empty: New, empty, file.
|
|
|
|
|
|
2016-03-04 15:16:48 +01:00
|
|
|
|
2016-03-04 Matthew Wahab <matthew.wahab@arm.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (arm_attry_tag_FP_arch): Add "NEON for ARMv8.1".
|
|
|
|
|
|
2016-02-26 15:44:03 +01:00
|
|
|
|
2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR ld/19645
|
|
|
|
|
* NEWS: Mention --elf-stt-common= for objcopy.
|
|
|
|
|
* doc/binutils.texi: Document --elf-stt-common= for objcopy.
|
|
|
|
|
* objcopy.c (do_elf_stt_common): New.
|
|
|
|
|
(command_line_switch): Add OPTION_ELF_STT_COMMON.
|
|
|
|
|
(copy_options): Add --elf-stt-common=.
|
|
|
|
|
(copy_usage): Add --elf-stt-common=.
|
|
|
|
|
(copy_object): Also check do_elf_stt_common for ELF targets.
|
|
|
|
|
(copy_file): Handle do_elf_stt_common.
|
|
|
|
|
(copy_main): Handle OPTION_ELF_STT_COMMON.
|
|
|
|
|
* readelf.c (apply_relocations): Support STT_COMMON.
|
|
|
|
|
* testsuite/binutils-all/common-1.s: New file.
|
|
|
|
|
* testsuite/binutils-all/common-1a.d: Likewise.
|
|
|
|
|
* testsuite/binutils-all/common-1b.d: Likewise.
|
|
|
|
|
* testsuite/binutils-all/common-1c.d: Likewise.
|
|
|
|
|
* testsuite/binutils-all/common-1d.d: Likewise.
|
|
|
|
|
* testsuite/binutils-all/common-1e.d: Likewise.
|
|
|
|
|
* testsuite/binutils-all/common-1f.d: Likewise.
|
|
|
|
|
* testsuite/binutils-all/common-2.s: Likewise.
|
|
|
|
|
* testsuite/binutils-all/common-2a.d: Likewise.
|
|
|
|
|
* testsuite/binutils-all/common-2b.d: Likewise.
|
|
|
|
|
* testsuite/binutils-all/common-2c.d: Likewise.
|
|
|
|
|
* testsuite/binutils-all/common-2d.d: Likewise.
|
|
|
|
|
* testsuite/binutils-all/common-2e.d: Likewise.
|
|
|
|
|
* testsuite/binutils-all/common-2f.d: Likewise.
|
|
|
|
|
* testsuite/binutils-all/objcopy.exp
|
|
|
|
|
(objcopy_test_elf_common_symbols): New proc.
|
|
|
|
|
Run objcopy_test_elf_common_symbols for ELF targets
|
|
|
|
|
|
2016-02-17 00:03:39 +01:00
|
|
|
|
2016-02-16 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/19647
|
|
|
|
|
* readelf.c (get_section_type_name): Add a missing break.
|
|
|
|
|
|
2016-02-16 15:56:04 +01:00
|
|
|
|
2016-02-16 Claudiu Zissulescu <claziss@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (is_32bit_pcrel_reloc): Add R_ARC_32_PCREL.
|
|
|
|
|
|
2016-02-15 12:11:46 +01:00
|
|
|
|
2016-02-15 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (get_section_type_name): Add hex prefix to offsets
|
|
|
|
|
printed for LOPROC and LOOS values. Ensure that a result is
|
|
|
|
|
always returned for the V850 target, even when an unrecognised
|
|
|
|
|
processor specific value is encountered.
|
|
|
|
|
(process_section_headers): Display key values in the order in
|
|
|
|
|
which they appear to the user. Add the "C (compressed)" value to
|
|
|
|
|
the list.
|
|
|
|
|
|
2016-02-12 22:38:57 +01:00
|
|
|
|
2016-02-12 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
* doc/binutils.texi: Fix a typo.
|
|
|
|
|
|
2016-02-05 10:58:01 +01:00
|
|
|
|
2016-02-05 Cupertino Miranda <Cupertino.Miranda@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/binutils-all/objdump.exp: Update expected default
|
|
|
|
|
architecture value for ARC binaries.
|
|
|
|
|
|
2016-02-02 12:30:21 +01:00
|
|
|
|
2016-02-02 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/19547
|
|
|
|
|
* testsuite/binutils-all/objcopy.exp
|
|
|
|
|
(objcopy_test_without_global_symbol): New proc.
|
|
|
|
|
Run objcopy_test_without_global_symbol.
|
|
|
|
|
* testsuite/binutils-all/pr19547.c: New file.
|
|
|
|
|
|
2016-01-28 22:29:53 +01:00
|
|
|
|
2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
|
|
|
|
|
|
|
|
|
|
PR binutils/19523
|
|
|
|
|
* Makefile.am (check-DEJAGNU): Pass CC and CC_FOR_BUILD to
|
|
|
|
|
runtest.
|
|
|
|
|
* Makefile.in: Regenerated.
|
|
|
|
|
* testsuite/binutils-all/compress.exp (test_gnu_debuglink): New
|
|
|
|
|
proc.
|
|
|
|
|
Run test_gnu_debuglink for native ELF build.
|
|
|
|
|
|
2016-01-20 15:52:33 +01:00
|
|
|
|
2016-01-20 Nick Clifton <nickc@redhat.com>
|
|
|
|
|
|
|
|
|
|
PR 19495
|
|
|
|
|
* testsuite/binutils-all/dlltool.exp: Fix tests for targets which
|
2016-02-05 10:58:01 +01:00
|
|
|
|
do not support inserting leading underscores.
|
2016-01-20 15:52:33 +01:00
|
|
|
|
|
2016-01-20 13:53:50 +01:00
|
|
|
|
2016-01-20 Mickael Guene <mickael.guene@st.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (get_elf_section_flags): Display y letter for section
|
|
|
|
|
with SHF_ARM_NOREAD section flag in readelf section output.
|
|
|
|
|
(process_section_headers): Add y letter in readelf section output
|
|
|
|
|
key mapping for ARM architecture.
|
|
|
|
|
* objdump.c (dump_section_header): Display NOREAD attributes as
|
|
|
|
|
well.
|
|
|
|
|
* doc/binutils.texi (objdump): Note that it is correct for
|
|
|
|
|
sections to have both the READONLY and NOREAD attributes.
|
|
|
|
|
|
2016-01-19 18:06:33 +01:00
|
|
|
|
2016-01-19 John Baldwin <jhb@FreeBSD.org>
|
|
|
|
|
|
|
|
|
|
* readelf.c (get_freebsd_elfcore_note_type): Remove unused variable.
|
|
|
|
|
|
2015-12-14 07:26:19 +01:00
|
|
|
|
2016-01-19 John Baldwin <jhb@FreeBSD.org>
|
|
|
|
|
|
|
|
|
|
* readelf.c (get_freebsd_elfcore_note_type): New
|
|
|
|
|
(process_note): Add support for FreeBSD core notes.
|
|
|
|
|
|
Add PIC and TLS support to the ARC target.
bfd/ChangeLog:
* arc-plt.def: New file.
* arc-plt.h: Likewise.
* elf32-arc.c (elf_arc_abs_plt0_entry, elf_arc_abs_pltn_entry,
elf_arcV2_abs_plt0_entry, elf_arcV2_abs_pltn_entry,
elf_arc_pic_plt0_entry, elf_arc_pic_pltn_entry,
elf_arcV2_pic_plt0_entry, elf_arcV2_pic_pltn_entry): Remove.
(name_for_global_symbol): Added.
(ADD_RELA): Helper to create dynamic relocs.
(new_got_entry_to_list): Create a new got entry in linked list.
(symbol_has_entry_of_type): Search for specific type of entry in
list.
(is_reloc_for_GOT): return FALSE for any TLS related relocs.
(is_reloc_for_TLS, arc_elf_set_private_flags)
(arc_elf_print_private_bfd_data, arc_elf_copy_private_bfd_data)
(arc_elf_merge_private_bfd_data): New functions.
(debug_arc_reloc): Cleaned debug info printing.
(PDATA reloc): Changed not to perform address alignment.
(reverse_me): Added. Fix for ARC_32 relocs.
(arc_do_relocation): Return bfd_reloc_of when no relocation should
occur.
(arc_get_local_got_ents): Renamed from arc_get_local_got_offsets.
Changed function to access an array of list of GOT entries instead
of just an array of offsets.
(elf_arc_relocate_section): Added support for PIC and TLS related relocations.
(elf_arc_check_relocs): Likewise.
(elf_arc_adjust_dynamic_symbol, elf_arc_finish_dynamic_symbol,
(elf_arc_finish_dynamic_sections): Likewise
(arc_create_dynamic_sections): Modified conditions to create
dynamic sections.
(ADD_SYMBOL_REF_SEC_AND_RELOC): New macro.
(plt_do_relocs_for_symbol, relocate_plt_for_symbol)
(relocate_plt_for_entry): Changed to support new way to define PLT
related code.
(add_symbol_to_plt): Likewise.
(arc_elf_link_hash_table_create): New function.
include/ChangeLog:
* elf/arc-reloc.def (ARC_32, ARC_GOTPC, ARC_TLS_GD_GOT)
(ARC_TLS_IE_GOT, ARC_TLS_DTPOFF, ARC_TLS_DTPOFF_S9, ARC_TLS_LE_S9)
(ARC_TLS_LE_32): Fixed formula.
(ARC_TLS_GD_LD): Use new special function.
* opcode/arc-func.h: Changed all the replacement
functions to clear the patching bits before doing an or it with the value
argument.
2016-01-19 16:25:58 +01:00
|
|
|
|
2016-01-18 Miranda Cupertino <Cupertino.Miranda@synopsys.com>
|
|
|
|
|
Zissulescu Claudiu <Claudiu.Zissulescu@synopsys.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (get_machine_flags): Add support for newer ARC ELF
|
|
|
|
|
header flags.
|
|
|
|
|
|
2016-01-18 06:36:49 +01:00
|
|
|
|
2016-01-18 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2016-01-17 02:50:55 +01:00
|
|
|
|
2016-01-17 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* configure: Regenerate.
|
|
|
|
|
|
2016-01-17 02:43:43 +01:00
|
|
|
|
2016-01-17 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* testsuite/lib/binutils-common.exp (is_elf_format): Return true
|
|
|
|
|
for m68hc11/12 and xgate triples.
|
|
|
|
|
|
2016-01-17 02:43:30 +01:00
|
|
|
|
2016-01-17 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
* readelf.c (is_32bit_abs_reloc): Add R_M68HC11_32.
|
|
|
|
|
|
2016-01-01 12:25:12 +01:00
|
|
|
|
2016-01-01 Alan Modra <amodra@gmail.com>
|
|
|
|
|
|
|
|
|
|
Update year range in copyright notice of all files.
|
|
|
|
|
|
2016-01-01 11:44:31 +01:00
|
|
|
|
For older changes see ChangeLog-2015 and testsuite/ChangeLog-1215
|
|
|
|
|
|
|
|
|
|
Copyright (C) 2016 Free Software Foundation, Inc.
|
|
|
|
|
|
|
|
|
|
Copying and distribution of this file, with or without modification,
|
|
|
|
|
are permitted in any medium without royalty provided the copyright
|
|
|
|
|
notice and this notice are preserved.
|
|
|
|
|
|
|
|
|
|
Local Variables:
|
|
|
|
|
mode: change-log
|
|
|
|
|
left-margin: 8
|
|
|
|
|
fill-column: 74
|
|
|
|
|
version-control: never
|
|
|
|
|
End:
|