Fix rtld to handle SPARC_R_UA{16,64} relocations correctly.

Approved by:	re (rwatson)
This commit is contained in:
Alexander Kabaev 2002-12-05 16:58:31 +00:00
parent 2f07688e82
commit f94cc7e9ca
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=107638

View File

@ -178,7 +178,7 @@ static long reloc_target_bitmask[] = {
_BM(22), _BM(10), _BM(22), /* _PC_HH22, _PC_HM10, _PC_LM22 */
_BM(16), _BM(19), /* _WDISP16, _WDISP19 */
-1, /* GLOB_JMP */
_BM(7), _BM(5), _BM(6) /* _7, _5, _6 */
_BM(7), _BM(5), _BM(6), /* _7, _5, _6 */
-1, -1, /* DISP64, PLT64 */
_BM(22), _BM(13), /* HIX22, LOX10 */
_BM(22), _BM(10), _BM(13), /* H44, M44, L44 */
@ -380,7 +380,7 @@ reloc_nonplt_object(Obj_Entry *obj, const Elf_Rela *rela, SymCache *cache)
/* Write it back out. */
for (i = 0; i < size; i++)
ptr[i] = ((tmp >> (8 * i)) & 0xff);
ptr[i] = ((tmp >> ((size - i - 1) * 8)) & 0xff);
} else if (RELOC_TARGET_SIZE(type) > 32) {
*where &= ~mask;
*where |= value;