Author: andrew
Date: Fri Apr  3 19:33:26 2015
New Revision: 281048
URL: https://svnweb.freebsd.org/changeset/base/281048

Log:
  More ARM EABI object attributes in binutils. This adds support to binutils
  to include the Unaligned Access and Floating-point Half-precision
  attributes. the former marks ELF objects that may access ARMv6 style
  unaligned data, the latter that the binary uses the VFPv3/Advanced SIMD
  half-precision extension.
  
  These may be emmitted by clang so it's best to print a warning when the
  linker hits one of them.
  
  Differential Revision:        http://reviews.freebsd.org/D2194
  Submitted by: Michal Meloun <mel...@miracle.cz>
  MFC after:    1 week

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

Modified: head/contrib/binutils/bfd/elf-bfd.h
==============================================================================
--- head/contrib/binutils/bfd/elf-bfd.h Fri Apr  3 18:42:38 2015        
(r281047)
+++ head/contrib/binutils/bfd/elf-bfd.h Fri Apr  3 19:33:26 2015        
(r281048)
@@ -1286,7 +1286,7 @@ struct elf_find_verdep_info
 };
 
 /* The maximum number of known object attributes for any target.  */
-#define NUM_KNOWN_OBJ_ATTRIBUTES 32
+#define NUM_KNOWN_OBJ_ATTRIBUTES 71
 
 /* The value of an object attribute.  type & 1 indicates whether there
    is an integer value; type & 2 indicates whether there is a string

Modified: head/contrib/binutils/bfd/elf32-arm.c
==============================================================================
--- head/contrib/binutils/bfd/elf32-arm.c       Fri Apr  3 18:42:38 2015        
(r281047)
+++ head/contrib/binutils/bfd/elf32-arm.c       Fri Apr  3 19:33:26 2015        
(r281048)
@@ -6835,6 +6835,8 @@ elf32_arm_merge_eabi_attributes (bfd *ib
        case Tag_ABI_FP_number_model:
        case Tag_ABI_align8_preserved:
        case Tag_ABI_HardFP_use:
+       case Tag_CPU_unaligned_access:
+       case Tag_FP_HP_extension:
          /* Use the largest value specified.  */
          if (in_attr[i].i > out_attr[i].i)
            out_attr[i].i = in_attr[i].i;
@@ -6951,7 +6953,9 @@ elf32_arm_merge_eabi_attributes (bfd *ib
            }
          break;
        default: /* All known attributes should be explicitly covered.   */
-         abort ();
+         /* XXX Not now */
+         /* abort (); */
+         break;
        }
     }
 

Modified: head/contrib/binutils/include/elf/arm.h
==============================================================================
--- head/contrib/binutils/include/elf/arm.h     Fri Apr  3 18:42:38 2015        
(r281047)
+++ head/contrib/binutils/include/elf/arm.h     Fri Apr  3 19:33:26 2015        
(r281048)
@@ -271,7 +271,11 @@ enum
   Tag_ABI_optimization_goals,
   Tag_ABI_FP_optimization_goals,
   /* 32 is generic.  */
-
+  Tag_CPU_unaligned_access = 34,
+  Tag_FP_HP_extension = 36,
+  Tag_ABI_FP_16bit_format = 38,
+  Tag_MPextension_use = 42,
+  Tag_DIV_use = 44,
   Tag_Virtualization_use = 68,
 };
 
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to