[ARC] Add Tag_ARC_ATR_version.
authorclaziss <claziss@synopsys.com>
Mon, 6 Aug 2018 13:41:32 +0000 (16:41 +0300)
committerClaudiu Zissulescu <claziss@gmail.com>
Mon, 6 Aug 2018 13:41:32 +0000 (16:41 +0300)
Add a new tag (Tag_ARC_ATR_version) used to indicate if current
attributes are interpreted in GNU way. This attribute is used by
Synopsys custom compiler to correctly identify and interpret the
object attributes section as generated by GNU tools.

gas/
2017-08-02  Claudiu Zissulescu <claziss@synopsys.com>

* config/tc-arc.c (arc_set_public_attributes): Add
Tag_ARC_ATR_version.
(arc_convert_symbolic_attribute): Likewise.
* testsuite/gas/arc/attr-arc600.d: Update test.
* testsuite/gas/arc/attr-arc600_mul32x16.d: Likewise.
* testsuite/gas/arc/attr-arc600_norm.d: Likewise.
* testsuite/gas/arc/attr-arc601.d: Likewise.
* testsuite/gas/arc/attr-arc601_mul32x16.d: Likewise.
* testsuite/gas/arc/attr-arc601_mul64.d: Likewise.
* testsuite/gas/arc/attr-arc601_norm.d: Likewise.
* testsuite/gas/arc/attr-arc700.d: Likewise.
* testsuite/gas/arc/attr-arcem.d: Likewise.
* testsuite/gas/arc/attr-archs.d: Likewise.
* testsuite/gas/arc/attr-autodetect-1.d: Likewise.
* testsuite/gas/arc/attr-cpu-a601.d: Likewise.
* testsuite/gas/arc/attr-cpu-a700.d: Likewise.
* testsuite/gas/arc/attr-cpu-em.d: Likewise.
* testsuite/gas/arc/attr-cpu-hs.d: Likewise.
* testsuite/gas/arc/attr-em.d: Likewise.
* testsuite/gas/arc/attr-em4.d: Likewise.
* testsuite/gas/arc/attr-em4_dmips.d: Likewise.
* testsuite/gas/arc/attr-em4_fpuda.d: Likewise.
* testsuite/gas/arc/attr-em4_fpus.d: Likewise.
* testsuite/gas/arc/attr-hs.d: Likewise.
* testsuite/gas/arc/attr-hs34.d: Likewise.
* testsuite/gas/arc/attr-hs38.d: Likewise.
* testsuite/gas/arc/attr-hs38_linux.d: Likewise.
* testsuite/gas/arc/attr-mul64.d: Likewise.
* testsuite/gas/arc/attr-name.d: Likewise.
* testsuite/gas/arc/attr-nps400.d: Likewise.
* testsuite/gas/arc/attr-override-mcpu.d: Likewise.
* testsuite/gas/arc/attr-quarkse_em.d: Likewise.

bfd/
2017-08-02  Claudiu Zissulescu <claziss@synopsys.com>

* elf32-arc.c (arc_elf_merge_attributes): Handle
Tag_ARC_ATR_version.

binutils/
2017-08-02  Claudiu Zissulescu <claziss@synopsys.com>

* readelf.c (display_arc_attribute): Print Tag_ARC_ATR_version.

include/
2017-08-02  Claudiu Zissulescu <claziss@synopsys.com>

* elf/arc.h (Tag_ARC_ATR_version): New tag.

ld/
2017-08-02  Claudiu Zissulescu <claziss@synopsys.com>

* testsuite/ld-arc/attr-merge-0.d: Update test.
* testsuite/ld-arc/attr-merge-1.d: Likewise.
* testsuite/ld-arc/attr-merge-2.d: Likewise.
* testsuite/ld-arc/attr-merge-3.d: Likewise.
* testsuite/ld-arc/attr-merge-5.d: Likewise.

