* elf64-ppc.c (ppc64_elf_relocate_section): Provide section/offset
[deliverable/binutils-gdb.git] / bfd / elf-bfd.h
index 0527bbd38a0788102f9c46221b04b718bb24deb0..cc835881f11140a1090bb94336286692b7153753 100644 (file)
@@ -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
@@ -2266,6 +2272,14 @@ extern bfd_boolean _bfd_elf_allocate_ifunc_dyn_relocs
   (struct bfd_link_info *, struct elf_link_hash_entry *,
    struct elf_dyn_relocs **, unsigned int, unsigned int);
 
+extern void elf_append_rela (bfd *, asection *, Elf_Internal_Rela *);
+extern void elf_append_rel (bfd *, asection *, Elf_Internal_Rela *);
+
+extern bfd_vma elf64_r_info (bfd_vma, bfd_vma);
+extern bfd_vma elf64_r_sym (bfd_vma);
+extern bfd_vma elf32_r_info (bfd_vma, bfd_vma);
+extern bfd_vma elf32_r_sym (bfd_vma);
+
 /* Large common section.  */
 extern asection _bfd_elf_large_com_section;
 
@@ -2355,6 +2369,9 @@ extern asection _bfd_elf_large_com_section;
 #define RELOC_AGAINST_DISCARDED_SECTION(info, input_bfd, input_section,        \
                                        rel, relend, howto, contents)   \
   {                                                                    \
+    _bfd_clear_contents (howto, input_bfd, input_section,              \
+                        contents + rel->r_offset);                     \
+                                                                       \
     if (info->relocatable                                              \
        && (input_section->flags & SEC_DEBUGGING))                      \
       {                                                                        \
@@ -2380,7 +2397,6 @@ extern asection _bfd_elf_large_com_section;
          }                                                             \
       }                                                                        \
                                                                        \
-    _bfd_clear_contents (howto, input_bfd, contents + rel->r_offset);  \
     rel->r_info = 0;                                                   \
     rel->r_addend = 0;                                                 \
     continue;                                                          \
This page took 0.02398 seconds and 4 git commands to generate.