aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog7
-rw-r--r--bfd/elfxx-x86.c45
-rw-r--r--ld/ChangeLog7
-rw-r--r--ld/testsuite/ld-i386/property-x86-4a.d3
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-4a-x32.d3
-rw-r--r--ld/testsuite/ld-x86-64/property-x86-4a.d3
6 files changed, 17 insertions, 51 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index a4a7b4f..86387d8 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,10 @@
+2018-10-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/23428
+ * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Don't
+ add GNU_PROPERTY_X86_FEATURE_2_NEEDED to force program header
+ in non-code PT_LOAD segment.
+
2018-10-08 Alan Modra <amodra@gmail.com>
* elf-nacl.c (nacl_modify_segment_map): Cope with header PT_LOAD
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index fc99b28..05f5c6a 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/ChangeLog b/ld/ChangeLog
index 6c322c3..3580a2b 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,5 +1,12 @@
2018-10-08 H.J. Lu <hongjiu.lu@intel.com>
+ PR ld/23428
+ * testsuite/ld-i386/property-x86-4a.d: Updated.
+ * testsuite/ld-x86-64/property-x86-4a-x32.d: Likewise.
+ * testsuite/ld-x86-64/property-x86-4a.d: Likewise.
+
+2018-10-08 H.J. Lu <hongjiu.lu@intel.com>
+
PR ld/23658
* ldlang.c (lang_insert_orphan): Properly group and place orphan
note sections. Properly handle orphan note section before all
diff --git a/ld/testsuite/ld-i386/property-x86-4a.d b/ld/testsuite/ld-i386/property-x86-4a.d
index 8ab0115..5e2b468 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: <None>
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 9dd6e35..76f74e5 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: <None>
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 4dc87ac..e76be79 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: <None>
x86 feature used: x86