lzma should be working again for most of the i386 formats
This commit is contained in:
+1
-1
@@ -346,7 +346,7 @@ void PackDjgpp2::pack(OutputFile *fo)
|
|||||||
|
|
||||||
linker->defineSymbol("original_entry", coff_hdr.a_entry);
|
linker->defineSymbol("original_entry", coff_hdr.a_entry);
|
||||||
linker->defineSymbol("length_of_bss", ph.overlap_overhead / 4);
|
linker->defineSymbol("length_of_bss", ph.overlap_overhead / 4);
|
||||||
//patchDecompressor(loader, lsize); // FIXME
|
defineDecompressorSymbols();
|
||||||
assert(bss->vaddr == ((size + 0x1ff) &~ 0x1ff) + (text->vaddr &~ 0x1ff));
|
assert(bss->vaddr == ((size + 0x1ff) &~ 0x1ff) + (text->vaddr &~ 0x1ff));
|
||||||
linker->defineSymbol("stack_for_lzma", bss->vaddr + bss->size);
|
linker->defineSymbol("stack_for_lzma", bss->vaddr + bss->size);
|
||||||
linker->defineSymbol("start_of_uncompressed", text->vaddr - hdrsize);
|
linker->defineSymbol("start_of_uncompressed", text->vaddr - hdrsize);
|
||||||
|
|||||||
+1
-1
@@ -261,7 +261,7 @@ void PackTmt::pack(OutputFile *fo)
|
|||||||
// patch loader
|
// patch loader
|
||||||
linker->defineSymbol("original_entry", ih.entry);
|
linker->defineSymbol("original_entry", ih.entry);
|
||||||
defineFilterSymbols(linker, &ft);
|
defineFilterSymbols(linker, &ft);
|
||||||
// FIXME patchDecompressor(loader, lsize);
|
defineDecompressorSymbols();
|
||||||
|
|
||||||
linker->defineSymbol("bytes_to_copy", ph.c_len + d_len);
|
linker->defineSymbol("bytes_to_copy", ph.c_len + d_len);
|
||||||
linker->defineSymbol("copy_dest", ph.u_len + ph.overlap_overhead + d_len - 1);
|
linker->defineSymbol("copy_dest", ph.u_len + ph.overlap_overhead + d_len - 1);
|
||||||
|
|||||||
+1
-2
@@ -253,10 +253,9 @@ void PackVmlinuxI386::pack(OutputFile *fo)
|
|||||||
if (0x40==(0xf0 & ft.id)) {
|
if (0x40==(0xf0 & ft.id)) {
|
||||||
linker->defineSymbol("filter_length", ph.u_len); // redefine
|
linker->defineSymbol("filter_length", ph.u_len); // redefine
|
||||||
}
|
}
|
||||||
|
defineDecompressorSymbols();
|
||||||
linker->relocate();
|
linker->relocate();
|
||||||
|
|
||||||
// FIXME patchDecompressor(loader, lsize);
|
|
||||||
|
|
||||||
MemBuffer loader(lsize);
|
MemBuffer loader(lsize);
|
||||||
memcpy(loader, getLoader(), lsize);
|
memcpy(loader, getLoader(), lsize);
|
||||||
patchPackHeader(loader, lsize);
|
patchPackHeader(loader, lsize);
|
||||||
|
|||||||
+2
-2
@@ -306,7 +306,7 @@ void PackVmlinuzI386::pack(OutputFile *fo)
|
|||||||
const unsigned lsize = getLoaderSize();
|
const unsigned lsize = getLoaderSize();
|
||||||
|
|
||||||
defineFilterSymbols(linker, &ft);
|
defineFilterSymbols(linker, &ft);
|
||||||
// FIXME patchDecompressor(loader, lsize);
|
defineDecompressorSymbols();
|
||||||
linker->defineSymbol("src_for_decompressor", zimage_offset + lsize);
|
linker->defineSymbol("src_for_decompressor", zimage_offset + lsize);
|
||||||
linker->defineSymbol("original_entry", kernel_entry);
|
linker->defineSymbol("original_entry", kernel_entry);
|
||||||
linker->defineSymbol("stack_offset", stack_offset_during_uncompression);
|
linker->defineSymbol("stack_offset", stack_offset_during_uncompression);
|
||||||
@@ -418,7 +418,7 @@ void PackBvmlinuzI386::pack(OutputFile *fo)
|
|||||||
if (0x40==(0xf0 & ft.id)) {
|
if (0x40==(0xf0 & ft.id)) {
|
||||||
linker->defineSymbol("filter_length", ph.u_len); // redefine
|
linker->defineSymbol("filter_length", ph.u_len); // redefine
|
||||||
}
|
}
|
||||||
// FIXME patchDecompressor(loader, lsize);
|
defineDecompressorSymbols();
|
||||||
linker->defineSymbol("original_entry", kernel_entry);
|
linker->defineSymbol("original_entry", kernel_entry);
|
||||||
linker->defineSymbol("stack_offset", stack_offset_during_uncompression);
|
linker->defineSymbol("stack_offset", stack_offset_during_uncompression);
|
||||||
linker->relocate();
|
linker->relocate();
|
||||||
|
|||||||
+1
-1
@@ -548,7 +548,7 @@ void PackWcle::pack(OutputFile *fo)
|
|||||||
linker->defineSymbol("start_of_relocs", mps*pages);
|
linker->defineSymbol("start_of_relocs", mps*pages);
|
||||||
defineFilterSymbols(linker, &ft);
|
defineFilterSymbols(linker, &ft);
|
||||||
linker->defineSymbol("filter_buffer_start", text_vaddr);
|
linker->defineSymbol("filter_buffer_start", text_vaddr);
|
||||||
// FIXME patchDecompressor(loader, lsize);
|
defineDecompressorSymbols();
|
||||||
|
|
||||||
unsigned jpos = (((ph.c_len + 3) &~ 3) + d_len + 3) / 4;
|
unsigned jpos = (((ph.c_len + 3) &~ 3) + d_len + 3) / 4;
|
||||||
linker->defineSymbol("words_to_copy", jpos);
|
linker->defineSymbol("words_to_copy", jpos);
|
||||||
|
|||||||
Reference in New Issue
Block a user