File binutils-2.42-option-high-entry-va.patch of Package mingw64-binutils

diff -ur binutils-2.42.orig/ld/emultempl/pe.em binutils-2.42/ld/emultempl/pe.em
--- binutils-2.42.orig/ld/emultempl/pe.em	2024-01-29 01:00:00.000000000 +0100
+++ binutils-2.42/ld/emultempl/pe.em	2024-06-03 09:22:53.442422519 +0200
@@ -128,6 +128,7 @@
 
 #define DEFAULT_DLL_CHARACTERISTICS	(${cygwin_behavior} ? 0 : \
 					   IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE \
+					 | IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA \
 					 | IMAGE_DLL_CHARACTERISTICS_NX_COMPAT)
 
 #if defined(TARGET_IS_i386pe) || ! defined(DLL_SUPPORT)
@@ -285,6 +286,7 @@
   OPTION_ENABLE_LONG_SECTION_NAMES,
   OPTION_DISABLE_LONG_SECTION_NAMES,
 /* DLLCharacteristics flags.  */
+  OPTION_HIGH_ENTROPY_VA,
   OPTION_DYNAMIC_BASE,
   OPTION_FORCE_INTEGRITY,
   OPTION_NX_COMPAT,
@@ -303,6 +305,7 @@
   OPTION_ENABLE_RELOC_SECTION,
   OPTION_DISABLE_RELOC_SECTION,
 /* DLL Characteristics flags.  */
+  OPTION_DISABLE_HIGH_ENTROPY_VA,
   OPTION_DISABLE_DYNAMIC_BASE,
   OPTION_DISABLE_FORCE_INTEGRITY,
   OPTION_DISABLE_NX_COMPAT,
@@ -382,6 +385,8 @@
     {"disable-large-address-aware", no_argument, NULL, OPTION_DISABLE_LARGE_ADDRESS_AWARE},
     {"enable-long-section-names", no_argument, NULL, OPTION_ENABLE_LONG_SECTION_NAMES},
     {"disable-long-section-names", no_argument, NULL, OPTION_DISABLE_LONG_SECTION_NAMES},
+    {"high-entropy-va", no_argument, NULL, OPTION_HIGH_ENTROPY_VA},
+    {"disable-high-entropy-va", no_argument, NULL, OPTION_DISABLE_HIGH_ENTROPY_VA},
     {"dynamicbase",no_argument, NULL, OPTION_DYNAMIC_BASE},
     {"disable-dynamicbase",no_argument, NULL, OPTION_DISABLE_DYNAMIC_BASE},
     {"forceinteg", no_argument, NULL, OPTION_FORCE_INTEGRITY},
@@ -935,6 +940,9 @@
       pe_use_coff_long_section_names = 0;
       break;
 /*  Get DLLCharacteristics bits  */
+    case OPTION_HIGH_ENTROPY_VA:
+      pe_dll_characteristics |= IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA;
+      /* fall through */
     case OPTION_DYNAMIC_BASE:
       pe_dll_characteristics |= IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE;
       /* fall through */
@@ -946,6 +954,9 @@
       /* fall through */
     case OPTION_DISABLE_DYNAMIC_BASE:
       pe_dll_characteristics &= ~ IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE;
+      /* fall through */
+    case OPTION_DISABLE_HIGH_ENTROPY_VA:
+      pe_dll_characteristics &= ~ IMAGE_DLL_CHARACTERISTICS_HIGH_ENTROPY_VA;
       break;
     case OPTION_FORCE_INTEGRITY:
       pe_dll_characteristics |= IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY;
openSUSE Build Service is sponsored by