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 -1
View File
@@ -411,10 +411,12 @@ void PackBvmlinuzI386::pack(OutputFile *fo)
if (ph.method == M_LZMA) {
const lzma_compress_result_t *res = &ph.compress_result.result_lzma;
unsigned const 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);
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);