43 files changed:
bfd/ChangeLog
bfd/elf32-arc.c
binutils/ChangeLog
binutils/readelf.c
gas/ChangeLog
gas/config/tc-arc.c
gas/testsuite/gas/arc/attr-arc600.d
gas/testsuite/gas/arc/attr-arc600_mul32x16.d
gas/testsuite/gas/arc/attr-arc600_norm.d
gas/testsuite/gas/arc/attr-arc601.d
gas/testsuite/gas/arc/attr-arc601_mul32x16.d
gas/testsuite/gas/arc/attr-arc601_mul64.d
gas/testsuite/gas/arc/attr-arc601_norm.d
gas/testsuite/gas/arc/attr-arc700.d
gas/testsuite/gas/arc/attr-arcem.d
gas/testsuite/gas/arc/attr-archs.d
gas/testsuite/gas/arc/attr-autodetect-1.d
gas/testsuite/gas/arc/attr-cpu-a601.d
gas/testsuite/gas/arc/attr-cpu-a700.d
gas/testsuite/gas/arc/attr-cpu-em.d
gas/testsuite/gas/arc/attr-cpu-hs.d
gas/testsuite/gas/arc/attr-em.d
gas/testsuite/gas/arc/attr-em4.d
gas/testsuite/gas/arc/attr-em4_dmips.d
gas/testsuite/gas/arc/attr-em4_fpuda.d
gas/testsuite/gas/arc/attr-em4_fpus.d
gas/testsuite/gas/arc/attr-hs.d
gas/testsuite/gas/arc/attr-hs34.d
gas/testsuite/gas/arc/attr-hs38.d
gas/testsuite/gas/arc/attr-hs38_linux.d
gas/testsuite/gas/arc/attr-mul64.d
gas/testsuite/gas/arc/attr-name.d
gas/testsuite/gas/arc/attr-nps400.d
gas/testsuite/gas/arc/attr-override-mcpu.d
gas/testsuite/gas/arc/attr-quarkse_em.d
include/ChangeLog
include/elf/arc.h
ld/ChangeLog
ld/testsuite/ld-arc/attr-merge-0.d
ld/testsuite/ld-arc/attr-merge-1.d
ld/testsuite/ld-arc/attr-merge-2.d
ld/testsuite/ld-arc/attr-merge-3.d
ld/testsuite/ld-arc/attr-merge-5.d

index 95fe0ee..6b5481c 100644 (file)
@@ -1,3 +1,8 @@
+2018-08-06  Claudiu Zissulescu  <claziss@synopsys.com>
+
+       * elf32-arc.c (arc_elf_merge_attributes): Handle
+       Tag_ARC_ATR_version.
+
 2018-08-05  Alan Modra  <amodra@gmail.com>
 
        * elf64-ppc.c (ADDI_R12_R11, ADDI_R12_R12, LIS_R12),
index a48ef0c..aaa2c3b 100644 (file)
@@ -578,6 +578,7 @@ arc_elf_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
   bfd_boolean result = TRUE;
   const char *sec_name = get_elf_backend_data (ibfd)->obj_attrs_section;
   char *tagname = NULL;
+  int offset = 0;
 
   /* Skip the linker stubs file.  This preserves previous behavior
      of accepting unknown attributes in the first input file - but
@@ -805,6 +806,11 @@ arc_elf_merge_attributes (bfd *ibfd, struct bfd_link_info *info)
          /* It is handled in Tag_ARC_CPU_base.  */
          break;
 
+       case Tag_ARC_ATR_version:
+         if (out_attr[i].i == 0)
+           out_attr[i].i = in_attr[i].i;
+         break;
+
        default:
          result
            = result && _bfd_elf_merge_unknown_attribute_low (ibfd, obfd, i);
index d7648ef..9fce7b6 100644 (file)
@@ -1,3 +1,7 @@
+2018-08-06  Claudiu Zissulescu  <claziss@synopsys.com>
+
+       * readelf.c (display_arc_attribute): Print Tag_ARC_ATR_version.
+
 2018-08-03  Nick Clifton  <nickc@redhat.com>
 
        * objcopy.c (merge_gnu_build_notes): Delete empty notes.  Merge
index 90dbdf7..8a61db6 100644 (file)
@@ -14246,6 +14246,12 @@ display_arc_attribute (unsigned char * p,
       printf ("  Tag_ARC_ISA_mpy_option: %d\n", val);
       break;
 
+    case Tag_ARC_ATR_version:
+      val = read_uleb128 (p, &len, end);
+      p += len;
+      printf ("  Tag_ARC_ATR_version: %d\n", val);
+      break;
+
     default:
       return display_tag_value (tag & 1, p, end);
     }
index a97edcd..9c764c7 100644 (file)
@@ -1,5 +1,40 @@
 2018-08-06  Claudiu Zissulescu  <claziss@synopsys.com>
 
