aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf64-x86-64.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-06-22 14:26:09 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-06-22 14:26:09 -0700
commit5d8763a38211dd79459485ba0be4f76849ef8200 (patch)
tree610e5d460b1401c40ce75cecebbc3e6cc328d8ac /bfd/elf64-x86-64.c
parent922109c7182858b005f55f6ac69bb6af145fc710 (diff)
downloadgdb-5d8763a38211dd79459485ba0be4f76849ef8200.zip
gdb-5d8763a38211dd79459485ba0be4f76849ef8200.tar.gz
gdb-5d8763a38211dd79459485ba0be4f76849ef8200.tar.bz2
x86-64: Move the error_alignment label forward
Move the error_alignment label forward to avoid clang warning on if (!bfd_set_section_alignment (ebfd, sec, 2)) goto error_alignment; htab = elf_x86_64_hash_table (info); error_alignment: info->callbacks->einfo (_("%F%A: failed to align section\n"), sec); "%F" causes a fatal linker error and immediate exit. sec = htab->elf.sgotplt; Also fix alignment on program property note section. * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Move the error_alignment label forward. Properly align program property note section.
Diffstat (limited to 'bfd/elf64-x86-64.c')
-rw-r--r--bfd/elf64-x86-64.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 957dcd9..8cef9f5 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -7407,8 +7407,13 @@ elf_x86_64_link_setup_gnu_properties (struct bfd_link_info *info)
if (sec == NULL)
info->callbacks->einfo (_("%F: failed to create GNU property section\n"));
- if (!bfd_set_section_alignment (ebfd, sec, 2))
- goto error_alignment;
+ if (!bfd_set_section_alignment (ebfd, sec,
+ ABI_64_P (ebfd) ? 3 : 2))
+ {
+error_alignment:
+ info->callbacks->einfo (_("%F%A: failed to align section\n"),
+ sec);
+ }
elf_section_type (sec) = SHT_NOTE;
}
@@ -7567,11 +7572,7 @@ elf_x86_64_link_setup_gnu_properties (struct bfd_link_info *info)
properly aligned even if create_dynamic_sections isn't called. */
sec = htab->elf.sgot;
if (!bfd_set_section_alignment (dynobj, sec, 3))
- {
-error_alignment:
- info->callbacks->einfo (_("%F%A: failed to align section\n"),
- sec);
- }
+ goto error_alignment;
sec = htab->elf.sgotplt;
if (!bfd_set_section_alignment (dynobj, sec, 3))