Rel_desc
extern void Dbg_reloc_ars_entry(Lm_list *, int, Word, Half, Rel_desc *);
extern void Dbg_reloc_discard(Lm_list *, Half, Rel_desc *);
extern void Dbg_reloc_doact(Lm_list *, int, Half, Word, Rel_desc *,
extern void Dbg_reloc_ors_entry(Lm_list *, int, Word, Half, Rel_desc *);
extern void Dbg_reloc_transition(Lm_list *, Half, Word, Rel_desc *,
typedef const char *(* rel_desc_sname_func_t)(Rel_desc *);
Rel_desc *rc_end;
Rel_desc *rc_free;
Rel_desc rc_arr[1];
Word (* mr_init_rel)(Rel_desc *, Word *, void *);
uintptr_t (* mr_perform_outreloc)(Rel_desc *, Ofl_desc *,
uintptr_t (* mr_add_outrel)(Word, Rel_desc *, Ofl_desc *);
uintptr_t (* mr_reloc_register)(Rel_desc *, Is_desc *,
uintptr_t (* mr_reloc_local)(Rel_desc *, Ofl_desc *);
uintptr_t (* mr_reloc_GOTOP)(Boolean, Rel_desc *, Ofl_desc *);
uintptr_t (* mr_reloc_TLS)(Boolean, Rel_desc *, Ofl_desc *);
Rel_desc *);
Xword (* mr_calc_got_offset)(Rel_desc *, Ofl_desc *);
Ofl_desc *, Rel_desc *, Sym_desc *);
Rel_desc *rl_rsp;
extern uintptr_t ld_add_actrel(Word, Rel_desc *, Ofl_desc *);
extern void ld_adj_movereloc(Ofl_desc *, Rel_desc *);
extern Sym_desc * ld_am_I_partial(Rel_desc *, Xword);
extern uintptr_t ld_assign_got_TLS(Boolean, Rel_desc *, Ofl_desc *,
extern void ld_disp_errmsg(const char *, Rel_desc *, Ofl_desc *);
extern uintptr_t ld_process_sym_reloc(Ofl_desc *, Rel_desc *, Rel *,
extern Rel_desc *ld_reloc_enter(Ofl_desc *, Rel_cache *, Rel_desc *,
extern uintptr_t ld_reloc_GOT_relative(Boolean, Rel_desc *, Ofl_desc *);
extern uintptr_t ld_reloc_plt(Rel_desc *, Ofl_desc *);
extern void ld_reloc_remain_entry(Rel_desc *, Os_desc *,
extern Boolean ld_reloc_set_aux_osdesc(Ofl_desc *, Rel_desc *,
extern Boolean ld_reloc_set_aux_usym(Ofl_desc *, Rel_desc *,
extern const char *ld_reloc_sym_name(Rel_desc *);
extern int ld_reloc_targval_get(Ofl_desc *, Rel_desc *,
extern int ld_reloc_targval_set(Ofl_desc *, Rel_desc *,
extern int ld_swap_reloc_data(Ofl_desc *, Rel_desc *);
ld_add_outrel(Word flags, Rel_desc *rsp, Ofl_desc *ofl)
Rel_desc *orsp;
ld_init_rel(Rel_desc *reld, Word *typedata, void *reloc)
ld_reloc_local(Rel_desc * rsp, Ofl_desc * ofl)
ld_reloc_TLS(Boolean local, Rel_desc * rsp, Ofl_desc * ofl)
Rel_desc *rsp, Sym_desc *sdp)
ld_perform_outreloc(Rel_desc * orsp, Ofl_desc * ofl, Boolean *remain_seen)
static Rel_desc rdesc_r_amd64_gotpcrel = {
tls_fixups(Ofl_desc *ofl, Rel_desc *arsp)
static Rel_desc rdesc_r_amd64_32 = {
static Rel_desc rdesc_r_amd64_pc32 = {
syn_rdesc_sym_name(Rel_desc *rdesc)
ld_find_got_ndx(Alist *alp, Gotref gref, Ofl_desc *ofl, Rel_desc *rdesc)
Rel_desc *arsp;
ld_calc_got_offset(Rel_desc *rdesc, Ofl_desc *ofl)
ld_add_outrel(Word flags, Rel_desc *rsp, Ofl_desc *ofl)
Rel_desc *orsp;
ld_reloc_local(Rel_desc * rsp, Ofl_desc * ofl)
ld_reloc_TLS(Boolean local, Rel_desc * rsp, Ofl_desc * ofl)
Rel_desc *rsp, Sym_desc *sdp)
ld_perform_outreloc(Rel_desc * orsp, Ofl_desc * ofl, Boolean *remain_seen)
tls_fixups(Ofl_desc *ofl, Rel_desc *arsp)
ld_find_got_ndx(Alist *alp, Gotref gref, Ofl_desc *ofl, Rel_desc *rdesc)
ld_calc_got_offset(Rel_desc *rdesc, Ofl_desc *ofl)
Rel_desc *arsp;
ld_init_rel(Rel_desc *reld, Word *typedata, void *reloc)
gotop_fixups(Ofl_desc *ofl, Rel_desc *arsp)
ld_init_rel(Rel_desc *reld, Word *typedata, void *reloc)
Rel_desc *arsp;
ld_add_outrel(Word flags, Rel_desc *rsp, Ofl_desc *ofl)
Rel_desc *orsp;
ld_reloc_register(Rel_desc *rsp, Is_desc *isp, Ofl_desc *ofl)
ld_reloc_local(Rel_desc *rsp, Ofl_desc *ofl)
ld_reloc_GOTOP(Boolean local, Rel_desc *rsp, Ofl_desc *ofl)
ld_reloc_TLS(Boolean local, Rel_desc *rsp, Ofl_desc *ofl)
Rel_desc *rsp, Sym_desc *sdp)
ld_find_got_ndx(Alist *alp, Gotref gref, Ofl_desc *ofl, Rel_desc *rdesc)
ld_perform_outreloc(Rel_desc *orsp, Ofl_desc *ofl, Boolean *remain_seen)
ld_calc_got_offset(Rel_desc * rdesc, Ofl_desc * ofl)
tls_fixups(Ofl_desc *ofl, Rel_desc *arsp)
reloc_exec(Rel_desc *rsp, Ofl_desc *ofl)
reloc_generic(Rel_desc *rsp, Ofl_desc *ofl)
reloc_relobj(Boolean local, Rel_desc *rsp, Ofl_desc *ofl)
reloc_TLS(Boolean local, Rel_desc *rsp, Ofl_desc *ofl)
ld_process_sym_reloc(Ofl_desc *ofl, Rel_desc *reld, Rel *reloc, Is_desc *isp,
sloppy_comdat_reloc(Ofl_desc *ofl, Rel_desc *reld, Sym_desc *sdp,
process_reld(Ofl_desc *ofl, Is_desc *isp, Rel_desc *reld, Word rsndx,
Rel_desc reld; /* relocation descriptor */
Rel_desc reld;
disp_scansyms(Ifl_desc * ifl, Rel_desc *rld, Boolean rlocal, int inspect,
Rel_desc *orsp;
ld_reloc_remain_entry(Rel_desc *orsp, Os_desc *osp, Ofl_desc *ofl,
ld_assign_got_TLS(Boolean local, Rel_desc *rsp, Ofl_desc *ofl, Sym_desc *sdp,
ld_adj_movereloc(Ofl_desc *ofl, Rel_desc *arsp)
ld_am_I_partial(Rel_desc *reld, Xword val)
ld_swap_reloc_data(Ofl_desc *ofl, Rel_desc *rsp)
ld_reloc_targval_get(Ofl_desc *ofl, Rel_desc *rsp, uchar_t *data, Xword *value)
ld_reloc_targval_set(Ofl_desc *ofl, Rel_desc *rsp, uchar_t *data, Xword value)
ld_disp_errmsg(const char *msg, Rel_desc *rsp, Ofl_desc *ofl)
disp_inspect(Ofl_desc *ofl, Rel_desc *rld, Boolean rlocal)
size = sizeof (Rel_cachebuf) + ((nelts - 1) * sizeof (Rel_desc));
ld_add_rel_aux(Ofl_desc *ofl, Rel_desc *rdesc)
Rel_desc *
ld_reloc_enter(Ofl_desc *ofl, Rel_cache *rcp, Rel_desc *rdesc, Word flags)
Rel_desc *arsp;
ld_init_rel_aux(Rel_desc *rdesc)
ld_reloc_set_aux_osdesc(Ofl_desc *ofl, Rel_desc *rdesc, Os_desc *osp)
ld_reloc_set_aux_usym(Ofl_desc *ofl, Rel_desc *rdesc, Sym_desc *sdp)
ld_reloc_sym_name(Rel_desc *rsp)
ld_add_actrel(Word flags, Rel_desc *rsp, Ofl_desc *ofl)
Rel_desc *arsp;
ld_reloc_GOT_relative(Boolean local, Rel_desc *rsp, Ofl_desc *ofl)
ld_reloc_plt(Rel_desc *rsp, Ofl_desc *ofl)
strmerge_get_reloc_str(Ofl_desc *ofl, Rel_desc *rsp)
Rel_desc *rsp;
Rel_desc *rsp;
Rel_desc *rsp;
Rel_desc reld;
Dbg_reloc_doact(Lm_list *lml, int caller, Half mach, Word type, Rel_desc *rdesc,
Dbg_reloc_discard(Lm_list *lml, Half mach, Rel_desc *rsp)
Dbg_reloc_transition(Lm_list *lml, Half mach, Word rtype, Rel_desc *rsp,
Rel_desc *orsp)
Rel_desc *arsp)
bytes = desc_cnt * sizeof (Rel_desc);
bytes = desc_cnt * sizeof (Rel_desc);
extern int do_reloc_ld(Rel_desc *, uchar_t *, Xword *,
do_reloc_ld(Rel_desc *rdesc, uchar_t *off, Xword *value,
do_reloc_ld(Rel_desc *rdesc, uchar_t *off, Xword *value,
do_reloc_ld(Rel_desc *rdesc, uchar_t *off, Xword *value,