Print this page
10346 ld(1) should not reduce symbol visibility of COMDAT symbols when producing relocatable objects


 737 #define ld_stt_section_sym_name ld64_stt_section_sym_name
 738 #define ld_sunw_ldmach          ld64_sunw_ldmach
 739 #define ld_sup_atexit           ld64_sup_atexit
 740 #define ld_sup_open             ld64_sup_open
 741 #define ld_sup_file             ld64_sup_file
 742 #define ld_sup_loadso           ld64_sup_loadso
 743 #define ld_sup_input_done       ld64_sup_input_done
 744 #define ld_sup_input_section    ld64_sup_input_section
 745 #define ld_sup_section          ld64_sup_section
 746 #define ld_sup_start            ld64_sup_start
 747 #define ld_swap_reloc_data      ld64_swap_reloc_data
 748 #define ld_sym_add_u            ld64_sym_add_u
 749 #define ld_sym_adjust_vis       ld64_sym_adjust_vis
 750 #define ld_sym_avl_comp         ld64_sym_avl_comp
 751 #define ld_sym_copy             ld64_sym_copy
 752 #define ld_sym_enter            ld64_sym_enter
 753 #define ld_sym_find             ld64_sym_find
 754 #define ld_sym_nodirect         ld64_sym_nodirect
 755 #define ld_sym_process          ld64_sym_process
 756 #define ld_sym_resolve          ld64_sym_resolve

 757 #define ld_sym_spec             ld64_sym_spec
 758 #define ld_targ                 ld64_targ
 759 #define ld_targ_init_sparc      ld64_targ_init_sparc
 760 #define ld_targ_init_x86        ld64_targ_init_x86
 761 #define ld_unwind_make_hdr      ld64_unwind_make_hdr
 762 #define ld_unwind_populate_hdr  ld64_unwind_populate_hdr
 763 #define ld_unwind_register      ld64_unwind_register
 764 #define ld_vers_base            ld64_vers_base
 765 #define ld_vers_check_defs      ld64_vers_check_defs
 766 #define ld_vers_check_need      ld64_vers_check_need
 767 #define ld_vers_def_process     ld64_vers_def_process
 768 #define ld_vers_desc            ld64_vers_desc
 769 #define ld_vers_find            ld64_vers_find
 770 #define ld_vers_need_process    ld64_vers_need_process
 771 #define ld_vers_promote         ld64_vers_promote
 772 #define ld_vers_sym_process     ld64_vers_sym_process
 773 #define ld_vers_verify          ld64_vers_verify
 774 #define ld_wrap_enter           ld64_wrap_enter
 775 
 776 #else


 835 #define ld_stt_section_sym_name ld32_stt_section_sym_name
 836 #define ld_sunw_ldmach          ld32_sunw_ldmach
 837 #define ld_sup_atexit           ld32_sup_atexit
 838 #define ld_sup_open             ld32_sup_open
 839 #define ld_sup_file             ld32_sup_file
 840 #define ld_sup_loadso           ld32_sup_loadso
 841 #define ld_sup_input_done       ld32_sup_input_done
 842 #define ld_sup_input_section    ld32_sup_input_section
 843 #define ld_sup_section          ld32_sup_section
 844 #define ld_sup_start            ld32_sup_start
 845 #define ld_swap_reloc_data      ld32_swap_reloc_data
 846 #define ld_sym_add_u            ld32_sym_add_u
 847 #define ld_sym_adjust_vis       ld32_sym_adjust_vis
 848 #define ld_sym_avl_comp         ld32_sym_avl_comp
 849 #define ld_sym_copy             ld32_sym_copy
 850 #define ld_sym_enter            ld32_sym_enter
 851 #define ld_sym_find             ld32_sym_find
 852 #define ld_sym_nodirect         ld32_sym_nodirect
 853 #define ld_sym_process          ld32_sym_process
 854 #define ld_sym_resolve          ld32_sym_resolve

 855 #define ld_sym_spec             ld32_sym_spec
 856 #define ld_targ                 ld32_targ
 857 #define ld_targ_init_sparc      ld32_targ_init_sparc
 858 #define ld_targ_init_x86        ld32_targ_init_x86
 859 #define ld_unwind_make_hdr      ld32_unwind_make_hdr
 860 #define ld_unwind_populate_hdr  ld32_unwind_populate_hdr
 861 #define ld_unwind_register      ld32_unwind_register
 862 #define ld_vers_base            ld32_vers_base
 863 #define ld_vers_check_defs      ld32_vers_check_defs
 864 #define ld_vers_check_need      ld32_vers_check_need
 865 #define ld_vers_def_process     ld32_vers_def_process
 866 #define ld_vers_desc            ld32_vers_desc
 867 #define ld_vers_find            ld32_vers_find
 868 #define ld_vers_need_process    ld32_vers_need_process
 869 #define ld_vers_promote         ld32_vers_promote
 870 #define ld_vers_sym_process     ld32_vers_sym_process
 871 #define ld_vers_verify          ld32_vers_verify
 872 #define ld_wrap_enter           ld32_wrap_enter
 873 
 874 #endif


 980 extern uintptr_t        ld_sup_loadso(Ofl_desc *, const char *);
 981 extern void             ld_sup_input_done(Ofl_desc *);
 982 extern void             ld_sup_section(Ofl_desc *, const char *, Shdr *, Word,
 983                             Elf_Data *, Elf *);
 984 extern uintptr_t        ld_sup_input_section(Ofl_desc*, Ifl_desc *,
 985                             const char *, Shdr **, Word, Elf_Scn *, Elf *);
 986 extern void             ld_sup_start(Ofl_desc *, const Half, const char *);
 987 extern int              ld_swap_reloc_data(Ofl_desc *, Rel_desc *);
 988 extern Sym_desc         *ld_sym_add_u(const char *, Ofl_desc *, Msg);
 989 extern void             ld_sym_adjust_vis(Sym_desc *, Ofl_desc *);
 990 extern int              ld_sym_avl_comp(const void *, const void *);
 991 extern uintptr_t        ld_sym_copy(Sym_desc *);
 992 extern Sym_desc         *ld_sym_enter(const char *, Sym *, Word, Ifl_desc *,
 993                             Ofl_desc *, Word, Word, sd_flag_t, avl_index_t *);
 994 extern Sym_desc         *ld_sym_find(const char *, Word, avl_index_t *,
 995                             Ofl_desc *);
 996 extern uintptr_t        ld_sym_nodirect(Is_desc *, Ifl_desc *, Ofl_desc *);
 997 extern uintptr_t        ld_sym_process(Is_desc *, Ifl_desc *, Ofl_desc *);
 998 extern uintptr_t        ld_sym_resolve(Sym_desc *, Sym *, Ifl_desc *,
 999                             Ofl_desc *, int, Word, sd_flag_t);

