This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] x86-64: Move the error_alignment label forward


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5d8763a38211dd79459485ba0be4f76849ef8200

commit 5d8763a38211dd79459485ba0be4f76849ef8200
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Jun 22 14:26:09 2017 -0700

    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.

Diff:
---
 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  <hongjiu.lu@intel.com>
+
+	* 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  <echristo@gmail.com>
 
 	* 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))


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]