Add switches for Spectre variant 1 mitigation

This commit is contained in:
Anatol Belski 2018-01-17 14:31:51 +01:00
parent ea56fc840e
commit 043d53c789

View file

@ -3068,6 +3068,19 @@ function toolset_setup_common_cflags()
// 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");