Page MenuHomeFreeBSD

D20316.id57566.diff
No OneTemporary

D20316.id57566.diff

Index: sys/dev/ksyms/ksyms.c
===================================================================
--- sys/dev/ksyms/ksyms.c
+++ sys/dev/ksyms/ksyms.c
@@ -191,6 +191,7 @@
size_t len, numsyms, strsz, symsz;
linker_symval_t symval;
int error, i, nsyms;
+ bool fixup;
buf = malloc(SYMBLKSZ, M_KSYMS, M_WAITOK);
to = arg;
@@ -201,6 +202,12 @@
strsz = LINKER_STRTAB_GET(lf, &strtab);
symsz = numsyms * sizeof(Elf_Sym);
+#ifdef __powerpc__
+ fixup = 1;
+#else
+ fixup = lf->id > 1;
+#endif
+
while (symsz > 0) {
len = min(SYMBLKSZ, symsz);
bcopy(symtab, buf, len);
@@ -214,7 +221,7 @@
nsyms = len / sizeof(Elf_Sym);
for (i = 0; i < nsyms; i++) {
symp[i].st_name += to->to_stridx;
- if (lf->id > 1 && LINKER_SYMBOL_VALUES(lf,
+ if (fixup && LINKER_SYMBOL_VALUES(lf,
(c_linker_sym_t)&symtab[i], &symval) == 0) {
symp[i].st_value = (uintptr_t)symval.value;
}

File Metadata

Mime Type
text/plain
Expires
Wed, Jul 8, 4:29 PM (4 h, 6 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
34851648
Default Alt Text
D20316.id57566.diff (905 B)

Event Timeline