mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-05 23:32:29 +02:00
* Windows on AArch64 requires some DllCharacteristics in the header to be always set
git-svn-id: trunk@44919 -
This commit is contained in:
parent
40633835dc
commit
613a6e796a
@ -364,6 +364,18 @@ implementation
|
||||
PE_FILE_UP_SYSTEM_ONLY = $4000;
|
||||
PE_FILE_BYTES_REVERSED_HI = $8000;
|
||||
|
||||
PE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA = $0020;
|
||||
PE_DLLCHARACTERISTICS_DYNAMIC_BASE = $0040;
|
||||
PE_DLLCHARACTERISTICS_FORCE_INTEGRITY = $0080;
|
||||
PE_DLLCHARACTERISTICS_NX_COMPAT = $0100;
|
||||
PE_DLLCHARACTERISTICS_NO_ISOLATION = $0200;
|
||||
PE_DLLCHARACTERISTICS_NO_SEH = $0400;
|
||||
PE_DLLCHARACTERISTICS_NO_BIND = $0800;
|
||||
PE_DLLCHARACTERISTICS_APPCONTAINER = $1000;
|
||||
PE_DLLCHARACTERISTICS_WDM_DRIVER = $2000;
|
||||
PE_DLLCHARACTERISTICS_GUARD_CF = $4000;
|
||||
PE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = $8000;
|
||||
|
||||
PE_SCN_CNT_CODE = $00000020; { Section contains code. }
|
||||
PE_SCN_CNT_INITIALIZED_DATA = $00000040; { Section contains initialized data. }
|
||||
PE_SCN_CNT_UNINITIALIZED_DATA = $00000080; { Section contains uninitialized data. }
|
||||
@ -2837,11 +2849,16 @@ const pemagic : array[0..3] of byte = (
|
||||
else
|
||||
peoptheader.Subsystem:=PE_SUBSYSTEM_WINDOWS_CUI;
|
||||
|
||||
if SetPEOptFlagsSetExplicity then
|
||||
peoptheader.DllCharacteristics:=peoptflags
|
||||
if target_info.system in [system_aarch64_win64] then
|
||||
peoptheader.DllCharacteristics:=PE_DLLCHARACTERISTICS_DYNAMIC_BASE or
|
||||
PE_DLLCHARACTERISTICS_NX_COMPAT or
|
||||
PE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA
|
||||
else
|
||||
peoptheader.DllCharacteristics:=0;
|
||||
|
||||
if SetPEOptFlagsSetExplicity then
|
||||
peoptheader.DllCharacteristics:=peoptheader.DllCharacteristics or peoptflags;
|
||||
|
||||
peoptheader.SizeOfStackReserve:=stacksize;
|
||||
peoptheader.SizeOfStackCommit:=$1000;
|
||||
if MinStackSizeSetExplicity then
|
||||
|
Loading…
Reference in New Issue
Block a user