On 20.03.2025 20:29, Pali Rohár wrote:
I suspect that the change is related to recent commit cd45d275754e
("crt: Always include load config in mingwex.").
Jacek, could you look at it?
For the record, my old gcc, ld and as versions are:
gcc version 8.3-win32 20190406 (GCC)
GNU ld (GNU Binutils) 2.31.1
GNU assembler version 2.31.1 (i686-w64-mingw32) using BFD version (GNU
Binutils) 2.31.1
Does the attached patch help?
Jacek
diff --git a/mingw-w64-crt/crt/loadcfg.S b/mingw-w64-crt/crt/loadcfg.S
index eb012b530..f907a1842 100644
--- a/mingw-w64-crt/crt/loadcfg.S
+++ b/mingw-w64-crt/crt/loadcfg.S
@@ -14,10 +14,10 @@ been constructed with LLVM/LLD in mind.
*/
#if defined(__x86_64__) || defined(__aarch64__)
-# define PTR .8byte
+# define PTR .quad
# define ALIGN 8
#elif defined(__i386__) || defined(__arm__)
-# define PTR .4byte
+# define PTR .long
# define ALIGN 4
#else
# error "Load config structure is unimplemented for the current architecture."
@@ -58,22 +58,22 @@ These features are specific to MSVC as far as I am aware.
.globl SYM(_load_config_used)
.balign ALIGN
SYM(_load_config_used):
- .4byte SYM(_load_config_used__end) - SYM(_load_config_used) /* Size */
- .4byte 0 /* TimeDateStamp */
- .2byte 0 /* MajorVersion */
- .2byte 0 /* MinorVersion */
- .4byte 0 /* GLobalFlagsClear */
- .4byte 0 /* GlobalFlagsSet */
- .4byte 0 /* CriticalSectionDefaultTimeout */
+ .long SYM(_load_config_used__end) - SYM(_load_config_used) /* Size */
+ .long 0 /* TimeDateStamp */
+ .short 0 /* MajorVersion */
+ .short 0 /* MinorVersion */
+ .long 0 /* GLobalFlagsClear */
+ .long 0 /* GlobalFlagsSet */
+ .long 0 /* CriticalSectionDefaultTimeout */
PTR 0 /* DeCommitFreeBlockThreshold */
PTR 0 /* DeCommitTotalFreeThreshold */
PTR 0 /* LockPrefixTable */
PTR 0 /* MaximumAllocationSize */
PTR 0 /* VirtualMemoryThreshold */
PTR 0 /* ProcessAffinityMask */
- .4byte 0 /* ProcessHeapFlags */
- .2byte 0 /* CSDVersion */
- .2byte 0 /* DependentLoadFlags */
+ .long 0 /* ProcessHeapFlags */
+ .short 0 /* CSDVersion */
+ .short 0 /* DependentLoadFlags */
PTR 0 /* EditList */
#if defined(HAS_GS_SECURITY_COOKIE)
PTR SYM(__security_cookie) /* SecurityCookie */
@@ -95,11 +95,11 @@ SYM(_load_config_used):
#endif
PTR CFGSYM(__guard_fids_table) /* GuardCFFunctionTable */
PTR CFGSYM(__guard_fids_count) /* GuardCFFunctionCount */
- .4byte CFGSYM(__guard_flags) /* GuardFlags */
- .2byte 0 /* CodeIntegrity_Flags */
- .2byte 0 /* CodeIntegrity_Catalog */
- .4byte 0 /* CodeIntegrity_CatalogOffset */
- .4byte 0 /* CodeIntegrity_Reserved */
+ .long CFGSYM(__guard_flags) /* GuardFlags */
+ .short 0 /* CodeIntegrity_Flags */
+ .short 0 /* CodeIntegrity_Catalog */
+ .long 0 /* CodeIntegrity_CatalogOffset */
+ .long 0 /* CodeIntegrity_Reserved */
PTR CFGSYM(__guard_iat_table) /* GuardAddressTakenIatEntryTable */
PTR CFGSYM(__guard_iat_count) /* GuardAddressTakenIatEntryCount */
PTR CFGSYM(__guard_longjmp_table) /* GuardLongJumpTargetTable */
@@ -108,12 +108,12 @@ SYM(_load_config_used):
PTR 0 /* CHPEMetadataPointer */
PTR 0 /* GuardRFFailureRoutine */
PTR 0 /* GuardRFFailureRoutineFunctionPointer */
- .4byte 0 /* DynamicValueRelocTableOffset */
- .2byte 0 /* DynamicValueRelocTableSection */
- .2byte 0 /* Reserved2 */
+ .long 0 /* DynamicValueRelocTableOffset */
+ .short 0 /* DynamicValueRelocTableSection */
+ .short 0 /* Reserved2 */
PTR 0 /* GuardRFVerifyStackPointerFunctionPointer */
- .4byte 0 /* HotPatchTableOffset */
- .4byte 0 /* Reserved3 */
+ .long 0 /* HotPatchTableOffset */
+ .long 0 /* Reserved3 */
#if defined(HAS_ENCLAVE_CONFIG)
PTR SYM(__enclave_config) /* EnclaveConfigurationPointer */
#else
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public