From c6633fde5302be357014c9aa14461857d99d0075 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Sat, 6 Sep 2014 17:51:25 -0400 Subject: [PATCH] mark win32 binaries as large address aware By default, 32-bit Windows executables are restricted to 2GiB of address space even when running on 64-bit Windows when 4GiB is available. Closes #17043 --- src/librustc/back/link.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/librustc/back/link.rs b/src/librustc/back/link.rs index 158ae22331a..1bd3425a83b 100644 --- a/src/librustc/back/link.rs +++ b/src/librustc/back/link.rs @@ -1019,6 +1019,12 @@ fn link_args(cmd: &mut Command, // Mark all dynamic libraries and executables as compatible with ASLR cmd.arg("-Wl,--dynamicbase"); + + // Mark all dynamic libraries and executables as compatible with the larger 4GiB address + // space available to x86 Windows binaries on x86_64. + if sess.targ_cfg.arch == abi::X86 { + cmd.arg("-Wl,--large-address-aware"); + } } if sess.targ_cfg.os == abi::OsAndroid {