aboutsummaryrefslogtreecommitdiff
path: root/bfd/elfxx-x86.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/elfxx-x86.c')
-rw-r--r--bfd/elfxx-x86.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
index bc9bb70..3dc0095 100644
--- a/bfd/elfxx-x86.c
+++ b/bfd/elfxx-x86.c
@@ -1891,7 +1891,7 @@ _bfd_x86_elf_create_sframe_plt (bfd *output_bfd,
}
*ectx = sframe_encode (SFRAME_VERSION_2,
- 0,
+ SFRAME_F_FDE_FUNC_START_PCREL,
SFRAME_ABI_AMD64_ENDIAN_LITTLE,
SFRAME_CFA_FIXED_FP_INVALID,
-8, /* Fixed RA offset. */
@@ -4785,11 +4785,10 @@ _bfd_x86_elf_link_setup_gnu_properties
| SEC_HAS_CONTENTS | SEC_IN_MEMORY
| SEC_LINKER_CREATED);
- sec = bfd_make_section_anyway_with_flags (dynobj,
- ".sframe",
- flags);
+ sec = bfd_make_section_anyway_with_flags (dynobj, ".sframe", flags);
if (sec == NULL)
info->callbacks->fatal (_("%P: failed to create PLT .sframe section\n"));
+ elf_section_type (sec) = SHT_GNU_SFRAME;
// FIXME check this
// if (!bfd_set_section_alignment (sec, class_align))
@@ -4805,6 +4804,7 @@ _bfd_x86_elf_link_setup_gnu_properties
flags);
if (sec == NULL)
info->callbacks->fatal (_("%P: failed to create second PLT .sframe section\n"));
+ elf_section_type (sec) = SHT_GNU_SFRAME;
htab->plt_second_sframe = sec;
}
@@ -4817,6 +4817,7 @@ _bfd_x86_elf_link_setup_gnu_properties
flags);
if (sec == NULL)
info->callbacks->fatal (_("%P: failed to create PLT GOT .sframe section\n"));
+ elf_section_type (sec) = SHT_GNU_SFRAME;
htab->plt_got_sframe = sec;
}