From 5d8763a38211dd79459485ba0be4f76849ef8200 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Thu, 22 Jun 2017 14:26:09 -0700 Subject: [PATCH] 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. --- bfd/ChangeLog | 6 ++++++ bfd/elf64-x86-64.c | 15 ++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 8fa42f7..4d2acc5 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2017-06-22 H.J. Lu + + * elf64-x86-64.c (elf_x86_64_link_setup_gnu_properties): Move + the error_alignment label forward. Properly align program + property note section. + 2017-06-22 Eric Christopher * elf32-arm.c (elf32_arm_final_link_relocate): Use labs rather than 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)) -- 2.7.4