Print this page
3616 SHF_GROUP sections should not be discarded via other COMDAT mechanisms
3709 need sloppy relocation for GNU .debug_macro
Reviewed by: Joshua M. Clulow <josh@sysmgr.org>
Reviewed by: Robert Mustacchi <rm@joyent.com>


 671 extern void             *libld_realloc(void *, size_t);
 672 
 673 extern int              isdavl_compare(const void *, const void *);
 674 
 675 extern Sdf_desc         *sdf_add(const char *, APlist **);
 676 extern Sdf_desc         *sdf_find(const char *, APlist *);
 677 
 678 #if     defined(_ELF64)
 679 
 680 #define ld_add_actrel           ld64_add_actrel
 681 #define ld_add_libdir           ld64_add_libdir
 682 #define ld_adj_movereloc        ld64_adj_movereloc
 683 #define ld_am_I_partial         ld64_am_I_partial
 684 #define ld_ar_member            ld64_ar_member
 685 #define ld_ar_setup             ld64_ar_setup
 686 #define ld_assign_got_TLS       ld64_assign_got_TLS
 687 #define ld_bswap_Word           ld64_bswap_Word
 688 #define ld_bswap_Xword          ld64_bswap_Xword
 689 #define ld_cap_add_family       ld64_cap_add_family
 690 #define ld_cap_move_symtoobj    ld64_cap_move_symtoobj

 691 #define ld_disp_errmsg          ld64_disp_errmsg
 692 #define ld_ent_check            ld64_ent_check
 693 #define ld_ent_lookup           ld64_ent_lookup
 694 #define ld_eprintf              ld64_eprintf
 695 #define ld_exit                 ld64_exit
 696 #define ld_find_library         ld64_find_library
 697 #define ld_finish_libs          ld64_finish_libs
 698 #define ld_get_group            ld64_get_group
 699 #define ld_group_process        ld64_group_process
 700 #define ld_lib_setup            ld64_lib_setup
 701 #define ld_init_sighandler      ld64_init_sighandler
 702 #define ld_lcm                  ld64_lcm
 703 #define ld_make_bss             ld64_make_bss
 704 #define ld_make_data            ld64_make_data
 705 #define ld_make_got             ld64_make_got
 706 #define ld_make_parexpn_data    ld64_make_parexpn_data
 707 #define ld_make_sunwmove        ld64_make_sunmove
 708 #define ld_make_text            ld64_make_text
 709 #define ld_map_out              ld64_map_out
 710 #define ld_map_parse            ld64_map_parse


 768 #define ld_vers_find            ld64_vers_find
 769 #define ld_vers_need_process    ld64_vers_need_process
 770 #define ld_vers_promote         ld64_vers_promote
 771 #define ld_vers_sym_process     ld64_vers_sym_process
 772 #define ld_vers_verify          ld64_vers_verify
 773 #define ld_wrap_enter           ld64_wrap_enter
 774 
 775 #else
 776 
 777 #define ld_add_actrel           ld32_add_actrel
 778 #define ld_add_libdir           ld32_add_libdir
 779 #define ld_adj_movereloc        ld32_adj_movereloc
 780 #define ld_am_I_partial         ld32_am_I_partial
 781 #define ld_ar_member            ld32_ar_member
 782 #define ld_ar_setup             ld32_ar_setup
 783 #define ld_assign_got_TLS       ld32_assign_got_TLS
 784 #define ld_bswap_Word           ld32_bswap_Word
 785 #define ld_bswap_Xword          ld32_bswap_Xword
 786 #define ld_cap_add_family       ld32_cap_add_family
 787 #define ld_cap_move_symtoobj    ld32_cap_move_symtoobj

 788 #define ld_disp_errmsg          ld32_disp_errmsg
 789 #define ld_ent_check            ld32_ent_check
 790 #define ld_ent_lookup           ld32_ent_lookup
 791 #define ld_eprintf              ld32_eprintf
 792 #define ld_exit                 ld32_exit
 793 #define ld_find_library         ld32_find_library
 794 #define ld_finish_libs          ld32_finish_libs
 795 #define ld_get_group            ld32_get_group
 796 #define ld_group_process        ld32_group_process
 797 #define ld_lib_setup            ld32_lib_setup
 798 #define ld_init_sighandler      ld32_init_sighandler
 799 #define ld_lcm                  ld32_lcm
 800 #define ld_make_bss             ld32_make_bss
 801 #define ld_make_data            ld32_make_data
 802 #define ld_make_got             ld32_make_got
 803 #define ld_make_parexpn_data    ld32_make_parexpn_data
 804 #define ld_make_sunwmove        ld32_make_sunmove
 805 #define ld_make_text            ld32_make_text
 806 #define ld_map_out              ld32_map_out
 807 #define ld_map_parse            ld32_map_parse


 875 extern int              dbg_setup(Ofl_desc *, const char *, int);
 876 
 877 extern uintptr_t        ld_add_actrel(Word, Rel_desc *, Ofl_desc *);
 878 extern uintptr_t        ld_add_libdir(Ofl_desc *, const char *);
 879 extern void             ld_adj_movereloc(Ofl_desc *, Rel_desc *);
 880 extern Sym_desc *       ld_am_I_partial(Rel_desc *, Xword);
 881 extern void             ld_ar_member(Ar_desc *, Elf_Arsym *, Ar_aux *,
 882                             Ar_mem *);
 883 extern Ar_desc          *ld_ar_setup(const char *, Elf *, Ofl_desc *);
 884 extern uintptr_t        ld_assign_got_TLS(Boolean, Rel_desc *, Ofl_desc *,
 885                             Sym_desc *, Gotndx *, Gotref, Word, Word,
 886                             Word, Word);
 887 
 888 extern Word             ld_bswap_Word(Word);
 889 extern Xword            ld_bswap_Xword(Xword);
 890 
 891 extern uintptr_t        ld_cap_add_family(Ofl_desc *, Sym_desc *, Sym_desc *,
 892                             Cap_group *, APlist **);
 893 extern void             ld_cap_move_symtoobj(Ofl_desc *);
 894 


 895 extern void             ld_disp_errmsg(const char *, Rel_desc *, Ofl_desc *);
 896 
 897 extern void             ld_ent_check(Ofl_desc *);
 898 extern Ent_desc         *ld_ent_lookup(Ofl_desc *, const char *name,
 899                             avl_index_t *where);
 900 extern void             ld_eprintf(Ofl_desc *, Error, const char *, ...);
 901 extern int              ld_exit(Ofl_desc *);
 902 
 903 extern uintptr_t        ld_find_library(const char *, Ofl_desc *);
 904 extern uintptr_t        ld_finish_libs(Ofl_desc *);
 905 
 906 extern const char       *ld_stt_section_sym_name(Is_desc *);
 907 
 908 extern Group_desc       *ld_get_group(Ofl_desc *, Is_desc *);
 909 extern uintptr_t        ld_group_process(Is_desc *, Ofl_desc *);
 910 
 911 extern uintptr_t        ld_lib_setup(Ofl_desc *);
 912 
 913 extern void             ld_init_sighandler(Ofl_desc *);
 914 




 671 extern void             *libld_realloc(void *, size_t);
 672 
 673 extern int              isdavl_compare(const void *, const void *);
 674 
 675 extern Sdf_desc         *sdf_add(const char *, APlist **);
 676 extern Sdf_desc         *sdf_find(const char *, APlist *);
 677 
 678 #if     defined(_ELF64)
 679 
 680 #define ld_add_actrel           ld64_add_actrel
 681 #define ld_add_libdir           ld64_add_libdir
 682 #define ld_adj_movereloc        ld64_adj_movereloc
 683 #define ld_am_I_partial         ld64_am_I_partial
 684 #define ld_ar_member            ld64_ar_member
 685 #define ld_ar_setup             ld64_ar_setup
 686 #define ld_assign_got_TLS       ld64_assign_got_TLS
 687 #define ld_bswap_Word           ld64_bswap_Word
 688 #define ld_bswap_Xword          ld64_bswap_Xword
 689 #define ld_cap_add_family       ld64_cap_add_family
 690 #define ld_cap_move_symtoobj    ld64_cap_move_symtoobj
 691 #define ld_comdat_validate      ld64_comdat_validate
 692 #define ld_disp_errmsg          ld64_disp_errmsg
 693 #define ld_ent_check            ld64_ent_check
 694 #define ld_ent_lookup           ld64_ent_lookup
 695 #define ld_eprintf              ld64_eprintf
 696 #define ld_exit                 ld64_exit
 697 #define ld_find_library         ld64_find_library
 698 #define ld_finish_libs          ld64_finish_libs
 699 #define ld_get_group            ld64_get_group
 700 #define ld_group_process        ld64_group_process
 701 #define ld_lib_setup            ld64_lib_setup
 702 #define ld_init_sighandler      ld64_init_sighandler
 703 #define ld_lcm                  ld64_lcm
 704 #define ld_make_bss             ld64_make_bss
 705 #define ld_make_data            ld64_make_data
 706 #define ld_make_got             ld64_make_got
 707 #define ld_make_parexpn_data    ld64_make_parexpn_data
 708 #define ld_make_sunwmove        ld64_make_sunmove
 709 #define ld_make_text            ld64_make_text
 710 #define ld_map_out              ld64_map_out
 711 #define ld_map_parse            ld64_map_parse


 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
 777 
 778 #define ld_add_actrel           ld32_add_actrel
 779 #define ld_add_libdir           ld32_add_libdir
 780 #define ld_adj_movereloc        ld32_adj_movereloc
 781 #define ld_am_I_partial         ld32_am_I_partial
 782 #define ld_ar_member            ld32_ar_member
 783 #define ld_ar_setup             ld32_ar_setup
 784 #define ld_assign_got_TLS       ld32_assign_got_TLS
 785 #define ld_bswap_Word           ld32_bswap_Word
 786 #define ld_bswap_Xword          ld32_bswap_Xword
 787 #define ld_cap_add_family       ld32_cap_add_family
 788 #define ld_cap_move_symtoobj    ld32_cap_move_symtoobj
 789 #define ld_comdat_validate      ld32_comdat_validate
 790 #define ld_disp_errmsg          ld32_disp_errmsg
 791 #define ld_ent_check            ld32_ent_check
 792 #define ld_ent_lookup           ld32_ent_lookup
 793 #define ld_eprintf              ld32_eprintf
 794 #define ld_exit                 ld32_exit
 795 #define ld_find_library         ld32_find_library
 796 #define ld_finish_libs          ld32_finish_libs
 797 #define ld_get_group            ld32_get_group
 798 #define ld_group_process        ld32_group_process
 799 #define ld_lib_setup            ld32_lib_setup
 800 #define ld_init_sighandler      ld32_init_sighandler
 801 #define ld_lcm                  ld32_lcm
 802 #define ld_make_bss             ld32_make_bss
 803 #define ld_make_data            ld32_make_data
 804 #define ld_make_got             ld32_make_got
 805 #define ld_make_parexpn_data    ld32_make_parexpn_data
 806 #define ld_make_sunwmove        ld32_make_sunmove
 807 #define ld_make_text            ld32_make_text
 808 #define ld_map_out              ld32_map_out
 809 #define ld_map_parse            ld32_map_parse


 877 extern int              dbg_setup(Ofl_desc *, const char *, int);
 878 
 879 extern uintptr_t        ld_add_actrel(Word, Rel_desc *, Ofl_desc *);
 880 extern uintptr_t        ld_add_libdir(Ofl_desc *, const char *);
 881 extern void             ld_adj_movereloc(Ofl_desc *, Rel_desc *);
 882 extern Sym_desc *       ld_am_I_partial(Rel_desc *, Xword);
 883 extern void             ld_ar_member(Ar_desc *, Elf_Arsym *, Ar_aux *,
 884                             Ar_mem *);
 885 extern Ar_desc          *ld_ar_setup(const char *, Elf *, Ofl_desc *);
 886 extern uintptr_t        ld_assign_got_TLS(Boolean, Rel_desc *, Ofl_desc *,
 887                             Sym_desc *, Gotndx *, Gotref, Word, Word,
 888                             Word, Word);
 889 
 890 extern Word             ld_bswap_Word(Word);
 891 extern Xword            ld_bswap_Xword(Xword);
 892 
 893 extern uintptr_t        ld_cap_add_family(Ofl_desc *, Sym_desc *, Sym_desc *,
 894                             Cap_group *, APlist **);
 895 extern void             ld_cap_move_symtoobj(Ofl_desc *);
 896 
 897 extern void             ld_comdat_validate(Ofl_desc *, Ifl_desc *);
 898 
 899 extern void             ld_disp_errmsg(const char *, Rel_desc *, Ofl_desc *);
 900 
 901 extern void             ld_ent_check(Ofl_desc *);
 902 extern Ent_desc         *ld_ent_lookup(Ofl_desc *, const char *name,
 903                             avl_index_t *where);
 904 extern void             ld_eprintf(Ofl_desc *, Error, const char *, ...);
 905 extern int              ld_exit(Ofl_desc *);
 906 
 907 extern uintptr_t        ld_find_library(const char *, Ofl_desc *);
 908 extern uintptr_t        ld_finish_libs(Ofl_desc *);
 909 
 910 extern const char       *ld_stt_section_sym_name(Is_desc *);
 911 
 912 extern Group_desc       *ld_get_group(Ofl_desc *, Is_desc *);
 913 extern uintptr_t        ld_group_process(Is_desc *, Ofl_desc *);
 914 
 915 extern uintptr_t        ld_lib_setup(Ofl_desc *);
 916 
 917 extern void             ld_init_sighandler(Ofl_desc *);
 918