Fix endianess in modpost when cross-compiling for sparc on i386
PATCH 1/1 Fix endianess in modpost when cross-compiling for sparc on i386
Hi,
this simple patch makes the following code work again:
#ifdef STT_REGISTER
if (info->hdr->e_machine = EM_SPARC ||
info->hdr->e_machine = EM_SPARCV9) {
/* Ignore register directives. */
if (ELF_ST_TYPE(sym->st_info) = STT_REGISTER)
break;
}#endif
This portion of code is sparc specific and nothing else in modpost.c uses e_machine meaning cross-compiling for sparc on i386 (or any little endian machine) is the only way to experience the bug.
Without it, e_machine has the wrong value and modpost then generates a lot of "*** Warning: \"symbol\" [filename.ko] undefined" messages.
modpost.c renamed from modpost.c.orig +1 -0
@@ -267,6 +267,7 @@ hdr->e_shoff =TO_NATIVE (hdr->e_shoff); hdr->e_shstrndx =TO_NATIVE (hdr->e_shstrndx); hdr->e_shnum =TO_NATIVE (hdr->e_shnum); + hdr->e_machine =TO_NATIVE (hdr->e_machine); sechdrs = (void *)hdr + hdr->e_shoff; info->sechdrs = sechdrs;
Signature · 4 lines
Mathieu Chouquet-Stringer E-Mail: [email protected] Never attribute to malice that which can be adequately explained by stupidity. -- Hanlon's Razor --