Fix bad interaction between --relax and tls optimisation
[binutils-gdb.git] / bfd / elfxx-target.h
index 241743ab42c7324c2a298d1a1b27999653ff08f7..74e1b32b2da432ae7c7a428d7aa4abfec6d74695 100644 (file)
 #ifndef elf_backend_default_execstack
 #define elf_backend_default_execstack 1
 #endif
+#ifndef elf_backend_caches_rawsize
+#define elf_backend_caches_rawsize 0
+#endif
 #ifndef elf_backend_stack_align
 #define elf_backend_stack_align 16
 #endif
   _bfd_elf_canonicalize_dynamic_reloc
 #endif
 
-#ifndef bfd_elfNN_bfd_link_hash_table_free
-#define bfd_elfNN_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
-#endif
-
 #ifdef elf_backend_relocate_section
 #ifndef bfd_elfNN_bfd_link_hash_table_create
 #define bfd_elfNN_bfd_link_hash_table_create _bfd_elf_link_hash_table_create
 #endif
+#ifndef bfd_elfNN_bfd_link_hash_table_free
+#define bfd_elfNN_bfd_link_hash_table_free _bfd_elf_link_hash_table_free
+#endif
 #ifndef bfd_elfNN_bfd_link_add_symbols
 #define bfd_elfNN_bfd_link_add_symbols bfd_elf_link_add_symbols
 #endif
 #define bfd_elfNN_bfd_link_hash_table_create \
   _bfd_generic_link_hash_table_create
 #endif
+#ifndef bfd_elfNN_bfd_link_hash_table_free
+#define bfd_elfNN_bfd_link_hash_table_free _bfd_generic_link_hash_table_free
+#endif
 #ifndef bfd_elfNN_bfd_link_add_symbols
 #define bfd_elfNN_bfd_link_add_symbols _bfd_generic_link_add_symbols
 #endif
 #ifndef elf_backend_check_directives
 #define elf_backend_check_directives   0
 #endif
-#ifndef elf_backend_as_needed_cleanup
-#define elf_backend_as_needed_cleanup  0
+#ifndef elf_backend_notice_as_needed
+#define elf_backend_notice_as_needed   _bfd_elf_notice_as_needed
 #endif
 #ifndef elf_backend_adjust_dynamic_symbol
 #define elf_backend_adjust_dynamic_symbol 0
 #define elf_backend_static_tls_alignment       1
 #endif
 #ifndef elf_backend_post_process_headers
-#define elf_backend_post_process_headers       NULL
+#define elf_backend_post_process_headers       _bfd_elf_post_process_headers
 #endif
 #ifndef elf_backend_print_symbol_all
 #define elf_backend_print_symbol_all           NULL
@@ -703,7 +708,7 @@ static struct elf_backend_data elfNN_bed =
   elf_backend_relocs_compatible,
   elf_backend_check_relocs,
   elf_backend_check_directives,
-  elf_backend_as_needed_cleanup,
+  elf_backend_notice_as_needed,
   elf_backend_adjust_dynamic_symbol,
   elf_backend_always_size_sections,
   elf_backend_size_dynamic_sections,
@@ -792,7 +797,8 @@ static struct elf_backend_data elfNN_bed =
   elf_backend_want_got_sym,
   elf_backend_want_dynbss,
   elf_backend_want_p_paddr_set_to_zero,
-  elf_backend_default_execstack
+  elf_backend_default_execstack,
+  elf_backend_caches_rawsize
 };
 
 /* Forward declaration for use when initialising alternative_target field.  */