+       * config/tc-arc.c (arc_set_public_attributes): Add
+       Tag_ARC_ATR_version.
+       (arc_convert_symbolic_attribute): Likewise.
+       * testsuite/gas/arc/attr-arc600.d: Update test.
+       * testsuite/gas/arc/attr-arc600_mul32x16.d: Likewise.
+       * testsuite/gas/arc/attr-arc600_norm.d: Likewise.
+       * testsuite/gas/arc/attr-arc601.d: Likewise.
+       * testsuite/gas/arc/attr-arc601_mul32x16.d: Likewise.
+       * testsuite/gas/arc/attr-arc601_mul64.d: Likewise.
+       * testsuite/gas/arc/attr-arc601_norm.d: Likewise.
+       * testsuite/gas/arc/attr-arc700.d: Likewise.
+       * testsuite/gas/arc/attr-arcem.d: Likewise.
+       * testsuite/gas/arc/attr-archs.d: Likewise.
+       * testsuite/gas/arc/attr-autodetect-1.d: Likewise.
+       * testsuite/gas/arc/attr-cpu-a601.d: Likewise.
+       * testsuite/gas/arc/attr-cpu-a700.d: Likewise.
+       * testsuite/gas/arc/attr-cpu-em.d: Likewise.
+       * testsuite/gas/arc/attr-cpu-hs.d: Likewise.
+       * testsuite/gas/arc/attr-em.d: Likewise.
+       * testsuite/gas/arc/attr-em4.d: Likewise.
+       * testsuite/gas/arc/attr-em4_dmips.d: Likewise.
+       * testsuite/gas/arc/attr-em4_fpuda.d: Likewise.
+       * testsuite/gas/arc/attr-em4_fpus.d: Likewise.
+       * testsuite/gas/arc/attr-hs.d: Likewise.
+       * testsuite/gas/arc/attr-hs34.d: Likewise.
+       * testsuite/gas/arc/attr-hs38.d: Likewise.
+       * testsuite/gas/arc/attr-hs38_linux.d: Likewise.
+       * testsuite/gas/arc/attr-mul64.d: Likewise.
+       * testsuite/gas/arc/attr-name.d: Likewise.
+       * testsuite/gas/arc/attr-nps400.d: Likewise.
+       * testsuite/gas/arc/attr-override-mcpu.d: Likewise.
+       * testsuite/gas/arc/attr-quarkse_em.d: Likewise.
+
+2018-08-06  Claudiu Zissulescu  <claziss@synopsys.com>
+
        * config/tc-arc.c (find_opcode_match): Accept uppercase aux-regs
        names.
        * testsuite/gas/arc/ld2.d: Update test.
index 3fc907a..7bf3081 100644 (file)
@@ -5014,6 +5014,9 @@ arc_set_public_attributes (void)
 
   /* Tag_ARC_ABI_tls.  */
   arc_set_attribute_int (Tag_ARC_ABI_tls, tls_option);
+
+  /* Tag_ARC_ATR_version.  */
+  arc_set_attribute_int (Tag_ARC_ATR_version, 1);
 }
 
 /* Add the default contents for the .ARC.attributes section.  */
@@ -5058,7 +5061,8 @@ int arc_convert_symbolic_attribute (const char *name)
   T (Tag_ARC_ABI_double_size),
   T (Tag_ARC_ISA_config),
   T (Tag_ARC_ISA_apex),
-  T (Tag_ARC_ISA_mpy_option)
+  T (Tag_ARC_ISA_mpy_option),
+  T (Tag_ARC_ATR_version)
 #undef T
     };
   unsigned int i;
index 07eecc6..db252f8 100644 (file)
@@ -8,3 +8,4 @@ File Attributes
   Tag_ARC_CPU_base: ARC6xx
   Tag_ARC_CPU_name: "arc600"
   Tag_ARC_ABI_osver: v4
+  Tag_ARC_ATR_version: 1
index 6ca411d..b88839d 100644 (file)
@@ -8,3 +8,4 @@ File Attributes
   Tag_ARC_CPU_base: ARC6xx
   Tag_ARC_CPU_name: "arc600_mul32x16"
   Tag_ARC_ABI_osver: v4
+  Tag_ARC_ATR_version: 1
index 2ff0a71..58dd43e 100644 (file)
@@ -8,3 +8,4 @@ File Attributes
   Tag_ARC_CPU_base: ARC6xx
   Tag_ARC_CPU_name: "arc600_norm"
   Tag_ARC_ABI_osver: v4
+  Tag_ARC_ATR_version: 1
index f8fb744..7c66056 100644 (file)
@@ -8,3 +8,4 @@ File Attributes
   Tag_ARC_CPU_base: ARC6xx
   Tag_ARC_CPU_name: "arc601"
   Tag_ARC_ABI_osver: v4
+  Tag_ARC_ATR_version: 1
index 8104276..9fff750 100644 (file)
@@ -8,3 +8,4 @@ File Attributes
   Tag_ARC_CPU_base: ARC6xx
   Tag_ARC_CPU_name: "arc601_mul32x16"
   Tag_ARC_ABI_osver: v4
