aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf-bfd.h
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2010-11-04 11:35:01 +0000
committerJoseph Myers <joseph@codesourcery.com>2010-11-04 11:35:01 +0000
commite8b36cd1e57055ea2eb1e2ba2692f1ec520b34db (patch)
tree317666abafb1d4aa2ff281b3b31f9d8c59ecd8a8 /bfd/elf-bfd.h
parent608bcef2676e2019d046ff7a485c47fd0b8606bd (diff)
downloadbinutils-e8b36cd1e57055ea2eb1e2ba2692f1ec520b34db.zip
binutils-e8b36cd1e57055ea2eb1e2ba2692f1ec520b34db.tar.gz
binutils-e8b36cd1e57055ea2eb1e2ba2692f1ec520b34db.tar.bz2
* elf-attrs.c (_bfd_elf_merge_unknown_attribute_low,
_bfd_elf_merge_unknown_attribute_list): New. * elf-bfd.h (struct elf_backend_data): Add obj_attrs_handle_unknown. (_bfd_elf_merge_unknown_attribute_low, _bfd_elf_merge_unknown_attribute_list): Declare. * elf32-arm.c (elf32_arm_obj_attrs_handle_unknown): New. Split out from elf32_arm_merge_eabi_attributes. (elf32_arm_merge_eabi_attributes): Use _bfd_elf_merge_unknown_attribute_low and _bfd_elf_merge_unknown_attribute_list. (elf_backend_obj_attrs_handle_unknown): Define. * elfxx-target.h (elf_backend_obj_attrs_handle_unknown): Define. (elfNN_bed): Update initializer.
Diffstat (limited to 'bfd/elf-bfd.h')
-rw-r--r--bfd/elf-bfd.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h
index e306f8d..2e607f8 100644
--- a/bfd/elf-bfd.h
+++ b/bfd/elf-bfd.h
@@ -1256,6 +1256,10 @@ struct elf_backend_data
actual tag number to place in the input position. */
int (*obj_attrs_order) (int);
+ /* Handle merging unknown attributes; either warn and return TRUE,
+ or give an error and return FALSE. */
+ bfd_boolean (*obj_attrs_handle_unknown) (bfd *, int);
+
/* This is non-zero if static TLS segments require a special alignment. */
unsigned static_tls_alignment;
@@ -2235,6 +2239,8 @@ extern void _bfd_elf_copy_obj_attributes (bfd *, bfd *);
extern int _bfd_elf_obj_attrs_arg_type (bfd *, int, int);
extern void _bfd_elf_parse_attributes (bfd *, Elf_Internal_Shdr *);
extern bfd_boolean _bfd_elf_merge_object_attributes (bfd *, bfd *);
+extern bfd_boolean _bfd_elf_merge_unknown_attribute_low (bfd *, bfd *, int);
+extern bfd_boolean _bfd_elf_merge_unknown_attribute_list (bfd *, bfd *);
extern Elf_Internal_Shdr *_bfd_elf_single_rel_hdr (asection *sec);
/* The linker may needs to keep track of the number of relocs that it