bfd:
* elf32-tic6x.c (elf32_tic6x_obj_attrs_handle_unknown): New. (elf32_tic6x_merge_attributes): Use _bfd_elf_merge_unknown_attribute_low and _bfd_elf_merge_unknown_attribute_list. (elf_backend_obj_attrs_handle_unknown): Define. ld/testsuite: * ld-tic6x/attr-unknown-1.d, ld-tic6x/attr-unknown-1000-1.s, ld-tic6x/attr-unknown-1000-2.s, ld-tic6x/attr-unknown-1024-1.s, ld-tic6x/attr-unknown-2.d, ld-tic6x/attr-unknown-3.d, ld-tic6x/attr-unknown-4.d, ld-tic6x/attr-unknown-5.d, ld-tic6x/attr-unknown-54-1.s, ld-tic6x/attr-unknown-55-a.s, ld-tic6x/attr-unknown-6.d, ld-tic6x/attr-unknown-7.d, ld-tic6x/attr-unknown-71-a.s, ld-tic6x/attr-unknown-71-b.s: New tests.
This commit is contained in:
parent
e1a6b26358
commit
0547accfd9
@ -1,3 +1,11 @@
|
|||||||
|
2010-11-05 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* elf32-tic6x.c (elf32_tic6x_obj_attrs_handle_unknown): New.
|
||||||
|
(elf32_tic6x_merge_attributes): Use
|
||||||
|
_bfd_elf_merge_unknown_attribute_low and
|
||||||
|
_bfd_elf_merge_unknown_attribute_list.
|
||||||
|
(elf_backend_obj_attrs_handle_unknown): Define.
|
||||||
|
|
||||||
2010-11-05 Joseph Myers <joseph@codesourcery.com>
|
2010-11-05 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
* elf-attrs.c (_bfd_elf_merge_unknown_attribute_low,
|
* elf-attrs.c (_bfd_elf_merge_unknown_attribute_low,
|
||||||
|
@ -1679,6 +1679,26 @@ elf32_tic6x_obj_attrs_order (int num)
|
|||||||
return num;
|
return num;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bfd_boolean
|
||||||
|
elf32_tic6x_obj_attrs_handle_unknown (bfd *abfd, int tag)
|
||||||
|
{
|
||||||
|
if ((tag & 127) < 64)
|
||||||
|
{
|
||||||
|
_bfd_error_handler
|
||||||
|
(_("%B: error: unknown mandatory EABI object attribute %d"),
|
||||||
|
abfd, tag);
|
||||||
|
bfd_set_error (bfd_error_bad_value);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_bfd_error_handler
|
||||||
|
(_("%B: warning: unknown EABI object attribute %d"),
|
||||||
|
abfd, tag);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Merge the Tag_ISA attribute values ARCH1 and ARCH2
|
/* Merge the Tag_ISA attribute values ARCH1 and ARCH2
|
||||||
and return the merged value. At present, all merges succeed, so no
|
and return the merged value. At present, all merges succeed, so no
|
||||||
return value for errors is defined. */
|
return value for errors is defined. */
|
||||||
@ -1938,7 +1958,13 @@ elf32_tic6x_merge_attributes (bfd *ibfd, bfd *obfd)
|
|||||||
out_attr[i].s = NULL;
|
out_attr[i].s = NULL;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case Tag_ABI_compatibility:
|
||||||
|
/* Merged in _bfd_elf_merge_object_attributes. */
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
result
|
||||||
|
= result && _bfd_elf_merge_unknown_attribute_low (ibfd, obfd, i);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1950,6 +1976,8 @@ elf32_tic6x_merge_attributes (bfd *ibfd, bfd *obfd)
|
|||||||
if (!_bfd_elf_merge_object_attributes (ibfd, obfd))
|
if (!_bfd_elf_merge_object_attributes (ibfd, obfd))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
|
result &= _bfd_elf_merge_unknown_attribute_list (ibfd, obfd);
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1984,6 +2012,7 @@ elf32_tic6x_merge_private_bfd_data (bfd *ibfd, bfd *obfd)
|
|||||||
#define elf_backend_may_use_rel_p 1
|
#define elf_backend_may_use_rel_p 1
|
||||||
#define elf_backend_may_use_rela_p 1
|
#define elf_backend_may_use_rela_p 1
|
||||||
#define elf_backend_obj_attrs_arg_type elf32_tic6x_obj_attrs_arg_type
|
#define elf_backend_obj_attrs_arg_type elf32_tic6x_obj_attrs_arg_type
|
||||||
|
#define elf_backend_obj_attrs_handle_unknown elf32_tic6x_obj_attrs_handle_unknown
|
||||||
#define elf_backend_obj_attrs_order elf32_tic6x_obj_attrs_order
|
#define elf_backend_obj_attrs_order elf32_tic6x_obj_attrs_order
|
||||||
#define elf_backend_obj_attrs_section ".c6xabi.attributes"
|
#define elf_backend_obj_attrs_section ".c6xabi.attributes"
|
||||||
#define elf_backend_obj_attrs_section_type SHT_C6000_ATTRIBUTES
|
#define elf_backend_obj_attrs_section_type SHT_C6000_ATTRIBUTES
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
2010-11-05 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
|
* ld-tic6x/attr-unknown-1.d, ld-tic6x/attr-unknown-1000-1.s,
|
||||||
|
ld-tic6x/attr-unknown-1000-2.s, ld-tic6x/attr-unknown-1024-1.s,
|
||||||
|
ld-tic6x/attr-unknown-2.d, ld-tic6x/attr-unknown-3.d,
|
||||||
|
ld-tic6x/attr-unknown-4.d, ld-tic6x/attr-unknown-5.d,
|
||||||
|
ld-tic6x/attr-unknown-54-1.s, ld-tic6x/attr-unknown-55-a.s,
|
||||||
|
ld-tic6x/attr-unknown-6.d, ld-tic6x/attr-unknown-7.d,
|
||||||
|
ld-tic6x/attr-unknown-71-a.s, ld-tic6x/attr-unknown-71-b.s: New
|
||||||
|
tests.
|
||||||
|
|
||||||
2010-11-05 Dave Korn <dave.korn.cygwin@gmail.com>
|
2010-11-05 Dave Korn <dave.korn.cygwin@gmail.com>
|
||||||
|
|
||||||
* ld-plugin/plugin.exp (testobjfiles): Dont use HOSTING_CRT0.
|
* ld-plugin/plugin.exp (testobjfiles): Dont use HOSTING_CRT0.
|
||||||
|
6
ld/testsuite/ld-tic6x/attr-unknown-1.d
Normal file
6
ld/testsuite/ld-tic6x/attr-unknown-1.d
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#name: C6X unknown attribute merging 1
|
||||||
|
#as: -mlittle-endian
|
||||||
|
#ld: -r -melf32_tic6x_le
|
||||||
|
#source: attr-unknown-54-1.s
|
||||||
|
#source: attr-unknown-54-1.s
|
||||||
|
#error: .*error: unknown mandatory EABI object attribute 54
|
1
ld/testsuite/ld-tic6x/attr-unknown-1000-1.s
Normal file
1
ld/testsuite/ld-tic6x/attr-unknown-1000-1.s
Normal file
@ -0,0 +1 @@
|
|||||||
|
.c6xabi_attribute 1000, 1
|
1
ld/testsuite/ld-tic6x/attr-unknown-1000-2.s
Normal file
1
ld/testsuite/ld-tic6x/attr-unknown-1000-2.s
Normal file
@ -0,0 +1 @@
|
|||||||
|
.c6xabi_attribute 1000, 2
|
1
ld/testsuite/ld-tic6x/attr-unknown-1024-1.s
Normal file
1
ld/testsuite/ld-tic6x/attr-unknown-1024-1.s
Normal file
@ -0,0 +1 @@
|
|||||||
|
.c6xabi_attribute 1024, 1
|
6
ld/testsuite/ld-tic6x/attr-unknown-2.d
Normal file
6
ld/testsuite/ld-tic6x/attr-unknown-2.d
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#name: C6X unknown attribute merging 2
|
||||||
|
#as: -mlittle-endian
|
||||||
|
#ld: -r -melf32_tic6x_le
|
||||||
|
#source: attr-unknown-55-a.s
|
||||||
|
#source: attr-unknown-55-a.s
|
||||||
|
#error: .*error: unknown mandatory EABI object attribute 55
|
12
ld/testsuite/ld-tic6x/attr-unknown-3.d
Normal file
12
ld/testsuite/ld-tic6x/attr-unknown-3.d
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#name: C6X unknown attribute merging 3
|
||||||
|
#as: -mlittle-endian
|
||||||
|
#ld: -r -melf32_tic6x_le
|
||||||
|
#source: attr-unknown-71-a.s
|
||||||
|
#source: attr-unknown-71-a.s
|
||||||
|
#warning: .*warning: unknown EABI object attribute 71
|
||||||
|
#readelf: -A
|
||||||
|
|
||||||
|
Attribute Section: c6xabi
|
||||||
|
File Attributes
|
||||||
|
Tag_ISA: C674x
|
||||||
|
Tag_unknown_71: "a"
|
11
ld/testsuite/ld-tic6x/attr-unknown-4.d
Normal file
11
ld/testsuite/ld-tic6x/attr-unknown-4.d
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#name: C6X unknown attribute merging 4
|
||||||
|
#as: -mlittle-endian
|
||||||
|
#ld: -r -melf32_tic6x_le
|
||||||
|
#source: attr-unknown-71-a.s
|
||||||
|
#source: attr-unknown-71-b.s
|
||||||
|
#warning: .*warning: unknown EABI object attribute 71
|
||||||
|
#readelf: -A
|
||||||
|
|
||||||
|
Attribute Section: c6xabi
|
||||||
|
File Attributes
|
||||||
|
Tag_ISA: C674x
|
12
ld/testsuite/ld-tic6x/attr-unknown-5.d
Normal file
12
ld/testsuite/ld-tic6x/attr-unknown-5.d
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#name: C6X unknown attribute merging 5
|
||||||
|
#as: -mlittle-endian
|
||||||
|
#ld: -r -melf32_tic6x_le
|
||||||
|
#source: attr-unknown-1000-1.s
|
||||||
|
#source: attr-unknown-1000-1.s
|
||||||
|
#warning: .*warning: unknown EABI object attribute 1000
|
||||||
|
#readelf: -A
|
||||||
|
|
||||||
|
Attribute Section: c6xabi
|
||||||
|
File Attributes
|
||||||
|
Tag_ISA: C674x
|
||||||
|
Tag_unknown_1000: 1 \(0x1\)
|
1
ld/testsuite/ld-tic6x/attr-unknown-54-1.s
Normal file
1
ld/testsuite/ld-tic6x/attr-unknown-54-1.s
Normal file
@ -0,0 +1 @@
|
|||||||
|
.c6xabi_attribute 54, 1
|
1
ld/testsuite/ld-tic6x/attr-unknown-55-a.s
Normal file
1
ld/testsuite/ld-tic6x/attr-unknown-55-a.s
Normal file
@ -0,0 +1 @@
|
|||||||
|
.c6xabi_attribute 55, "a"
|
11
ld/testsuite/ld-tic6x/attr-unknown-6.d
Normal file
11
ld/testsuite/ld-tic6x/attr-unknown-6.d
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#name: C6X unknown attribute merging 6
|
||||||
|
#as: -mlittle-endian
|
||||||
|
#ld: -r -melf32_tic6x_le
|
||||||
|
#source: attr-unknown-1000-1.s
|
||||||
|
#source: attr-unknown-1000-2.s
|
||||||
|
#warning: .*warning: unknown EABI object attribute 1000
|
||||||
|
#readelf: -A
|
||||||
|
|
||||||
|
Attribute Section: c6xabi
|
||||||
|
File Attributes
|
||||||
|
Tag_ISA: C674x
|
6
ld/testsuite/ld-tic6x/attr-unknown-7.d
Normal file
6
ld/testsuite/ld-tic6x/attr-unknown-7.d
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#name: C6X unknown attribute merging 7
|
||||||
|
#as: -mlittle-endian
|
||||||
|
#ld: -r -melf32_tic6x_le
|
||||||
|
#source: attr-unknown-1024-1.s
|
||||||
|
#source: attr-unknown-1024-1.s
|
||||||
|
#error: .*error: unknown mandatory EABI object attribute 1024
|
1
ld/testsuite/ld-tic6x/attr-unknown-71-a.s
Normal file
1
ld/testsuite/ld-tic6x/attr-unknown-71-a.s
Normal file
@ -0,0 +1 @@
|
|||||||
|
.c6xabi_attribute 71, "a"
|
1
ld/testsuite/ld-tic6x/attr-unknown-71-b.s
Normal file
1
ld/testsuite/ld-tic6x/attr-unknown-71-b.s
Normal file
@ -0,0 +1 @@
|
|||||||
|
.c6xabi_attribute 71, "b"
|
Loading…
x
Reference in New Issue
Block a user