* elf32-tic6x.c (elf32_tic6x_obj_attrs_arg_type): Check
	Tag_ABI_compatibility not Tag_compatibility.
	(elf32_tic6x_merge_attributes): Update compatibility attribute
	name in comment.  Return FALSE if merging common attributes fails.

binutils:
	* readelf.c (display_tic6x_attribute): Use Tag_ABI_compatibility
	not hardcoded 32.  Display name of this attribute.

gas:
	* doc/c-tic6x.texi (TIC6X Directives): Mention
	Tag_ABI_compatibility.

gas/testsuite:
	* gas/tic6x/attr-compatibility-directive-1.d,
	gas/tic6x/attr-compatibility-directive-1.s,
	gas/tic6x/attr-compatibility-directive-2.d,
	gas/tic6x/attr-compatibility-directive-2.s: New tests.

include/elf:
	* tic6x-attrs.h (Tag_ABI_compatibility): Define.

ld/testsuite:
	* ld-tic6x/attr-compatibility-gnu-gnu.d,
	ld-tic6x/attr-compatibility-gnu-other.d,
	ld-tic6x/attr-compatibility-gnu.s,
	ld-tic6x/attr-compatibility-other-gnu.d,
	ld-tic6x/attr-compatibility-other-other.d,
	ld-tic6x/attr-compatibility-other.s: New tests.
This commit is contained in:
Joseph Myers 2010-10-29 16:47:55 +00:00
parent 29d4a7cacd
commit 3cbd1c0665
20 changed files with 96 additions and 7 deletions

View File

@ -1,3 +1,10 @@
2010-10-29 Joseph Myers <joseph@codesourcery.com>
* elf32-tic6x.c (elf32_tic6x_obj_attrs_arg_type): Check
Tag_ABI_compatibility not Tag_compatibility.
(elf32_tic6x_merge_attributes): Update compatibility attribute
name in comment. Return FALSE if merging common attributes fails.
2010-10-29 Nick Clifton <nickc@redhat.com>
PR bintils/6962

View File

@ -1661,7 +1661,7 @@ elf32_tic6x_relocate_section (bfd *output_bfd,
static int
elf32_tic6x_obj_attrs_arg_type (int tag)
{
if (tag == Tag_compatibility)
if (tag == Tag_ABI_compatibility)
return ATTR_TYPE_FLAG_INT_VAL | ATTR_TYPE_FLAG_STR_VAL;
else
/* Correct for known attributes, arbitrary for others. */
@ -1729,8 +1729,9 @@ elf32_tic6x_merge_attributes (bfd *ibfd, bfd *obfd)
(_("warning: %B and %B differ in whether code is compiled for DSBT"),
obfd, ibfd);
}
/* Merge Tag_compatibility attributes and any common GNU ones. */
_bfd_elf_merge_object_attributes (ibfd, obfd);
/* Merge Tag_ABI_compatibility attributes and any common GNU ones. */
if (!_bfd_elf_merge_object_attributes (ibfd, obfd))
return FALSE;
return TRUE;
}

View File

@ -1,3 +1,8 @@
2010-10-29 Joseph Myers <joseph@codesourcery.com>
* readelf.c (display_tic6x_attribute): Use Tag_ABI_compatibility
not hardcoded 32. Display name of this attribute.
2010-10-29 H.J. Lu <hongjiu.lu@intel.com>
* addr2line.c (process_file): Set BFD_DECOMPRESS.

View File

@ -10822,11 +10822,10 @@ display_tic6x_attribute (unsigned char * p)
}
return p;
case 32:
/* Tag_compatibility - treated as generic by binutils for now
although not currently specified for C6X. */
case Tag_ABI_compatibility:
val = read_uleb128 (p, &len);
p += len;
printf (" Tag_ABI_compatibility: ");
printf (_("flag = %d, vendor = %s\n"), val, p);
p += strlen ((char *) p) + 1;
return p;

View File

@ -1,3 +1,8 @@
2010-10-29 Joseph Myers <joseph@codesourcery.com>
* doc/c-tic6x.texi (TIC6X Directives): Mention
Tag_ABI_compatibility.
2010-10-29 H.J. Lu <hongjiu.lu@intel.com>
* write.c (compress_debug): Optimize section flags check.

View File

