[binutils-gdb] bfd/PEI: mark internal functions hidden

Jan Beulich jbeulich@sourceware.org
Fri Nov 21 08:08:04 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d00ae9728658be17b6d6f35c9e53a143bcf0c418

commit d00ae9728658be17b6d6f35c9e53a143bcf0c418
Author: Jan Beulich <jbeulich@suse.com>
Date:   Fri Nov 21 09:05:18 2025 +0100

    bfd/PEI: mark internal functions hidden
    
    This reduces the dynamic symbol table a bit (over a hundred symbols when
    building all targets) and allows the compiler to be more aggressive about
    inlining (as it sees fit, of course).

Diff:
---
 bfd/libpei.h | 63 +++++++++++++++++++++++++++++++++++-------------------------
 1 file changed, 37 insertions(+), 26 deletions(-)

diff --git a/bfd/libpei.h b/bfd/libpei.h
index b2d8da81e5c..f69f40804ed 100644
--- a/bfd/libpei.h
+++ b/bfd/libpei.h
@@ -22,6 +22,8 @@
 #ifndef _LIBPEI_H
 #define _LIBPEI_H
 
+#include "hidden.h"
+
 /* Most of this hacked by  Steve Chamberlain,
 			sac@cygnus.com
 
@@ -445,42 +447,51 @@
 #define coff_final_link_postscript _bfd_XXi_final_link_postscript
 #endif
 
-void _bfd_XXi_swap_sym_in (bfd *, void *, void *);
-unsigned _bfd_XXi_swap_sym_out (bfd *, void *, void *);
-void _bfd_XXi_swap_aux_in (bfd *, void *, int, int, int, int, void *);
-unsigned _bfd_XXi_swap_aux_out (bfd *, void *, int, int, int, int, void *);
-void _bfd_XXi_swap_lineno_in (bfd *, void *, void *);
-unsigned _bfd_XXi_swap_lineno_out (bfd *, void *, void *);
-void _bfd_XXi_swap_aouthdr_in (bfd *, void *, void *);
-unsigned _bfd_XXi_swap_aouthdr_out (bfd *, void *, void *);
-unsigned _bfd_XXi_swap_scnhdr_out (bfd *, void *, void *, const asection *);
-bool _bfd_XX_print_private_bfd_data_common (bfd *, void *);
-bool _bfd_XX_bfd_copy_private_bfd_data_common (bfd *, bfd *);
-void _bfd_XX_get_symbol_info (bfd *, asymbol *, symbol_info *);
-bool _bfd_XXi_final_link_postscript (bfd *, struct coff_final_link_info *);
-void _bfd_XXi_swap_debugdir_in (bfd *, void *, void *);
+void _bfd_XXi_swap_sym_in (bfd *, void *, void *) ATTRIBUTE_HIDDEN;
+unsigned _bfd_XXi_swap_sym_out (bfd *, void *, void *) ATTRIBUTE_HIDDEN;
+void _bfd_XXi_swap_aux_in (bfd *, void *, int, int, int, int, void *)
+  ATTRIBUTE_HIDDEN;
+unsigned _bfd_XXi_swap_aux_out (bfd *, void *, int, int, int, int, void *)
+  ATTRIBUTE_HIDDEN;
+void _bfd_XXi_swap_lineno_in (bfd *, void *, void *) ATTRIBUTE_HIDDEN;
+unsigned _bfd_XXi_swap_lineno_out (bfd *, void *, void *) ATTRIBUTE_HIDDEN;
+void _bfd_XXi_swap_aouthdr_in (bfd *, void *, void *) ATTRIBUTE_HIDDEN;
+unsigned _bfd_XXi_swap_aouthdr_out (bfd *, void *, void *) ATTRIBUTE_HIDDEN;
+unsigned _bfd_XXi_swap_scnhdr_out (bfd *, void *, void *, const asection *)
+  ATTRIBUTE_HIDDEN;
+bool _bfd_XX_print_private_bfd_data_common (bfd *, void *) ATTRIBUTE_HIDDEN;
+bool _bfd_XX_bfd_copy_private_bfd_data_common (bfd *, bfd *) ATTRIBUTE_HIDDEN;
+void _bfd_XX_get_symbol_info (bfd *, asymbol *, symbol_info *) ATTRIBUTE_HIDDEN;
+bool _bfd_XXi_final_link_postscript (bfd *, struct coff_final_link_info *)
+  ATTRIBUTE_HIDDEN;
+void _bfd_XXi_swap_debugdir_in (bfd *, void *, void *) ATTRIBUTE_HIDDEN;
 unsigned _bfd_XXi_swap_debugdir_out (bfd *, void *, void *);
+
 unsigned _bfd_XXi_write_codeview_record
   (bfd *, file_ptr, CODEVIEW_INFO *, const char *);
 CODEVIEW_INFO *_bfd_XXi_slurp_codeview_record
   (bfd * abfd, file_ptr where, unsigned long length, CODEVIEW_INFO *cvinfo,
-   char **pdb);
+   char **pdb) ATTRIBUTE_HIDDEN;
 
 /* The following are needed only for ONE of pe or pei, but don't
    otherwise vary; peicode.h fixes up ifdefs but we provide the
    prototype.  */
 
-unsigned _bfd_XX_only_swap_filehdr_out  (bfd *, void *, void *);
-unsigned _bfd_XXi_only_swap_filehdr_out (bfd *, void *, void *);
+unsigned _bfd_XX_only_swap_filehdr_out
+  (bfd *, void *, void *) ATTRIBUTE_HIDDEN;
+unsigned _bfd_XXi_only_swap_filehdr_out
+  (bfd *, void *, void *) ATTRIBUTE_HIDDEN;
 bool _bfd_XX_bfd_copy_private_section_data
-  (bfd *, asection *, bfd *, asection *, struct bfd_link_info *);
-
-bool _bfd_pe_print_ce_compressed_pdata (bfd *, void *);
-bool _bfd_pe64_print_ce_compressed_pdata (bfd *, void *);
-bool _bfd_pex64_print_ce_compressed_pdata (bfd *, void *);
-bool _bfd_peAArch64_print_ce_compressed_pdata (bfd *, void *);
-bool _bfd_peLoongArch64_print_ce_compressed_pdata (bfd *, void *);
-bool _bfd_peRiscV64_print_ce_compressed_pdata (bfd *, void *);
-bool _bfd_pep_print_ce_compressed_pdata (bfd *, void *);
+  (bfd *, asection *, bfd *, asection *, struct bfd_link_info *)
+  ATTRIBUTE_HIDDEN;
+
+bool _bfd_pe_print_ce_compressed_pdata (bfd *, void *) ATTRIBUTE_HIDDEN;
+bool _bfd_pe64_print_ce_compressed_pdata (bfd *, void *) ATTRIBUTE_HIDDEN;
+bool _bfd_pex64_print_ce_compressed_pdata (bfd *, void *) ATTRIBUTE_HIDDEN;
+bool _bfd_peAArch64_print_ce_compressed_pdata (bfd *, void *) ATTRIBUTE_HIDDEN;
+bool _bfd_peLoongArch64_print_ce_compressed_pdata (bfd *, void *)
+  ATTRIBUTE_HIDDEN;
+bool _bfd_peRiscV64_print_ce_compressed_pdata (bfd *, void *) ATTRIBUTE_HIDDEN;
+bool _bfd_pep_print_ce_compressed_pdata (bfd *, void *) ATTRIBUTE_HIDDEN;
 
 #endif /* _LIBPEI_H */


More information about the Binutils-cvs mailing list