/CETCOMPAT
(CET Shadow Stack compatible)
Specifies whether the linker marks an executable image as compatible with Control-flow Enforcement Technology (CET) Shadow Stack.
Syntax
/CETCOMPAT
/CETCOMPAT:NO
Arguments
NO
Specifies that the executable shouldn't be marked compatible with CET Shadow Stack.
Remarks
Control-flow Enforcement Technology (CET) Shadow Stack is a computer processor feature. It provides capabilities to defend against return-oriented programming (ROP) based malware attacks. For more information, see A Technical Look at Intel's Control-flow Enforcement Technology.
The /CETCOMPAT
linker option tells the linker to mark the binary as CET Shadow Stack-compatible. /CETCOMPAT:NO
marks the binary as not compatible with CET Shadow Stack. If both options are specified on the command line, the last one specified is used. This switch is currently only applicable to x86 and x64 architectures.
The /CETCOMPAT
option is available beginning in Visual Studio 2019.
To set the /CETCOMPAT
linker option in Visual Studio
Starting in Visual Studio 2019 version 16.7:
Open the Property Pages dialog box for the project. For more information, see Set compiler and build properties.
Select the Configuration Properties > Linker > Advanced property page.
Select the CET Shadow Stack Compatible property.
In the dropdown control, choose
Yes (/CETCOMPAT)
to mark the binary as CET Shadow Stack compatible, orNo (/CETCOMPAT:NO)
to mark it as non-compatible.
In previous versions of Visual Studio 2019:
Open the Property Pages dialog box for the project. For more information, see Set compiler and build properties.
Select the Configuration Properties > Linker > Command Line property page.
In the Additional Options edit control, add
/CETCOMPAT
to mark the binary as CET Shadow Stack compatible, or/CETCOMPAT:NO
to explicitly mark it as non-compatible.
To set this linker option programmatically
This option doesn't have a programmatic equivalent.