+  Tag_ARC_ATR_version: 1
index 9985476..96ff696 100644 (file)
@@ -8,3 +8,4 @@ File Attributes
   Tag_ARC_CPU_base: ARC6xx
   Tag_ARC_CPU_name: "arc601_mul64"
   Tag_ARC_ABI_osver: v4
+  Tag_ARC_ATR_version: 1
index 18131dc..6019a12 100644 (file)
@@ -8,3 +8,4 @@ File Attributes
   Tag_ARC_CPU_base: ARC6xx
   Tag_ARC_CPU_name: "arc601_norm"
   Tag_ARC_ABI_osver: v4
+  Tag_ARC_ATR_version: 1
index cc4dc38..41a5f74 100644 (file)
@@ -8,3 +8,4 @@ File Attributes
   Tag_ARC_CPU_base: ARC7xx
   Tag_ARC_CPU_name: "arc700"
   Tag_ARC_ABI_osver: v4
+  Tag_ARC_ATR_version: 1
index da97473..25a6958 100644 (file)
@@ -8,3 +8,4 @@ File Attributes
   Tag_ARC_CPU_base: ARCEM
   Tag_ARC_CPU_name: "arcem"
   Tag_ARC_ABI_osver: v4
+  Tag_ARC_ATR_version: 1
index c0d2e63..a32d76e 100644 (file)
@@ -9,3 +9,4 @@ File Attributes
   Tag_ARC_CPU_name: "archs"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD"
+  Tag_ARC_ATR_version: 1
index bbe8525..73352c9 100644 (file)
@@ -9,3 +9,4 @@ File Attributes
   Tag_ARC_ABI_pic: GNU
   Tag_ARC_ABI_tls: r25
   Tag_ARC_ISA_config: "CD"
+  Tag_ARC_ATR_version: 1
index 33a2f31..97c1f91 100644 (file)
@@ -6,3 +6,4 @@ File Attributes
   Tag_ARC_CPU_base: ARC6xx
   Tag_ARC_CPU_name: "arc601"
   Tag_ARC_ABI_osver: v4
+  Tag_ARC_ATR_version: 1
index db69ade..41c0c67 100644 (file)
@@ -6,3 +6,4 @@ File Attributes
   Tag_ARC_CPU_base: ARC7xx
   Tag_ARC_CPU_name: "arc700"
   Tag_ARC_ABI_osver: v4
+  Tag_ARC_ATR_version: 1
index c635bd5..5b26025 100644 (file)
@@ -6,3 +6,4 @@ File Attributes
   Tag_ARC_CPU_base: ARCEM
   Tag_ARC_CPU_name: "em"
   Tag_ARC_ABI_osver: v4
+  Tag_ARC_ATR_version: 1
index 4de82ad..aa8a3e6 100644 (file)
@@ -7,3 +7,4 @@ File Attributes
   Tag_ARC_CPU_name: "hs"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD"
+  Tag_ARC_ATR_version: 1
index a322ff6..94e365a 100644 (file)
@@ -8,3 +8,4 @@ File Attributes
   Tag_ARC_CPU_base: ARCEM
   Tag_ARC_CPU_name: "em"
   Tag_ARC_ABI_osver: v4
+  Tag_ARC_ATR_version: 1
index bbc6e67..32d312f 100644 (file)
@@ -9,3 +9,4 @@ File Attributes
   Tag_ARC_CPU_name: "em4"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD"
+  Tag_ARC_ATR_version: 1
index 4d923bd..1973db2 100644 (file)
@@ -9,3 +9,4 @@ File Attributes
   Tag_ARC_CPU_name: "em4_dmips"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD"
+  Tag_ARC_ATR_version: 1
index 432315a..2ff3f66 100644 (file)
@@ -9,3 +9,4 @@ File Attributes
   Tag_ARC_CPU_name: "em4_fpuda"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD,FPUDA"
+  Tag_ARC_ATR_version: 1
index b658e2a..e5cdb91 100644 (file)
@@ -9,3 +9,4 @@ File Attributes
   Tag_ARC_CPU_name: "em4_fpus"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD"
+  Tag_ARC_ATR_version: 1
index 8486214..716635b 100644 (file)
@@ -9,3 +9,4 @@ File Attributes
   Tag_ARC_CPU_name: "hs"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD"
+  Tag_ARC_ATR_version: 1
index 8b92ec6..2bf6a12 100644 (file)
@@ -9,3 +9,4 @@ File Attributes
   Tag_ARC_CPU_name: "hs34"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD"
+  Tag_ARC_ATR_version: 1
index 8972431..915ccdd 100644 (file)
@@ -9,3 +9,4 @@ File Attributes
   Tag_ARC_CPU_name: "hs38"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD"
