[ARC] Add Tag_ARC_ATR_version.

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.
This commit is contained in:
claziss 2018-08-06 16:41:32 +03:00 committed by Claudiu Zissulescu
parent b6523c37fb
commit db1e1b45b4
43 changed files with 109 additions and 2 deletions

View 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),

View 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);

View 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

View 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);
}

View File

@ -1,3 +1,38 @@
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

View 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;

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View File

@ -1,3 +1,7 @@
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.

View 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. */

View 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,

View 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

View 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

View 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

View 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

View 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