View | Details | Raw Unified | Return to bug 85120 | Differences between
and this patch

Collapse All | Expand All

(-)lib/gelftrans.c (-5 / +5 lines)
Lines 53-59 Link Here
53
# undef ELF64_R_INFO
53
# undef ELF64_R_INFO
54
# define ELF64_R_SYM(i)		((i)>>32)
54
# define ELF64_R_SYM(i)		((i)>>32)
55
# define ELF64_R_TYPE(i)	((i)&0xffffffffL)
55
# define ELF64_R_TYPE(i)	((i)&0xffffffffL)
56
# define ELF64_R_INFO(s,t)	(((Elf64_Xword)(s)<<32)+((t)&0xffffffffL))
56
# define ELF64_R_INFO(s,t)	(((Elf64_Word)(s)<<32)+((t)&0xffffffffL))
57
#endif /* !defined(...) */
57
#endif /* !defined(...) */
58
58
59
static char*
59
static char*
Lines 256-263 Link Here
256
	Elf32_Rela *src = (Elf32_Rela*)tmp;
256
	Elf32_Rela *src = (Elf32_Rela*)tmp;
257
257
258
	check_and_copy(GElf_Addr,   dst, src, r_offset, NULL);
258
	check_and_copy(GElf_Addr,   dst, src, r_offset, NULL);
259
	dst->r_info = ELF64_R_INFO((Elf64_Xword)ELF32_R_SYM(src->r_info),
259
	dst->r_info = ELF64_R_INFO((Elf64_Word)ELF32_R_SYM(src->r_info),
260
				   (Elf64_Xword)ELF32_R_TYPE(src->r_info));
260
				   (Elf64_Word)ELF32_R_TYPE(src->r_info));
261
	check_and_copy(GElf_Sxword, dst, src, r_addend, NULL);
261
	check_and_copy(GElf_Sxword, dst, src, r_addend, NULL);
262
    }
262
    }
263
    else {
263
    else {
Lines 327-334 Link Here
327
	Elf32_Rel *src = (Elf32_Rel*)tmp;
327
	Elf32_Rel *src = (Elf32_Rel*)tmp;
328
328
329
	check_and_copy(GElf_Addr, dst, src, r_offset, NULL);
329
	check_and_copy(GElf_Addr, dst, src, r_offset, NULL);
330
	dst->r_info = ELF64_R_INFO((Elf64_Xword)ELF32_R_SYM(src->r_info),
330
	dst->r_info = ELF64_R_INFO((Elf64_Word)ELF32_R_SYM(src->r_info),
331
				   (Elf64_Xword)ELF32_R_TYPE(src->r_info));
331
				   (Elf64_Word)ELF32_R_TYPE(src->r_info));
332
    }
332
    }
333
    else {
333
    else {
334
	seterr(ERROR_UNIMPLEMENTED);
334
	seterr(ERROR_UNIMPLEMENTED);

Return to bug 85120