Support 32-bit build. (#44)

* Support 32-bit build.

Signatures/functions/imports/exports etc are defined as varuint32 in
the WebAssembly specification so use u32 rather than u64.

Decrease the static memory constants for 32-bit addressing mode so
that they fit within 32-bit memory constraints.

Conditionalize cmake compile of SignalHandlers.cpp so that -m32 is
passed when building 32-bit.

Add a no-op match for Reloc::X86CallPCRel4 during linking. This is
probably the wrong thing, but it allows the tests to pass. Using the
same logic from the Reloc::X86PCRel4 case did not work.
This commit is contained in:
Joel Martin
2019-01-24 15:40:25 -06:00
committed by Dan Gohman
parent 00a4e93bcd
commit fdcb2184a8
7 changed files with 162 additions and 100 deletions

View File

@@ -347,6 +347,10 @@ fn relocate(
.unwrap();
write_unaligned(reloc_address as *mut u32, reloc_delta_u32);
},
#[cfg(target_pointer_width = "32")]
Reloc::X86CallPCRel4 => {
// ignore
}
_ => panic!("unsupported reloc kind"),
}
}