1000 extern uintptr_t        ld_sym_spec(Ofl_desc *);
1001 
1002 extern Target           ld_targ;
1003 extern const Target     *ld_targ_init_sparc(void);
1004 extern const Target     *ld_targ_init_x86(void);
1005 
1006 extern uintptr_t        ld_unwind_make_hdr(Ofl_desc *);
1007 extern uintptr_t        ld_unwind_populate_hdr(Ofl_desc *);
1008 extern uintptr_t        ld_unwind_register(Os_desc *, Ofl_desc *);
1009 
1010 extern Ver_desc         *ld_vers_base(Ofl_desc *);
1011 extern uintptr_t        ld_vers_check_defs(Ofl_desc *);
1012 extern uintptr_t        ld_vers_check_need(Ofl_desc *);
1013 extern uintptr_t        ld_vers_def_process(Is_desc *, Ifl_desc *, Ofl_desc *);
1014 extern Ver_desc         *ld_vers_desc(const char *, Word, APlist **);
1015 extern Ver_desc         *ld_vers_find(const char *, Word, APlist *);
1016 extern uintptr_t        ld_vers_need_process(Is_desc *, Ifl_desc *, Ofl_desc *);
1017 extern void             ld_vers_promote(Sym_desc *, Word, Ifl_desc *,
1018                             Ofl_desc *);
1019 extern int              ld_vers_sym_process(Ofl_desc *, Is_desc *, Ifl_desc *);




 737 #define ld_stt_section_sym_name ld64_stt_section_sym_name
 738 #define ld_sunw_ldmach          ld64_sunw_ldmach
 739 #define ld_sup_atexit           ld64_sup_atexit
 740 #define ld_sup_open             ld64_sup_open
 741 #define ld_sup_file             ld64_sup_file
 742 #define ld_sup_loadso           ld64_sup_loadso
 743 #define ld_sup_input_done       ld64_sup_input_done
 744 #define ld_sup_input_section    ld64_sup_input_section
 745 #define ld_sup_section          ld64_sup_section
 746 #define ld_sup_start            ld64_sup_start
 747 #define ld_swap_reloc_data      ld64_swap_reloc_data
 748 #define ld_sym_add_u            ld64_sym_add_u
 749 #define ld_sym_adjust_vis       ld64_sym_adjust_vis
 750 #define ld_sym_avl_comp         ld64_sym_avl_comp
 751 #define ld_sym_copy             ld64_sym_copy
 752 #define ld_sym_enter            ld64_sym_enter
 753 #define ld_sym_find             ld64_sym_find
 754 #define ld_sym_nodirect         ld64_sym_nodirect
 755 #define ld_sym_process          ld64_sym_process
 756 #define ld_sym_resolve          ld64_sym_resolve
 757 #define ld_sym_reducable        ld64_sym_reducable
 758 #define ld_sym_spec             ld64_sym_spec
 759 #define ld_targ                 ld64_targ
 760 #define ld_targ_init_sparc      ld64_targ_init_sparc
 761 #define ld_targ_init_x86        ld64_targ_init_x86
 762 #define ld_unwind_make_hdr      ld64_unwind_make_hdr
 763 #define ld_unwind_populate_hdr  ld64_unwind_populate_hdr
 764 #define ld_unwind_register      ld64_unwind_register
 765 #define ld_vers_base            ld64_vers_base
 766 #define ld_vers_check_defs      ld64_vers_check_defs
 767 #define ld_vers_check_need      ld64_vers_check_need
 768 #define ld_vers_def_process     ld64_vers_def_process
 769 #define ld_vers_desc            ld64_vers_desc
 770 #define ld_vers_find            ld64_vers_find
 771 #define ld_vers_need_process    ld64_vers_need_process
 772 #define ld_vers_promote         ld64_vers_promote
 773 #define ld_vers_sym_process     ld64_vers_sym_process
 774 #define ld_vers_verify          ld64_vers_verify
 775 #define ld_wrap_enter           ld64_wrap_enter
 776 
 777 #else


 836 #define ld_stt_section_sym_name ld32_stt_section_sym_name
 837 #define ld_sunw_ldmach          ld32_sunw_ldmach
 838 #define ld_sup_atexit           ld32_sup_atexit
 839 #define ld_sup_open             ld32_sup_open
 840 #define ld_sup_file             ld32_sup_file
 841 #define ld_sup_loadso           ld32_sup_loadso
 842 #define ld_sup_input_done       ld32_sup_input_done
 843 #define ld_sup_input_section    ld32_sup_input_section
 844 #define ld_sup_section          ld32_sup_section
 845 #define ld_sup_start            ld32_sup_start
 846 #define ld_swap_reloc_data      ld32_swap_reloc_data
 847 #define ld_sym_add_u            ld32_sym_add_u
 848 #define ld_sym_adjust_vis       ld32_sym_adjust_vis
 849 #define ld_sym_avl_comp         ld32_sym_avl_comp
 850 #define ld_sym_copy             ld32_sym_copy
 851 #define ld_sym_enter            ld32_sym_enter
 852 #define ld_sym_find             ld32_sym_find
 853 #define ld_sym_nodirect         ld32_sym_nodirect
 854 #define ld_sym_process          ld32_sym_process
 855 #define ld_sym_resolve          ld32_sym_resolve
 856 #define ld_sym_reducable        ld32_sym_reducable
 857 #define ld_sym_spec             ld32_sym_spec
 858 #define ld_targ                 ld32_targ
 859 #define ld_targ_init_sparc      ld32_targ_init_sparc
 860 #define ld_targ_init_x86        ld32_targ_init_x86
 861 #define ld_unwind_make_hdr      ld32_unwind_make_hdr
 862 #define ld_unwind_populate_hdr  ld32_unwind_populate_hdr
 863 #define ld_unwind_register      ld32_unwind_register
 864 #define ld_vers_base            ld32_vers_base
 865 #define ld_vers_check_defs      ld32_vers_check_defs
 866 #define ld_vers_check_need      ld32_vers_check_need
 867 #define ld_vers_def_process     ld32_vers_def_process
 868 #define ld_vers_desc            ld32_vers_desc
 869 #define ld_vers_find            ld32_vers_find
 870 #define ld_vers_need_process    ld32_vers_need_process
 871 #define ld_vers_promote         ld32_vers_promote
 872 #define ld_vers_sym_process     ld32_vers_sym_process
 873 #define ld_vers_verify          ld32_vers_verify
 874 #define ld_wrap_enter           ld32_wrap_enter
 875 
 876 #endif


 982 extern uintptr_t        ld_sup_loadso(Ofl_desc *, const char *);
 983 extern void             ld_sup_input_done(Ofl_desc *);
 984 extern void             ld_sup_section(Ofl_desc *, const char *, Shdr *, Word,
 985                             Elf_Data *, Elf *);
 986 extern uintptr_t        ld_sup_input_section(Ofl_desc*, Ifl_desc *,
 987                             const char *, Shdr **, Word, Elf_Scn *, Elf *);
 988 extern void             ld_sup_start(Ofl_desc *, const Half, const char *);
 989 extern int              ld_swap_reloc_data(Ofl_desc *, Rel_desc *);
 990 extern Sym_desc         *ld_sym_add_u(const char *, Ofl_desc *, Msg);
 991 extern void             ld_sym_adjust_vis(Sym_desc *, Ofl_desc *);
 992 extern int              ld_sym_avl_comp(const void *, const void *);
 993 extern uintptr_t        ld_sym_copy(Sym_desc *);
 994 extern Sym_desc         *ld_sym_enter(const char *, Sym *, Word, Ifl_desc *,
 995                             Ofl_desc *, Word, Word, sd_flag_t, avl_index_t *);
 996 extern Sym_desc         *ld_sym_find(const char *, Word, avl_index_t *,
 997                             Ofl_desc *);
 998 extern uintptr_t        ld_sym_nodirect(Is_desc *, Ifl_desc *, Ofl_desc *);
 999 extern uintptr_t        ld_sym_process(Is_desc *, Ifl_desc *, Ofl_desc *);
