Valeriy E. Ushakov wrote:
@@ -135,8 +131,9 @@ ElfLoader::memorySize() if (symblk_sz) { sz += symblk_sz; DPRINTF((TEXT(" = 0x%x]"), symblk_sz)); - // XXX: compensate for partial tags after ELF header and symtab - extra += 2 * _mem->getTaggedPageSize(); + // XXX: compensate for partial tags after ELF header, symtab + // and strtab + extra += 3 * _mem->getTaggedPageSize(); }Does it work for you with this hunk alone?
Only sometimes; it worked loading a ~ 2.8MB kernel once, but then it died in the same 'entrypoint gets overwritten' way loading my little 16K test executable. With the whole mess of changes I haven't had a failure yet (both booting real kernels and booting my test executable).
--rafal