diff --git a/src/p_djgpp2.cpp b/src/p_djgpp2.cpp index ea9a5ca0..5f6dc296 100644 --- a/src/p_djgpp2.cpp +++ b/src/p_djgpp2.cpp @@ -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); diff --git a/src/p_tmt.cpp b/src/p_tmt.cpp index d28f1947..4f09532e 100644 --- a/src/p_tmt.cpp +++ b/src/p_tmt.cpp @@ -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); diff --git a/src/p_vmlinx.cpp b/src/p_vmlinx.cpp index 280e781b..f1dbf25f 100644 --- a/src/p_vmlinx.cpp +++ b/src/p_vmlinx.cpp @@ -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); diff --git a/src/p_vmlinz.cpp b/src/p_vmlinz.cpp index fde4d0f8..8cc27df6 100644 --- a/src/p_vmlinz.cpp +++ b/src/p_vmlinz.cpp @@ -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(); diff --git a/src/p_wcle.cpp b/src/p_wcle.cpp index 952db89d..5718138d 100644 --- a/src/p_wcle.cpp +++ b/src/p_wcle.cpp @@ -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);