Page MenuHomeFreeBSD

D33745.diff
No OneTemporary

D33745.diff

diff --git a/usr.sbin/kldxref/ef_powerpc.c b/usr.sbin/kldxref/ef_powerpc.c
--- a/usr.sbin/kldxref/ef_powerpc.c
+++ b/usr.sbin/kldxref/ef_powerpc.c
@@ -55,6 +55,7 @@
Elf_Off dataoff, size_t len, void *dest)
{
Elf_Addr *where, addend;
+ Elf32_Addr *where32;
Elf_Size rtype, symidx;
const Elf_Rela *rela;
@@ -63,6 +64,7 @@
rela = (const Elf_Rela *)reldata;
where = (Elf_Addr *) ((Elf_Off)dest - dataoff + rela->r_offset);
+ where32 = (Elf32_Addr *) ((Elf_Off)dest - dataoff + rela->r_offset);
addend = rela->r_addend;
rtype = ELF_R_TYPE(rela->r_info);
symidx = ELF_R_SYM(rela->r_info);
@@ -74,9 +76,14 @@
case R_PPC_RELATIVE: /* word32|doubleword64 B + A */
*where = relbase + addend;
break;
- case R_PPC64_ADDR64: /* S + A */
+ case R_PPC_ADDR32: /* word32 S + A */
+ *where32 = EF_SYMADDR(ef, symidx) + addend;
+ break;
+#ifdef __powerpc64__
+ case R_PPC64_ADDR64: /* doubleword64 S + A */
*where = EF_SYMADDR(ef, symidx) + addend;
break;
+#endif
default:
warnx("unhandled relocation type %" PRI_ELF_SIZE, rtype);
}

File Metadata

Mime Type
text/plain
Expires
Thu, Nov 21, 12:31 PM (22 h, 10 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14761435
Default Alt Text
D33745.diff (1 KB)

Event Timeline