lzma should be working again for most of the i386 formats

This commit is contained in:
László Molnár 2006-07-18 13:44:44 +02:00
parent b8b983dded
commit 4500c1d1a4
5 changed files with 6 additions and 7 deletions

View File

@ -346,7 +346,7 @@ void PackDjgpp2::pack(OutputFile *fo)
linker->defineSymbol("original_entry", coff_hdr.a_entry);
linker->defineSymbol("length_of_bss", ph.overlap_overhead / 4);
//patchDecompressor(loader, lsize); // FIXME
defineDecompressorSymbols();
assert(bss->vaddr == ((size + 0x1ff) &~ 0x1ff) + (text->vaddr &~ 0x1ff));
linker->defineSymbol("stack_for_lzma", bss->vaddr + bss->size);
linker->defineSymbol("start_of_uncompressed", text->vaddr - hdrsize);

View File

@ -261,7 +261,7 @@ void PackTmt::pack(OutputFile *fo)
// patch loader
linker->defineSymbol("original_entry", ih.entry);
defineFilterSymbols(linker, &ft);
// FIXME patchDecompressor(loader, lsize);
defineDecompressorSymbols();
linker->defineSymbol("bytes_to_copy", ph.c_len + d_len);
linker->defineSymbol("copy_dest", ph.u_len + ph.overlap_overhead + d_len - 1);

View File

@ -253,10 +253,9 @@ void PackVmlinuxI386::pack(OutputFile *fo)
if (0x40==(0xf0 & ft.id)) {
linker->defineSymbol("filter_length", ph.u_len); // redefine
}
defineDecompressorSymbols();
linker->relocate();
// FIXME patchDecompressor(loader, lsize);
MemBuffer loader(lsize);
memcpy(loader, getLoader(), lsize);
patchPackHeader(loader, lsize);

View File

@ -306,7 +306,7 @@ void PackVmlinuzI386::pack(OutputFile *fo)
const unsigned lsize = getLoaderSize();
defineFilterSymbols(linker, &ft);
// FIXME patchDecompressor(loader, lsize);
defineDecompressorSymbols();
linker->defineSymbol("src_for_decompressor", zimage_offset + lsize);
linker->defineSymbol("original_entry", kernel_entry);
linker->defineSymbol("stack_offset", stack_offset_during_uncompression);
@ -418,7 +418,7 @@ void PackBvmlinuzI386::pack(OutputFile *fo)
if (0x40==(0xf0 & ft.id)) {
linker->defineSymbol("filter_length", ph.u_len); // redefine
}
// FIXME patchDecompressor(loader, lsize);
defineDecompressorSymbols();
linker->defineSymbol("original_entry", kernel_entry);
linker->defineSymbol("stack_offset", stack_offset_during_uncompression);
linker->relocate();

View File

@ -548,7 +548,7 @@ void PackWcle::pack(OutputFile *fo)
linker->defineSymbol("start_of_relocs", mps*pages);
defineFilterSymbols(linker, &ft);
linker->defineSymbol("filter_buffer_start", text_vaddr);
// FIXME patchDecompressor(loader, lsize);
defineDecompressorSymbols();
unsigned jpos = (((ph.c_len + 3) &~ 3) + d_len + 3) / 4;
linker->defineSymbol("words_to_copy", jpos);