+ let page_size = if let Some(page_size) = config.page_size {
+ page_size
+ } else {
+ let target = &layout_cx.tcx.sess.target;
+ match target.arch.as_ref() {
+ "wasm32" | "wasm64" => 64 * 1024, // https://webassembly.github.io/spec/core/exec/runtime.html#memory-instances
+ "aarch64" =>
+ if target.options.vendor.as_ref() == "apple" {
+ // No "definitive" source, but see:
+ // https://www.wwdcnotes.com/notes/wwdc20/10214/
+ // https://github.com/ziglang/zig/issues/11308 etc.
+ 16 * 1024
+ } else {
+ 4 * 1024
+ },
+ _ => 4 * 1024,
+ }
+ };
+ let stack_addr = page_size * 32;
+ let stack_size = page_size * 16;