aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-arm.c
diff options
context:
space:
mode:
authorAndrew Stubbs <andrew.stubbs@st.com>2009-01-19 11:50:31 +0000
committerAndrew Stubbs <andrew.stubbs@st.com>2009-01-19 11:50:31 +0000
commit2d0bb7614be1a94ab9051c35fe95514b05fc0823 (patch)
tree248548d3974efc4e89823e0ca4dcde4967e8d2cb /bfd/elf32-arm.c
parenta77e83b76e29dd542c48e2edb3c3980a6c790262 (diff)
downloadgdb-2d0bb7614be1a94ab9051c35fe95514b05fc0823.zip
gdb-2d0bb7614be1a94ab9051c35fe95514b05fc0823.tar.gz
gdb-2d0bb7614be1a94ab9051c35fe95514b05fc0823.tar.bz2
2009-01-19 Andrew Stubbs <ams@codesourcery.com>
bfd/ * elf-attrs.c (is_default_attr): Support defaultless attributes. (bfd_elf_add_obj_attr_int): Get type from _bfd_elf_obj_attrs_arg_type. (bfd_elf_add_obj_attr_string): Likewise. (bfd_elf_add_obj_attr_int_string): Likewise. (_bfd_elf_parse_attributes): Allow for unknown flag bits in type. * elf-bfd.h (struct obj_attribute): Document new flag bit. * elf32-arm.c (elf32_arm_obj_attrs_arg_type): Specify that Tag_nodefaults has no default value. (elf32_arm_merge_eabi_attributes): Modify the Tag_nodefaults comment to reflect the new state. gas/ * read.c (s_vendor_attribute): Allow for unknown flag bits in type.
Diffstat (limited to 'bfd/elf32-arm.c')
-rw-r--r--bfd/elf32-arm.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index ece1a56..a047c5f 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -8139,6 +8139,8 @@ elf32_arm_obj_attrs_arg_type (int tag)
{
if (tag == Tag_compatibility)
return 3;
+ else if (tag == Tag_nodefaults)
+ return 5;
else if (tag == 4 || tag == 5)
return 2;
else if (tag < 32)
@@ -8675,11 +8677,10 @@ elf32_arm_merge_eabi_attributes (bfd *ibfd, bfd *obfd)
break;
case Tag_nodefaults:
- /* This tag is set if it exists, but the value is unused.
- Unfortunately, we don't record whether each attribute is zero
- initialized, or read from the file, so the information has been
- lost. In any case, we don't write attributes with zero values.
- Do nothing. */
+ /* This tag is set if it exists, but the value is unused (and is
+ typically zero). We don't actually need to do anything here -
+ the merge happens automatically when the type flags are merged
+ below. */
break;
case Tag_also_compatible_with:
/* Already done in Tag_CPU_arch. */