[PATCH 5/6] bfd/PEI: mark internal functions hidden
Jan Beulich
jbeulich@suse.com
Fri Nov 7 14:26:31 GMT 2025
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).
--- 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 *);
+ (bfd *, asection *, bfd *, asection *, struct bfd_link_info *)
+ ATTRIBUTE_HIDDEN;
-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 *);
+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
mailing list