From ad8ef2328b42ee040bac68d9736867a0551497b5 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Tue, 25 Sep 2018 12:33:59 -0700 Subject: [PATCH 1/2] Don't add GNU_PROPERTY_X86_FEATURE_2_NEEDED FAIL: Run PR ld/23428 test --- bfd/elfxx-x86.c | 45 -------------------- ld/testsuite/ld-i386/property-x86-4a.d | 3 +- ld/testsuite/ld-x86-64/property-x86-4a-x32.d | 3 +- ld/testsuite/ld-x86-64/property-x86-4a.d | 3 +- 4 files changed, 3 insertions(+), 51 deletions(-) diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c index fc99b28c07..05f5c6a2f9 100644 --- a/bfd/elfxx-x86.c +++ b/bfd/elfxx-x86.c @@ -2542,7 +2542,6 @@ _bfd_x86_elf_link_setup_gnu_properties const struct elf_backend_data *bed; unsigned int class_align = ABI_64_P (info->output_bfd) ? 3 : 2; unsigned int got_align; - bfd_boolean has_text = FALSE; features = 0; if (info->ibt) @@ -2557,14 +2556,6 @@ _bfd_x86_elf_link_setup_gnu_properties if (bfd_get_flavour (pbfd) == bfd_target_elf_flavour && bfd_count_sections (pbfd) != 0) { - if (!has_text) - { - /* Check if there is no non-empty text section. */ - sec = bfd_get_section_by_name (pbfd, ".text"); - if (sec != NULL && sec->size != 0) - has_text = TRUE; - } - ebfd = pbfd; if (elf_properties (pbfd) != NULL) @@ -2590,42 +2581,6 @@ _bfd_x86_elf_link_setup_gnu_properties prop->u.number |= features; prop->pr_kind = property_number; } - else if (has_text - && elf_tdata (info->output_bfd)->o->build_id.sec == NULL - && !htab->elf.dynamic_sections_created - && !info->traditional_format - && (info->output_bfd->flags & D_PAGED) != 0 - && info->separate_code) - { - /* If the separate code program header is needed, make sure - that the first read-only PT_LOAD segment has no code by - adding a GNU_PROPERTY_X86_FEATURE_2_NEEDED note. */ - elf_property_list *list; - bfd_boolean need_property = TRUE; - - for (list = elf_properties (ebfd); list; list = list->next) - { - unsigned int pr_type = list->property.pr_type; - if (pr_type == GNU_PROPERTY_STACK_SIZE - || pr_type == GNU_PROPERTY_NO_COPY_ON_PROTECTED - || pr_type == GNU_PROPERTY_X86_COMPAT_ISA_1_NEEDED - || (pr_type >= GNU_PROPERTY_X86_UINT32_OR_LO - && pr_type <= GNU_PROPERTY_X86_UINT32_OR_HI)) - { - /* These properties won't be removed during merging. */ - need_property = FALSE; - break; - } - } - - if (need_property) - { - prop = _bfd_elf_get_property - (ebfd, GNU_PROPERTY_X86_FEATURE_2_NEEDED, 4); - prop->u.number = GNU_PROPERTY_X86_FEATURE_2_X86; - prop->pr_kind = property_number; - } - } /* Create the GNU property note section if needed. */ if (prop != NULL && pbfd == NULL) diff --git a/ld/testsuite/ld-i386/property-x86-4a.d b/ld/testsuite/ld-i386/property-x86-4a.d index 8ab0115cdd..5e2b4689f8 100644 --- a/ld/testsuite/ld-i386/property-x86-4a.d +++ b/ld/testsuite/ld-i386/property-x86-4a.d @@ -6,8 +6,7 @@ Displaying notes found in: .note.gnu.property Owner Data size Description - GNU 0x0000002c NT_GNU_PROPERTY_TYPE_0 + GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0 Properties: no copy on protected - x86 feature needed: x86 x86 ISA used: x86 feature used: x86 diff --git a/ld/testsuite/ld-x86-64/property-x86-4a-x32.d b/ld/testsuite/ld-x86-64/property-x86-4a-x32.d index 9dd6e3540e..76f74e5ded 100644 --- a/ld/testsuite/ld-x86-64/property-x86-4a-x32.d +++ b/ld/testsuite/ld-x86-64/property-x86-4a-x32.d @@ -6,8 +6,7 @@ Displaying notes found in: .note.gnu.property Owner Data size Description - GNU 0x0000002c NT_GNU_PROPERTY_TYPE_0 + GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0 Properties: no copy on protected - x86 feature needed: x86 x86 ISA used: x86 feature used: x86 diff --git a/ld/testsuite/ld-x86-64/property-x86-4a.d b/ld/testsuite/ld-x86-64/property-x86-4a.d index 4dc87acd56..e76be796a6 100644 --- a/ld/testsuite/ld-x86-64/property-x86-4a.d +++ b/ld/testsuite/ld-x86-64/property-x86-4a.d @@ -6,8 +6,7 @@ Displaying notes found in: .note.gnu.property Owner Data size Description - GNU 0x00000038 NT_GNU_PROPERTY_TYPE_0 + GNU 0x00000028 NT_GNU_PROPERTY_TYPE_0 Properties: no copy on protected - x86 feature needed: x86 x86 ISA used: x86 feature used: x86 -- 2.17.1