[PATCH 03/27] bfd/ELF: mark internal aarch64 functions hidden

Jan Beulich jbeulich@suse.com
Mon Oct 27 14:08:54 GMT 2025


This reduces the dynamic symbol table some and allows the compiler to be
more aggressive about inlining (as it sees fit, of course).

--- a/bfd/elfxx-aarch64.h
+++ b/bfd/elfxx-aarch64.h
@@ -187,14 +187,14 @@ extern bool elf32_aarch64_build_stubs
 
 /* AArch64 relative relocation packing support for ELF64.  */
 extern bool elf64_aarch64_size_relative_relocs
-  (struct bfd_link_info *, bool *);
+  (struct bfd_link_info *, bool *) ATTRIBUTE_HIDDEN;
 extern bool elf64_aarch64_finish_relative_relocs
-  (struct bfd_link_info *);
+  (struct bfd_link_info *) ATTRIBUTE_HIDDEN;
 /* AArch64 relative relocation packing support for ELF32.  */
 extern bool elf32_aarch64_size_relative_relocs
-  (struct bfd_link_info *, bool *);
+  (struct bfd_link_info *, bool *) ATTRIBUTE_HIDDEN;
 extern bool elf32_aarch64_finish_relative_relocs
-  (struct bfd_link_info *);
+  (struct bfd_link_info *) ATTRIBUTE_HIDDEN;
 
 /* Take the PAGE component of an address or offset.  */
 #define PG(x)	     ((x) & ~ (bfd_vma) 0xfff)
@@ -205,56 +205,63 @@ extern bool elf32_aarch64_finish_relativ
 #define AARCH64_ADRP_OP_MASK	0x9F000000
 
 extern bfd_signed_vma
-_bfd_aarch64_sign_extend (bfd_vma, int);
+_bfd_aarch64_sign_extend (bfd_vma, int) ATTRIBUTE_HIDDEN;
 
 extern uint32_t
-_bfd_aarch64_decode_adrp_imm (uint32_t);
+_bfd_aarch64_decode_adrp_imm (uint32_t) ATTRIBUTE_HIDDEN;
 
 extern uint32_t
-_bfd_aarch64_reencode_adr_imm (uint32_t, uint32_t);
+_bfd_aarch64_reencode_adr_imm (uint32_t, uint32_t) ATTRIBUTE_HIDDEN;
 
 extern bfd_reloc_status_type
 _bfd_aarch64_elf_put_addend (bfd *, bfd_byte *, bfd_reloc_code_real_type,
-			     reloc_howto_type *, bfd_signed_vma);
+			     reloc_howto_type *, bfd_signed_vma)
+			    ATTRIBUTE_HIDDEN;
 
 extern bfd_vma
 _bfd_aarch64_elf_resolve_relocation (bfd *, bfd_reloc_code_real_type, bfd_vma,
-				     bfd_vma, bfd_vma, bool);
+				     bfd_vma, bfd_vma, bool) ATTRIBUTE_HIDDEN;
 
 extern bool
-_bfd_aarch64_elf_grok_prstatus (bfd *, Elf_Internal_Note *);
+_bfd_aarch64_elf_grok_prstatus (bfd *, Elf_Internal_Note *) ATTRIBUTE_HIDDEN;
 
 extern bool
-_bfd_aarch64_elf_grok_psinfo (bfd *, Elf_Internal_Note *);
+_bfd_aarch64_elf_grok_psinfo (bfd *, Elf_Internal_Note *) ATTRIBUTE_HIDDEN;
 
 extern char *
-_bfd_aarch64_elf_write_core_note (bfd *, char *, int *, int, ...);
+_bfd_aarch64_elf_write_core_note (bfd *, char *, int *, int, ...)
+  ATTRIBUTE_HIDDEN;
 
 #define elf_backend_grok_prstatus	_bfd_aarch64_elf_grok_prstatus
 #define elf_backend_grok_psinfo		_bfd_aarch64_elf_grok_psinfo
 #define elf_backend_write_core_note	_bfd_aarch64_elf_write_core_note
 
 extern bfd *
-_bfd_aarch64_elf_link_setup_gnu_properties (struct bfd_link_info *);
+_bfd_aarch64_elf_link_setup_gnu_properties (struct bfd_link_info *)
+  ATTRIBUTE_HIDDEN;
 
 extern enum elf_property_kind
 _bfd_aarch64_elf_parse_gnu_properties (bfd *, unsigned int,
-				       bfd_byte *, unsigned int);
+				       bfd_byte *, unsigned int)
+  ATTRIBUTE_HIDDEN;
 
 extern bool
 _bfd_aarch64_elf_merge_gnu_properties (struct bfd_link_info *, bfd *,
 				       elf_property *, elf_property *,
-				       uint32_t);
+				       uint32_t) ATTRIBUTE_HIDDEN;
 
 extern void
-_bfd_aarch64_elf_check_bti_report (struct bfd_link_info *, bfd *);
+_bfd_aarch64_elf_check_bti_report (struct bfd_link_info *, bfd *)
+  ATTRIBUTE_HIDDEN;
 
 extern void
-_bfd_aarch64_elf_check_gcs_report (struct bfd_link_info *, bfd *);
+_bfd_aarch64_elf_check_gcs_report (struct bfd_link_info *, bfd *)
+  ATTRIBUTE_HIDDEN;
 
 extern void
 _bfd_aarch64_elf_link_fixup_gnu_properties (struct bfd_link_info *,
-					    elf_property_list **);
+					    elf_property_list **)
+  ATTRIBUTE_HIDDEN;
 
 #define elf_backend_parse_gnu_properties	\
   _bfd_aarch64_elf_parse_gnu_properties



More information about the Binutils mailing list