diff --git a/docs/build/reference/hotpatch-create-hotpatchable-image.md b/docs/build/reference/hotpatch-create-hotpatchable-image.md index ecd2b6467e5..011a1b31280 100644 --- a/docs/build/reference/hotpatch-create-hotpatchable-image.md +++ b/docs/build/reference/hotpatch-create-hotpatchable-image.md @@ -1,14 +1,13 @@ --- -description: "Learn more about: /hotpatch (Create Hotpatchable Image)" -title: "/hotpatch (Create Hotpatchable Image)" -ms.date: "12/7/2021" +description: "Learn more about: /hotpatch (Create hotpatchable image)" +title: "/hotpatch (Create hotpatchable image)" +ms.date: "9/4/2025" f1_keywords: ["/hotpatch", "VC.Project.VCCLCompilerTool.CreateHotpatchableImage"] -helpviewer_keywords: ["hot patching", "-hotpatch compiler option [C++]", "/hotpatch compiler option [C++]", "hotpatching"] -ms.assetid: aad539b6-c053-4c78-8682-853d98327798 +helpviewer_keywords: ["hot patching", "hotpatching", "-hotpatch compiler option [C++]", "/hotpatch compiler option [C++]"] --- -# /hotpatch (Create Hotpatchable Image) +# /hotpatch (Create hotpatchable image) -Prepares an image for hot patching. +Prepares an image for hotpatching. ## Syntax @@ -16,20 +15,22 @@ Prepares an image for hot patching. /hotpatch ``` +> [!NOTE] +> This option is only available for x86 + ## Remarks -When **/hotpatch** is used in a compilation, the compiler ensures that the first instruction of each function is at least two bytes, and no jump within the function goes to the first instruction. These conditions are required for hot patching. +When `/hotpatch` is used during compilation, the compiler ensures that the first instruction of each function is at least 2 bytes long and that no jump within the function goes to the first instruction. These conditions are required for hotpatching. -To complete the preparation for making an image hotpatchable, after you use **/hotpatch** to compile, you must use [/FUNCTIONPADMIN (Create Hotpatchable Image)](functionpadmin-create-hotpatchable-image.md) to link. When you compile and link an image by using one invocation of cl.exe, **/hotpatch** implies **/functionpadmin**. +To complete the preparation for making an image hotpatchable, after you compile with `/hotpatch`, use [`/functionpadmin`](functionpadmin-create-hotpatchable-image.md) to link. When you compile and link an image using one invocation of `cl.exe`, `/hotpatch` implies `/functionpadmin`. -Because instructions are always two bytes or larger on the ARM architecture, and because x64 compilation is always treated as if **/hotpatch** has been specified, you don't have to specify **/hotpatch** when you compile for these targets; however, you must still link by using **/functionpadmin** to create hotpatchable images for them. The **/hotpatch** compiler option only affects x86 compilation. +> [!TIP] +> Arm64 and x64 architectures are always treated as hotpatchable. But you must still link by using `/functionpadmin` to create hotpatchable images for them. ### To set this compiler 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). - 1. Select the **Configuration Properties** > **C/C++** > **Command Line** property page. - 1. Add the compiler option to the **Additional Options** box. ### To set this compiler option programmatically @@ -38,5 +39,5 @@ Because instructions are always two bytes or larger on the ARM architecture, and ## See also -[MSVC Compiler Options](compiler-options.md)
+[MSVC Compiler Options](compiler-options.md)\ [MSVC Compiler Command-Line Syntax](compiler-command-line-syntax.md) diff --git a/docs/docfx.json b/docs/docfx.json index 23b40c4fd3a..e3765f2f722 100644 --- a/docs/docfx.json +++ b/docs/docfx.json @@ -160,100 +160,188 @@ "windows/**.md": "windows-development" }, "ms.update-cycle": { - "assembler/**/**.{md,yml}": "3650-days", - "attributes/**/**.{md,yml}": "3650-days", - "atl/**/**.{md,yml}": "3650-days", - "atl-mfc-shared/**/**.{md,yml}": "3650-days", - "build/**/**.{md,yml}": "1825-days", - "c-language/**/**.{md,yml}": "3650-days", - "c-runtime-library/**/**.{md,yml}": "3650-days", + "assembler/**.md": "3650-days", + "assembler/**.yml": "3650-days", + "attributes/**.md": "3650-days", + "attributes/**.yml": "3650-days", + "atl/**.md": "3650-days", + "atl/**.yml": "3650-days", + "atl-mfc-shared/**.md": "3650-days", + "atl-mfc-shared/**.yml": "3650-days", + "build/**.md": "1825-days", + "build/**.yml": "1825-days", + "c-language/**.md": "3650-days", + "c-language/**.yml": "3650-days", + "c-runtime-library/**.md": "3650-days", + "c-runtime-library/**.yml": "3650-days", "cpp/**.md": "1095-days", - "cppcx/**/**.{md,yml}": "3650-days", - "cross-platform/**/**.{md,yml}": "1825-days", - "data/**/**.{md,yml}": "3650-days", - "dotnet/**/**.{md,yml}": "3650-days", - "embedded/**/**.{md,yml}": "3650-days", - "error-messages/**/**.{md,yml}": "3650-days", - "extensions/**/**.{md,yml}": "3650-days", - "intrinsics/**/**.{md,yml}": "3650-days", - "mfc/**/**.{md,yml}": "3650-days", - "parallel/**/**.{md,yml}": "3650-days", - "porting/**/**.{md,yml}": "1095-days", - "preprocessor/**/**.{md,yml}": "3650-days", - "safeint/**/**.{md,yml}": "3650-days", - "standard-library/**/**.{md,yml}": "3650-days", - "text/**/**.{md,yml}": "3650-days", - "windows/**/**.{md,yml}": "1825-days" + "cpp/**.yml": "1095-days", + "cppcx/**.md": "3650-days", + "cppcx/**.yml": "3650-days", + "cross-platform/**.md": "1825-days", + "cross-platform/**.yml": "1825-days", + "data/**.md": "3650-days", + "data/**.yml": "3650-days", + "dotnet/**.md": "3650-days", + "dotnet/**.yml": "3650-days", + "embedded/**.md": "3650-days", + "embedded/**.yml": "3650-days", + "error-messages/**.md": "3650-days", + "error-messages/**.yml": "3650-days", + "extensions/**.md": "3650-days", + "extensions/**.yml": "3650-days", + "intrinsics/**.md": "3650-days", + "intrinsics/**.yml": "3650-days", + "mfc/**.md": "3650-days", + "mfc/**.yml": "3650-days", + "parallel/**.md": "3650-days", + "parallel/**.yml": "3650-days", + "porting/**.md": "1095-days", + "porting/**.yml": "1095-days", + "preprocessor/**.md": "3650-days", + "preprocessor/**.yml": "3650-days", + "safeint/**.md": "3650-days", + "safeint/**.yml": "3650-days", + "standard-library/**.md": "3650-days", + "standard-library/**.yml": "3650-days", + "text/**.md": "3650-days", + "text/**.yml": "3650-days", + "windows/**.md": "1825-days", + "windows/**.yml": "1825-days" }, "author": { - "index.md": "tylermsft", - "assembler/**/**.{md,yml}": "tylermsft", - "attributes/**/**.{md,yml}": "tylermsft", - "atl/**/**.{md,yml}": "tylermsft", - "atl-mfc-shared/**/**.{md,yml}": "tylermsft", - "build/**/**.{md,yml}": "tylermsft", - "build-insights/**/**.{md,yml}": "tylermsft", - "c-language/**/**.{md,yml}": "tylermsft", - "c-runtime-library/**/**.{md,yml}": "tylermsft", - "cloud/**/**.{md,yml}": "tylermsft", - "code-quality/**/**.{md,yml}": "tylermsft", - "cpp/**/**.{md,yml}": "tylermsft", - "cppcx/**/**.{md,yml}": "tylermsft", - "cross-platform/**/**.{md,yml}": "tylermsft", - "data/**/**.{md,yml}": "tylermsft", - "dotnet/**/**.{md,yml}": "tylermsft", - "error-messages/**/**.{md,yml}": "tylermsft", - "extensions/**/**.{md,yml}": "tylermsft", - "get-started/**/**.{md,yml}": "tylermsft", - "ide/**/**.{md,yml}": "tylermsft", - "intrinsics/**/**.{md,yml}": "tylermsft", - "linux/**/**.{md,yml}": "tylermsft", - "mfc/**/**.{md,yml}": "tylermsft", - "overview/**/**.{md,yml}": "tylermsft", - "parallel/**/**.{md,yml}": "tylermsft", - "porting/**/**.{md,yml}": "tylermsft", - "preprocessor/**/**.{md,yml}": "tylermsft", - "safeint/**/**.{md,yml}": "tylermsft", - "sanitizers/**/**.{md,yml}": "tylermsft", - "security/**/**.{md,yml}": "tylermsft", - "standard-library/**/**.{md,yml}": "tylermsft", - "text/**/**.{md,yml}": "tylermsft", - "windows/**/**.{md,yml}": "tylermsft" + "index.md": "TylerMSFT", + "assembler/**.md": "TylerMSFT", + "assembler/**.yml": "TylerMSFT", + "attributes/**.md": "TylerMSFT", + "attributes/**.yml": "TylerMSFT", + "atl/**.md": "TylerMSFT", + "atl/**.yml": "TylerMSFT", + "atl-mfc-shared/**.md": "TylerMSFT", + "atl-mfc-shared/**.yml": "TylerMSFT", + "build/**.md": "TylerMSFT", + "build/**.yml": "TylerMSFT", + "build-insights/**.md": "TylerMSFT", + "build-insights/**.yml": "TylerMSFT", + "c-language/**.md": "TylerMSFT", + "c-language/**.yml": "TylerMSFT", + "c-runtime-library/**.md": "TylerMSFT", + "c-runtime-library/**.yml": "TylerMSFT", + "cloud/**.md": "TylerMSFT", + "cloud/**.yml": "TylerMSFT", + "code-quality/**.md": "TylerMSFT", + "code-quality/**.yml": "TylerMSFT", + "cpp/**.md": "TylerMSFT", + "cpp/**.yml": "TylerMSFT", + "cppcx/**.md": "TylerMSFT", + "cppcx/**.yml": "TylerMSFT", + "cross-platform/**.md": "TylerMSFT", + "cross-platform/**.yml": "TylerMSFT", + "data/**.md": "TylerMSFT", + "data/**.yml": "TylerMSFT", + "dotnet/**.md": "TylerMSFT", + "dotnet/**.yml": "TylerMSFT", + "error-messages/**.md": "TylerMSFT", + "error-messages/**.yml": "TylerMSFT", + "extensions/**.md": "TylerMSFT", + "extensions/**.yml": "TylerMSFT", + "get-started/**.md": "TylerMSFT", + "get-started/**.yml": "TylerMSFT", + "ide/**.md": "TylerMSFT", + "ide/**.yml": "TylerMSFT", + "intrinsics/**.md": "TylerMSFT", + "intrinsics/**.yml": "TylerMSFT", + "linux/**.md": "TylerMSFT", + "linux/**.yml": "TylerMSFT", + "mfc/**.md": "TylerMSFT", + "mfc/**.yml": "TylerMSFT", + "overview/**.md": "TylerMSFT", + "overview/**.yml": "TylerMSFT", + "parallel/**.md": "TylerMSFT", + "parallel/**.yml": "TylerMSFT", + "porting/**.md": "TylerMSFT", + "porting/**.yml": "TylerMSFT", + "preprocessor/**.md": "TylerMSFT", + "preprocessor/**.yml": "TylerMSFT", + "safeint/**.md": "TylerMSFT", + "safeint/**.yml": "TylerMSFT", + "sanitizers/**.md": "TylerMSFT", + "sanitizers/**.yml": "TylerMSFT", + "security/**.md": "TylerMSFT", + "security/**.yml": "TylerMSFT", + "standard-library/**.md": "TylerMSFT", + "standard-library/**.yml": "TylerMSFT", + "text/**.md": "TylerMSFT", + "text/**.yml": "TylerMSFT", + "windows/**.md": "TylerMSFT", + "windows/**.yml": "TylerMSFT" }, "ms.author": { "index.md": "twhitney", - "assembler/**/**.{md,yml}": "twhitney", - "atl/**/**.{md,yml}": "twhitney", - "atl-mfc-shared/**/**.{md,yml}": "twhitney", - "attributes/**/**.{md,yml}": "twhitney", - "build/**/**.{md,yml}": "twhitney", - "build-insights/**/**.{md,yml}": "twhitney", - "c-language/**/**.{md,yml}": "twhitney", - "c-runtime-library/**/**.{md,yml}": "twhitney", - "cloud/**/**.{md,yml}": "twhitney", - "code-quality/**/**.{md,yml}": "twhitney", - "cpp/**/**.{md,yml}": "twhitney", - "cppcx/**/**.{md,yml}": "twhitney", - "cross-platform/**/**.{md,yml}": "twhitney", - "data/**/**.{md,yml}": "twhitney", - "dotnet/**/**.{md,yml}": "twhitney", - "error-messages/**/**.{md,yml}": "twhitney", - "extensions/**/**.{md,yml}": "twhitney", - "get-started/**/**.{md,yml}": "twhitney", - "ide/**/**.{md,yml}": "twhitney", - "intrinsics/**/**.{md,yml}": "twhitney", - "linux/**/**.{md,yml}": "twhitney", - "mfc/**/**.{md,yml}": "twhitney", - "overview/**/**.{md,yml}": "twhitney", - "parallel/**/**.{md,yml}": "twhitney", - "porting/**/**.{md,yml}": "twhitney", - "preprocessor/**/**.{md,yml}": "twhitney", - "safeint/**/**.{md,yml}": "twhitney", - "sanitizers/**/**.{md,yml}": "twhitney", - "security/**/**.{md,yml}": "twhitney", - "standard-library/**/**.{md,yml}": "twhitney", - "text/**/**.{md,yml}": "twhitney", - "windows/**/**.{md,yml}": "twhitney" + "assembler/**.md": "twhitney", + "assembler/**.yml": "twhitney", + "atl/**.md": "twhitney", + "atl/**.yml": "twhitney", + "atl-mfc-shared/**.md": "twhitney", + "atl-mfc-shared/**.yml": "twhitney", + "attributes/**.md": "twhitney", + "attributes/**.yml": "twhitney", + "build/**.md": "twhitney", + "build/**.yml": "twhitney", + "build-insights/**.md": "twhitney", + "build-insights/**.yml": "twhitney", + "c-language/**.md": "twhitney", + "c-language/**.yml": "twhitney", + "c-runtime-library/**.md": "twhitney", + "c-runtime-library/**.yml": "twhitney", + "cloud/**.md": "twhitney", + "cloud/**.yml": "twhitney", + "code-quality/**.md": "twhitney", + "code-quality/**.yml": "twhitney", + "cpp/**.md": "twhitney", + "cpp/**.yml": "twhitney", + "cppcx/**.md": "twhitney", + "cppcx/**.yml": "twhitney", + "cross-platform/**.md": "twhitney", + "cross-platform/**.yml": "twhitney", + "data/**.md": "twhitney", + "data/**.yml": "twhitney", + "dotnet/**.md": "twhitney", + "dotnet/**.yml": "twhitney", + "error-messages/**.md": "twhitney", + "error-messages/**.yml": "twhitney", + "extensions/**.md": "twhitney", + "extensions/**.yml": "twhitney", + "get-started/**.md": "twhitney", + "get-started/**.yml": "twhitney", + "ide/**.md": "twhitney", + "ide/**.yml": "twhitney", + "intrinsics/**.md": "twhitney", + "intrinsics/**.yml": "twhitney", + "linux/**.md": "twhitney", + "linux/**.yml": "twhitney", + "mfc/**.md": "twhitney", + "mfc/**.yml": "twhitney", + "overview/**.md": "twhitney", + "overview/**.yml": "twhitney", + "parallel/**.md": "twhitney", + "parallel/**.yml": "twhitney", + "porting/**.md": "twhitney", + "porting/**.yml": "twhitney", + "preprocessor/**.md": "twhitney", + "preprocessor/**.yml": "twhitney", + "safeint/**.md": "twhitney", + "safeint/**.yml": "twhitney", + "sanitizers/**.md": "twhitney", + "sanitizers/**.yml": "twhitney", + "security/**.md": "twhitney", + "security/**.yml": "twhitney", + "standard-library/**.md": "twhitney", + "standard-library/**.yml": "twhitney", + "text/**.md": "twhitney", + "text/**.yml": "twhitney", + "windows/**.md": "twhitney", + "windows/**.yml": "twhitney" } }, "template": [],