diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-06-19 20:30:20 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-06-19 20:30:20 -0700 |
commit | abfa390dac6ffcfc6de9659c0b78cfe524347450 (patch) | |
tree | f2e10a623ae60cd7b8c6c3ac258ce37a7a7e449e /bfd/elf-properties.c | |
parent | a6cab9afd2c81465265c8d09569e3e6ef43d2954 (diff) | |
download | gdb-abfa390dac6ffcfc6de9659c0b78cfe524347450.zip gdb-abfa390dac6ffcfc6de9659c0b78cfe524347450.tar.gz gdb-abfa390dac6ffcfc6de9659c0b78cfe524347450.tar.bz2 |
Check the DYNAMIC bit for input shared objects
Since the BFD section count may not be cleared for shared objects during
linking, we should check the DYNAMIC bit for input shared objects.
bfd/
PR ld/21626
* elf-properties.c (_bfd_elf_link_setup_gnu_properties): Check
the DYNAMIC bit instead of bfd_count_sections.
ld/
PR ld/21626
* testsuite/ld-i386/i386.exp: Run ld/21626 tests.
* testsuite/ld-x86-64/x86-64.exp: Likewise.
Diffstat (limited to 'bfd/elf-properties.c')
-rw-r--r-- | bfd/elf-properties.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/bfd/elf-properties.c b/bfd/elf-properties.c index 2d054dd..13d620d 100644 --- a/bfd/elf-properties.c +++ b/bfd/elf-properties.c @@ -318,7 +318,7 @@ _bfd_elf_link_setup_gnu_properties (struct bfd_link_info *info) /* Find the first relocatable ELF input with GNU properties. */ for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link.next) if (bfd_get_flavour (abfd) == bfd_target_elf_flavour - && bfd_count_sections (abfd) != 0 + && (abfd->flags & DYNAMIC) == 0 && elf_properties (abfd) != NULL) { has_properties = TRUE; @@ -342,7 +342,7 @@ _bfd_elf_link_setup_gnu_properties (struct bfd_link_info *info) /* Merge .note.gnu.property sections. */ for (abfd = info->input_bfds; abfd != NULL; abfd = abfd->link.next) - if (abfd != first_pbfd && bfd_count_sections (abfd) != 0) + if (abfd != first_pbfd && (abfd->flags & DYNAMIC) == 0) { elf_property_list *null_ptr = NULL; elf_property_list **listp = &null_ptr; |