// Set some debug/release specific options
ADD_FLAG('CFLAGS', ' /RTC1 ');
} else {
+ if (PHP_DEBUG == "no" && PHP_SECURITY_FLAGS == "yes") {
+ /* Mitigations for Spectre variant 1, see
+ https://blogs.msdn.microsoft.com/vcblog/2018/01/15/spectre-mitigations-in-msvc/
+ TODO backport for all supported VS versions when they release it. */
+ if (VCVERS >= 1912) {
+ if (VCVERS >= 1913) {
+ ADD_FLAG('CFLAGS', "/Qspectre");
+ } else {
+ /* Undocumented. */
+ ADD_FLAG('CFLAGS', "/d2guardspecload");
+ }
+ }
+ }
if (VCVERS >= 1900) {
if (PHP_SECURITY_FLAGS == "yes") {
ADD_FLAG('CFLAGS', "/guard:cf");