/* ELF attributes support (based on ARM EABI attributes).
- Copyright 2005, 2006, 2007
+ Copyright 2005, 2006, 2007, 2009, 2010
Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
attr = elf_known_obj_attributes (abfd)[vendor];
size = 0;
- for (i = 4; i < NUM_KNOWN_OBJ_ATTRIBUTES; i++)
+ for (i = LEAST_KNOWN_OBJ_ATTRIBUTE; i < NUM_KNOWN_OBJ_ATTRIBUTES; i++)
size += obj_attr_size (i, &attr[i]);
for (list = elf_other_obj_attributes (abfd)[vendor];
p += 4;
attr = elf_known_obj_attributes (abfd)[vendor];
- for (i = 4; i < NUM_KNOWN_OBJ_ATTRIBUTES; i++)
+ for (i = LEAST_KNOWN_OBJ_ATTRIBUTE; i < NUM_KNOWN_OBJ_ATTRIBUTES; i++)
{
int tag = i;
if (get_elf_backend_data (abfd)->obj_attrs_order)
{
char * p;
int len;
-
+
len = strlen (s) + 1;
p = (char *) bfd_alloc (abfd, len);
- return memcpy (p, s, len);
+ return (char *) memcpy (p, s, len);
}
/* Add a string object attribute. */
for (vendor = OBJ_ATTR_FIRST; vendor <= OBJ_ATTR_LAST; vendor++)
{
- in_attr = &elf_known_obj_attributes (ibfd)[vendor][4];
- out_attr = &elf_known_obj_attributes (obfd)[vendor][4];
- for (i = 4; i < NUM_KNOWN_OBJ_ATTRIBUTES; i++)
+ in_attr
+ = &elf_known_obj_attributes (ibfd)[vendor][LEAST_KNOWN_OBJ_ATTRIBUTE];
+ out_attr
+ = &elf_known_obj_attributes (obfd)[vendor][LEAST_KNOWN_OBJ_ATTRIBUTE];
+ for (i = LEAST_KNOWN_OBJ_ATTRIBUTE; i < NUM_KNOWN_OBJ_ATTRIBUTES; i++)
{
out_attr->type = in_attr->type;
out_attr->i = in_attr->i;
bfd_vma len;
const char *std_section;
- contents = bfd_malloc (hdr->sh_size);
+ contents = (bfd_byte *) bfd_malloc (hdr->sh_size);
if (!contents)
return;
if (!bfd_get_section_contents (abfd, hdr->bfd_section, contents, 0,
if (in_attr->i > 0 && strcmp (in_attr->s, "gnu") != 0)
{
_bfd_error_handler
- (_("error: %B: Must be processed by '%s' toolchain"),
+ (_("error: %B: Object has vendor-specific contents that "
+ "must be processed by the '%s' toolchain"),
ibfd, in_attr->s);
return FALSE;
}