1000 extern uintptr_t        ld_sym_resolve(Sym_desc *, Sym *, Ifl_desc *,
1001                             Ofl_desc *, int, Word, sd_flag_t);
1002 extern Boolean          ld_sym_reducable(Ofl_desc *, Sym_desc *);
1003 extern uintptr_t        ld_sym_spec(Ofl_desc *);
1004 
1005 extern Target           ld_targ;
1006 extern const Target     *ld_targ_init_sparc(void);
1007 extern const Target     *ld_targ_init_x86(void);
1008 
1009 extern uintptr_t        ld_unwind_make_hdr(Ofl_desc *);
1010 extern uintptr_t        ld_unwind_populate_hdr(Ofl_desc *);
1011 extern uintptr_t        ld_unwind_register(Os_desc *, Ofl_desc *);
1012 
1013 extern Ver_desc         *ld_vers_base(Ofl_desc *);
1014 extern uintptr_t        ld_vers_check_defs(Ofl_desc *);
1015 extern uintptr_t        ld_vers_check_need(Ofl_desc *);
1016 extern uintptr_t        ld_vers_def_process(Is_desc *, Ifl_desc *, Ofl_desc *);
1017 extern Ver_desc         *ld_vers_desc(const char *, Word, APlist **);
1018 extern Ver_desc         *ld_vers_find(const char *, Word, APlist *);
1019 extern uintptr_t        ld_vers_need_process(Is_desc *, Ifl_desc *, Ofl_desc *);
1020 extern void             ld_vers_promote(Sym_desc *, Word, Ifl_desc *,
1021                             Ofl_desc *);
1022 extern int              ld_vers_sym_process(Ofl_desc *, Is_desc *, Ifl_desc *);