From 9e0875b88d1128b9fc76c4a27dc971278a05ec2b Mon Sep 17 00:00:00 2001 From: mspll <109390104+mspll@users.noreply.github.com> Date: Thu, 27 Jul 2023 13:37:25 -0700 Subject: [PATCH 1/4] largeaddressaware:no is not recommended for 64-bit apps --- .../build/reference/largeaddressaware-handle-large-addresses.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/build/reference/largeaddressaware-handle-large-addresses.md b/docs/build/reference/largeaddressaware-handle-large-addresses.md index e63c9bf10e1..7e0e15c9a2d 100644 --- a/docs/build/reference/largeaddressaware-handle-large-addresses.md +++ b/docs/build/reference/largeaddressaware-handle-large-addresses.md @@ -18,6 +18,8 @@ The /LARGEADDRESSAWARE option tells the linker that the application can handle a If an application was linked with /LARGEADDRESSAWARE, DUMPBIN [/HEADERS](headers.md) will display information to that effect. +Linking 64-bit applications with **`/LARGEADDRESSAWARE:NO`** is not recommended because it severely restricts the amount of available address space and can result in runtime failures. + ### To set this linker option in the Visual Studio development environment 1. Open the project's **Property Pages** dialog box. For details, see [Set C++ compiler and build properties in Visual Studio](../working-with-project-properties.md). From 322d3805057c497387939938600c8f35bb4fdc84 Mon Sep 17 00:00:00 2001 From: Tyler Whitney Date: Mon, 12 Feb 2024 15:58:47 -0800 Subject: [PATCH 2/4] Update largeaddressaware-handle-large-addresses.md --- .../build/reference/largeaddressaware-handle-large-addresses.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build/reference/largeaddressaware-handle-large-addresses.md b/docs/build/reference/largeaddressaware-handle-large-addresses.md index 7e0e15c9a2d..b0c5d2263d1 100644 --- a/docs/build/reference/largeaddressaware-handle-large-addresses.md +++ b/docs/build/reference/largeaddressaware-handle-large-addresses.md @@ -18,7 +18,7 @@ The /LARGEADDRESSAWARE option tells the linker that the application can handle a If an application was linked with /LARGEADDRESSAWARE, DUMPBIN [/HEADERS](headers.md) will display information to that effect. -Linking 64-bit applications with **`/LARGEADDRESSAWARE:NO`** is not recommended because it severely restricts the amount of available address space and can result in runtime failures. +Linking 64-bit applications with **`/LARGEADDRESSAWARE:NO`** is not recommended because it restricts the amount of available address space which can result in runtime failures if the app exhausts memory. ### To set this linker option in the Visual Studio development environment From 5f75e0d84f9583090d61182d3340b62117ede409 Mon Sep 17 00:00:00 2001 From: Tyler Whitney Date: Mon, 12 Feb 2024 16:01:16 -0800 Subject: [PATCH 3/4] Update largeaddressaware-handle-large-addresses.md --- .../largeaddressaware-handle-large-addresses.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/build/reference/largeaddressaware-handle-large-addresses.md b/docs/build/reference/largeaddressaware-handle-large-addresses.md index b0c5d2263d1..5fdc9f8eac0 100644 --- a/docs/build/reference/largeaddressaware-handle-large-addresses.md +++ b/docs/build/reference/largeaddressaware-handle-large-addresses.md @@ -1,10 +1,9 @@ --- description: "Learn more about: /LARGEADDRESSAWARE (Handle Large Addresses)" title: "/LARGEADDRESSAWARE (Handle Large Addresses)" -ms.date: "11/04/2016" +ms.date: "02/12/2024" f1_keywords: ["VC.Project.VCLinkerTool.LargeAddressAware", "/largeaddressaware"] helpviewer_keywords: ["LARGEADDRESSAWARE linker option", "-LARGEADDRESSAWARE linker option", "/LARGEADDRESSAWARE linker option"] -ms.assetid: a29756c8-e893-47a9-9750-1f0d25359385 --- # /LARGEADDRESSAWARE (Handle Large Addresses) @@ -14,11 +13,11 @@ ms.assetid: a29756c8-e893-47a9-9750-1f0d25359385 ## Remarks -The /LARGEADDRESSAWARE option tells the linker that the application can handle addresses larger than 2 gigabytes. In the 64-bit compilers, this option is enabled by default. In the 32-bit compilers, /LARGEADDRESSAWARE:NO is enabled if /LARGEADDRESSAWARE is not otherwise specified on the linker line. +The /LARGEADDRESSAWARE option tells the linker that the application can handle addresses larger than 2 gigabytes. In the 64-bit compilers, this option is enabled by default. In the 32-bit compilers, `/LARGEADDRESSAWARE:NO` is enabled if `/LARGEADDRESSAWARE` is not otherwise specified on the linker line. -If an application was linked with /LARGEADDRESSAWARE, DUMPBIN [/HEADERS](headers.md) will display information to that effect. +If an application was linked with `/LARGEADDRESSAWARE`, `DUMPBIN` [/HEADERS](headers.md) will display information to that effect. -Linking 64-bit applications with **`/LARGEADDRESSAWARE:NO`** is not recommended because it restricts the amount of available address space which can result in runtime failures if the app exhausts memory. +Linking 64-bit applications with **`/LARGEADDRESSAWARE:NO`** is not recommended because it restricts the available address space, which can result in runtime failures if the app exhausts memory. ### To set this linker option in the Visual Studio development environment From a0921a73adaf110091fc4ad9fbaa6174808d6f23 Mon Sep 17 00:00:00 2001 From: Tyler Whitney Date: Mon, 12 Feb 2024 16:06:49 -0800 Subject: [PATCH 4/4] Update largeaddressaware-handle-large-addresses.md --- .../build/reference/largeaddressaware-handle-large-addresses.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/build/reference/largeaddressaware-handle-large-addresses.md b/docs/build/reference/largeaddressaware-handle-large-addresses.md index 5fdc9f8eac0..611fab4f7a7 100644 --- a/docs/build/reference/largeaddressaware-handle-large-addresses.md +++ b/docs/build/reference/largeaddressaware-handle-large-addresses.md @@ -17,7 +17,7 @@ The /LARGEADDRESSAWARE option tells the linker that the application can handle a If an application was linked with `/LARGEADDRESSAWARE`, `DUMPBIN` [/HEADERS](headers.md) will display information to that effect. -Linking 64-bit applications with **`/LARGEADDRESSAWARE:NO`** is not recommended because it restricts the available address space, which can result in runtime failures if the app exhausts memory. +Linking 64-bit applications with **`/LARGEADDRESSAWARE:NO`** is not recommended because it restricts the available address space, which can result in runtime failures if the app exhausts memory. It may also prevent x64 apps from running on ARM64 systems because the emulation runtime will try to reserve 4GB of virtual address space. If the app was linked with `/LARGEADRESSAWARE:NO`, the app won't launch because it can't allocate that much address space. ### To set this linker option in the Visual Studio development environment