Building and testing 1.1.1t with /MT run-time library

Michael Adria michaeladria at
Wed Oct 16 20:10:13 UTC 2019

Hi everyone,

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):

$ perl Configure VC-WIN64A no-asm --prefix=<path>
$ ms\do_ms
$ perl -p -i.back -e "s/\/MD/\/MT/g;" makefile
$ perl -p -i.back -e "s/^CFLAGS=/CFLAGS=\/GUARD:cf /g;" makefile
$ perl -p -i.back -e "s/^LDFLAGS=/LDFLAGS=\/GUARD:cf /g;" makefile
$ nmake
$ nmake test
$ nmake install_sw

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.

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?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the openssl-users mailing list