@ -125,7 +125,7 @@ These have the same effects as @option{-matomic} and
Set the C6000 EABI build attribute @var{tag} to @var{value}.
The @var{tag} is either an attribute number or one of
@code{Tag_ISA} or @code{Tag_ABI_DSBT}. The
@code{Tag_ISA}, @code{Tag_ABI_DSBT} and @code{Tag_ABI_compatibility}. The
@var{value} is either a @code{number}, @code{"string"}, or
@code{number, "string"} depending on the tag.

View File

@ -1,3 +1,10 @@
2010-10-29 Joseph Myers <joseph@codesourcery.com>
* gas/tic6x/attr-compatibility-directive-1.d,
gas/tic6x/attr-compatibility-directive-1.s,
gas/tic6x/attr-compatibility-directive-2.d,
gas/tic6x/attr-compatibility-directive-2.s: New tests.
2010-10-29 H.J. Lu <hongjiu.lu@intel.com>
* elf/dwarf2-1.s: Replace .zdebug_abbrev section with

View File

@ -0,0 +1,9 @@
#readelf: -A
#name: C6X compatibility attribute, directives 1
#as:
#source: attr-compatibility-directive-1.s
Attribute Section: c6xabi
File Attributes
Tag_ISA: C674x
Tag_ABI_compatibility: flag = 1, vendor = gnu

View File

@ -0,0 +1 @@
.c6xabi_attribute Tag_ABI_compatibility, 1, "gnu"

View File

@ -0,0 +1,9 @@
#readelf: -A
#name: C6X compatibility attribute, directives 2
#as:
#source: attr-compatibility-directive-2.s
Attribute Section: c6xabi
File Attributes
Tag_ISA: C674x
Tag_ABI_compatibility: flag = 1, vendor = gnu

View File

@ -0,0 +1 @@
.c6xabi_attribute 32, 1, "gnu"

View File

@ -1,3 +1,7 @@
2010-10-29 Joseph Myers <joseph@codesourcery.com>
* tic6x-attrs.h (Tag_ABI_compatibility): Define.
2010-10-29 Bernd Schmidt <bernds@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>

View File

@ -24,3 +24,4 @@
TAG(Tag_ISA, 4)
TAG(Tag_ABI_DSBT, 12)
TAG(Tag_ABI_compatibility, 32)

View File

@ -1,3 +1,12 @@
2010-10-29 Joseph Myers <joseph@codesourcery.com>
* ld-tic6x/attr-compatibility-gnu-gnu.d,
ld-tic6x/attr-compatibility-gnu-other.d,
ld-tic6x/attr-compatibility-gnu.s,
ld-tic6x/attr-compatibility-other-gnu.d,
ld-tic6x/attr-compatibility-other-other.d,
ld-tic6x/attr-compatibility-other.s: New tests.
2010-10-29 H.J. Lu <hongjiu.lu@intel.com>
* ld-elf/compress1c.d: Only run for Linux targets.

View File

@ -0,0 +1,11 @@
#name: C6X compatibility attribute merging, gnu gnu
#as: -mlittle-endian
#ld: -r -melf32_tic6x_le
#source: attr-compatibility-gnu.s
#source: attr-compatibility-gnu.s
#readelf: -A
Attribute Section: c6xabi
File Attributes
Tag_ISA: C674x
Tag_ABI_compatibility: flag = 1, vendor = gnu

View File

@ -0,0 +1,6 @@
#name: C6X compatibility attribute merging, gnu other
#as: -mlittle-endian
#ld: -r -melf32_tic6x_le
#source: attr-compatibility-gnu.s
#source: attr-compatibility-other.s
#error: .*Object has vendor-specific contents that must be processed by the 'other' toolchain

View File

@ -0,0 +1 @@
.c6xabi_attribute Tag_ABI_compatibility, 1, "gnu"

View File

@ -0,0 +1,6 @@
#name: C6X compatibility attribute merging, other gnu
#as: -mlittle-endian
#ld: -r -melf32_tic6x_le
#source: attr-compatibility-other.s
#source: attr-compatibility-gnu.s
#error: .*Object tag '1, gnu' is incompatible with tag '1, other'

View File

@ -0,0 +1,6 @@
#name: C6X compatibility attribute merging, other other
#as: -mlittle-endian
#ld: -r -melf32_tic6x_le
#source: attr-compatibility-other.s
#source: attr-compatibility-other.s
#error: .*Object has vendor-specific contents that must be processed by the 'other' toolchain

View File

@ -0,0 +1 @@
.c6xabi_attribute Tag_ABI_compatibility, 1, "other"