Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 3 May 2015 22:51:42 +0000 (UTC)
From:      Warner Losh <imp@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r282380 - head/contrib/binutils/bfd
Message-ID:  <201505032251.t43MpgTl071857@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201505032251.t43MpgTl071857>