svn commit: r282380 - head/contrib/binutils/bfd

Warner Losh imp at FreeBSD.org
Sun May 3 22:51:43 UTC 2015


Author: imp
Date: Sun May  3 22:51:42 2015
New Revision: 282380
URL: https://svnweb.freebsd.org/changeset/base/282380

Log:
  For eabi 5 (what FreeBSD uses), be sure to tag all executables and
  shared libraries as either SOFT or HARD float to comply with the EABI
  standard.
  
  Differential Revision: https://reviews.freebsd.org/D2401

Modified:
  head/contrib/binutils/bfd/elf32-arm.c

Modified: head/contrib/binutils/bfd/elf32-arm.c
==============================================================================
--- head/contrib/binutils/bfd/elf32-arm.c	Sun May  3 22:51:29 2015	(r282379)
+++ head/contrib/binutils/bfd/elf32-arm.c	Sun May  3 22:51:42 2015	(r282380)
@@ -9372,6 +9372,16 @@ elf32_arm_post_process_headers (bfd * ab
       if (globals->byteswap_code)
 	i_ehdrp->e_flags |= EF_ARM_BE8;
     }
+
+  /*
+   * For EABI 5, we have to tag dynamic binaries and execs as either
+   * soft float or hard float.
+   */
+  if (EF_ARM_EABI_VERSION (i_ehdrp->e_flags) == EF_ARM_EABI_VER5 &&
+      (i_ehdrp->e_type == ET_DYN || i_ehdrp->e_type == ET_EXEC))
+    i_ehdrp->e_flags |=
+      bfd_elf_get_obj_attr_int (abfd, OBJ_ATTR_PROC, Tag_ABI_VFP_args) ?
+      EF_ARM_VFP_FLOAT : EF_ARM_SOFT_FLOAT;
 }
 
 static enum elf_reloc_type_class


More information about the svn-src-all mailing list