<html><body><div>Hi everyone,</div><div><br data-mce-bogus="1"></div><div>On Windows, we require both /MD and /MT builds of OpenSSL, with Control Flow Guard enabled. To do so, we tried using these steps in cmd.exe recently when compiling 1.1.1d for /MT (64-bit shown; we also build 32-bit):</div><div></div><div><br data-mce-bogus="1"></div><div>$ perl Configure VC-WIN64A no-asm --prefix=<path></div><div>$ ms\do_ms</div><div>$ perl -p -i.back -e "s/\/MD/\/MT/g;" makefile</div><div>$ perl -p -i.back -e "s/^CFLAGS=/CFLAGS=\/GUARD:cf /g;" makefile</div><div>$ perl -p -i.back -e "s/^LDFLAGS=/LDFLAGS=\/GUARD:cf /g;" makefile</div><div>$ nmake</div><div>$ nmake test</div><div>$ nmake install_sw</div><div><br data-mce-bogus="1"></div><div>Unfortunately, there are failing tests (There are "Failed x/y subtests" and "Dubious, test returned..." messages for almost all tests). When we follow similar steps for 1.0.2t (by modifying ms\ntdll.mak), the tests pass for both the default /MD and the /MT modification. </div><div><br data-mce-bogus="1"></div><div>Is there a correct way to build OpenSSL 1.1.1d with the /MT run-time library such that the tests run successfully? Also, is there a better way to use CFG?</div><div><br data-mce-bogus="1"></div><div><br data-mce-bogus="1"></div><div>Thanks,</div><div>Michael</div></body></html>