+  Tag_ARC_ATR_version: 1
index a695f29..41b5eda 100644 (file)
@@ -9,3 +9,4 @@ File Attributes
   Tag_ARC_CPU_name: "hs38_linux"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD"
+  Tag_ARC_ATR_version: 1
index 5fc75ff..81cb722 100644 (file)
@@ -8,3 +8,4 @@ File Attributes
   Tag_ARC_CPU_base: ARC6xx
   Tag_ARC_CPU_name: "arc600_mul64"
   Tag_ARC_ABI_osver: v4
+  Tag_ARC_ATR_version: 1
index ff9a34b..25e3ce8 100644 (file)
@@ -20,3 +20,4 @@ File Attributes
   Tag_ARC_ISA_config: "CD,FPUDA"
   Tag_ARC_ISA_apex: "QUARKSE"
   Tag_ARC_ISA_mpy_option: 6
+  Tag_ARC_ATR_version: 1
index 15009ce..403d046 100644 (file)
@@ -9,3 +9,4 @@ File Attributes
   Tag_ARC_CPU_name: "nps400"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "NPS400"
+  Tag_ARC_ATR_version: 1
index 67241e9..a8a88e4 100644 (file)
@@ -8,3 +8,4 @@ File Attributes
   Tag_ARC_CPU_name: "archs"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD"
+  Tag_ARC_ATR_version: 1
index 64c85c3..3f433c4 100644 (file)
@@ -9,3 +9,4 @@ File Attributes
   Tag_ARC_CPU_name: "quarkse_em"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD,DPFP,SPFP"
+  Tag_ARC_ATR_version: 1
index e36dd49..d75f11c 100644 (file)
@@ -1,5 +1,9 @@
 2018-08-06  Claudiu Zissulescu  <claziss@synopsys.com>
 
+       * elf/arc.h (Tag_ARC_ATR_version): New tag.
+
+2018-08-06  Claudiu Zissulescu  <claziss@synopsys.com>
+
        * opcode/arc.h (ARC_OPCODE_ARCV1): Define.
 
 2018-08-01  Richard Earnshaw  <rearnsha@arm.com>
index 85617fc..72eaf1b 100644 (file)
@@ -83,7 +83,8 @@ enum {
   Tag_ARC_ABI_double_size,
   Tag_ARC_ISA_config,
   Tag_ARC_ISA_apex,
-  Tag_ARC_ISA_mpy_option
+  Tag_ARC_ISA_mpy_option,
+  Tag_ARC_ATR_version = 20
 };
 
 /* Values for the Tag_ARC_cpu_base attribute.  */
index 62ba530..04f19ce 100644 (file)
@@ -1,3 +1,11 @@
+2018-08-06  Claudiu Zissulescu  <claziss@synopsys.com>
+
+       * testsuite/ld-arc/attr-merge-0.d: Update test.
+       * testsuite/ld-arc/attr-merge-1.d: Likewise.
+       * testsuite/ld-arc/attr-merge-2.d: Likewise.
+       * testsuite/ld-arc/attr-merge-3.d: Likewise.
+       * testsuite/ld-arc/attr-merge-5.d: Likewise.
+
 2018-08-05  Alan Modra  <amodra@gmail.com>
 
        * testsuite/ld-powerpc/ext.d,
index 2c3a909..eda47ad 100644 (file)
@@ -10,3 +10,4 @@ File Attributes
   Tag_ARC_CPU_name: "em"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD"
+  Tag_ARC_ATR_version: 1
index e2e804d..e4ef919 100644 (file)
@@ -10,3 +10,4 @@ File Attributes
   Tag_ARC_CPU_name: "em"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD,DPFP,SPFP"
+  Tag_ARC_ATR_version: 1
index 4c6898e..9d57d48 100644 (file)
@@ -10,3 +10,4 @@ File Attributes
   Tag_ARC_CPU_name: "em"
   Tag_ARC_ABI_osver: v5
   Tag_ARC_ISA_config: "CD"
+  Tag_ARC_ATR_version: 1
index 00d6de0..bac898f 100644 (file)
@@ -10,3 +10,4 @@ File Attributes
   Tag_ARC_CPU_name: "archs"
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD,FPUS"
+  Tag_ARC_ATR_version: 1
index f08b762..3f661be 100644 (file)
@@ -11,3 +11,4 @@ File Attributes
   Tag_ARC_ABI_osver: v4
   Tag_ARC_ISA_config: "CD,FPUDA,BS"
   Tag_ARC_ISA_mpy_option: 6
+  Tag_ARC_ATR_version: 1