Fixed some ElfLinker endian issues.

This commit is contained in:
Markus F.X.J. Oberhumer
2006-11-18 17:43:29 +01:00
parent 9eca502026
commit d9e8c953b1
10 changed files with 127 additions and 10 deletions
+3 -5
View File
@@ -253,14 +253,12 @@ void Packer::defineDecompressorSymbols()
{
const lzma_compress_result_t *res = &ph.compress_result.result_lzma;
// FIXME - this is for i386 only
unsigned properties = // lc, lp, pb, dummy
acc_uint32e_t properties = // lc, lp, pb, dummy
(res->lit_context_bits << 0) |
(res->lit_pos_bits << 8) |
(res->pos_bits << 16);
// big endian - bswap32
if (getFormat() >= 128)
set_be32(&properties, properties);
if (linker->bele_policy->isBE()) // big endian - bswap32
acc_swab32s(&properties);
linker->defineSymbol("lzma_properties", properties);
// -2 for properties
linker->defineSymbol("lzma_c_len", ph.c_len - 2);