elf: Report property change when merging properties
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 7 Dec 2018 16:30:30 +0000 (08:30 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 7 Dec 2018 16:30:43 +0000 (08:30 -0800)
commitd2ef37ebd9f771d06edf1fdea37970f60b242b2d
treeb832c9a33523fbbf2b08af67fa0aceba8253d709
parent4a8110007bf58be329f108374e00ef8ddc1fe3ec
elf: Report property change when merging properties

With merging properties, report property change in linker map file, like

Merging program properties

Removed property 0xc0010000 to merge /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o (0x0) and /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crti.o (0x0)
Removed property 0xc0000002 to merge /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o (0x3) and x.o (not found)
Removed property 0xc0000000 to merge /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o (not found) and /usr/lib64/libc_nonshared.a(elf-init.oS) (0x0)
Removed property 0xc0000001 to merge /usr/lib/gcc/x86_64-redhat-linux/8/../../../../lib64/crt1.o (not found) and /usr/lib64/libc_nonshared.a(elf-init.oS) (0x0)

bfd/

* elf-properties.c (elf_find_and_remove_property): Add a
bfd_boolean argument to indicate if the property should be
removed.
(elf_merge_gnu_property_list): Updated.  Report
property change in linker map file.
(elf_get_gnu_property_section_size): Skip property_remove
properties.
(elf_write_gnu_properties): Likewise.
(_bfd_elf_link_setup_gnu_properties): Report property merge
in linker map file.  Pass abfd to elf_merge_gnu_property_list.

include/

* bfdlink.h (bfd_link_info): Add has_map_file.

ld/

* NEWS: Updated for property change report.
* ld.texi: Document property change report.
* ldmain.c (main): Set link_info.has_map_file to TRUE when
linker map file is used.
* testsuite/ld-scripts/rgn-over1.d: Updated.
* testsuite/ld-scripts/rgn-over2.d: Likewise.
* testsuite/ld-scripts/rgn-over3.d: Likewise.
* testsuite/ld-scripts/rgn-over4.d: Likewise.
* testsuite/ld-scripts/rgn-over5.d: Likewise.
* testsuite/ld-scripts/rgn-over6.d: Likewise.
* testsuite/ld-scripts/rgn-over7.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt1a-x32.d: Check linker map
file.
* testsuite/ld-x86-64/property-x86-ibt1a.d: Likewise.
* testsuite/ld-x86-64/property-x86-ibt1a.map: New file.
18 files changed:
bfd/ChangeLog
bfd/elf-properties.c
include/ChangeLog
include/bfdlink.h
ld/ChangeLog
ld/NEWS
ld/ld.texi
ld/ldmain.c
ld/testsuite/ld-scripts/rgn-over1.d
ld/testsuite/ld-scripts/rgn-over2.d
ld/testsuite/ld-scripts/rgn-over3.d
ld/testsuite/ld-scripts/rgn-over4.d
ld/testsuite/ld-scripts/rgn-over5.d
ld/testsuite/ld-scripts/rgn-over6.d
ld/testsuite/ld-scripts/rgn-over7.d
ld/testsuite/ld-x86-64/property-x86-ibt1a-x32.d
ld/testsuite/ld-x86-64/property-x86-ibt1a.d
ld/testsuite/ld-x86-64/property-x86-ibt1a.map [new file with mode: 0644]