[openssl-users] Can't build OpenSSL on Windows

Richard Levitte levitte at openssl.org
Thu Dec 28 23:06:41 UTC 2017


In message <20171228221837.2608-1-martin at eclypsium.com> on Thu, 28 Dec 2017 19:18:37 -0300, Martin Galvan <omgalvan.86 at gmail.com> said:

omgalvan.86> Hi all,
omgalvan.86> 
omgalvan.86> I'm trying to build OpenSSL on Windows. I'm using the nmake that came with
omgalvan.86> Visual Studio 2017, NASM, ActivePerl and have installed the Test::More and
omgalvan.86> Test::Template modules. nmake, perl and nasm are all visible in my system Path
omgalvan.86> variable. This is what I'm seeing:
omgalvan.86> 
omgalvan.86> C:\Users\e1\openssl\source>perl Configure VC-WIN64A --prefix=\c\Users\e1\openssl\install-windows no-comp no-zlib
omgalvan.86> Configuring OpenSSL version 1.1.0g (0x1010007fL)
omgalvan.86>     no-asan         [default]  OPENSSL_NO_ASAN
omgalvan.86>     no-comp         [option]   OPENSSL_NO_COMP (skip dir)
omgalvan.86>     no-crypto-mdebug [default]  OPENSSL_NO_CRYPTO_MDEBUG
omgalvan.86>     no-crypto-mdebug-backtrace [default]  OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE
omgalvan.86>     no-ec_nistp_64_gcc_128 [default]  OPENSSL_NO_EC_NISTP_64_GCC_128
omgalvan.86>     no-egd          [default]  OPENSSL_NO_EGD
omgalvan.86>     no-fuzz-afl     [default]  OPENSSL_NO_FUZZ_AFL
omgalvan.86>     no-fuzz-libfuzzer [default]  OPENSSL_NO_FUZZ_LIBFUZZER
omgalvan.86>     no-heartbeats   [default]  OPENSSL_NO_HEARTBEATS
omgalvan.86>     no-md2          [default]  OPENSSL_NO_MD2 (skip dir)
omgalvan.86>     no-msan         [default]  OPENSSL_NO_MSAN
omgalvan.86>     no-rc5          [default]  OPENSSL_NO_RC5 (skip dir)
omgalvan.86>     no-sctp         [default]  OPENSSL_NO_SCTP
omgalvan.86>     no-ssl-trace    [default]  OPENSSL_NO_SSL_TRACE
omgalvan.86>     no-ssl3         [default]  OPENSSL_NO_SSL3
omgalvan.86>     no-ssl3-method  [default]  OPENSSL_NO_SSL3_METHOD
omgalvan.86>     no-ubsan        [default]  OPENSSL_NO_UBSAN
omgalvan.86>     no-unit-test    [default]  OPENSSL_NO_UNIT_TEST
omgalvan.86>     no-weak-ssl-ciphers [default]  OPENSSL_NO_WEAK_SSL_CIPHERS
omgalvan.86>     no-zlib         [option]
omgalvan.86>     no-zlib-dynamic [default]
omgalvan.86> Configuring for VC-WIN64A
omgalvan.86> CC            =cl
omgalvan.86> CFLAG         =-W3 -wd4090 -Gs0 -GF -Gy -nologo -DOPENSSL_SYS_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DUNICODE -D_UNICODE /MD /O2
omgalvan.86> SHARED_CFLAG  =
omgalvan.86> DEFINES       =OPENSSL_USE_APPLINK DSO_WIN32 NDEBUG OPENSSL_THREADS OPENSSL_NO_STATIC_ENGINE OPENSSL_PIC OPENSSL_IA32_SSE2 OPENSSL_BN_ASM_MONT OPENSSL_BN_ASM_MONT5 OPENSSL_BN_ASM_GF2m SHA1_ASM SHA256_ASM SHA512_ASM RC4_ASM MD5_ASM AES_ASM VPAES_ASM BSAES_ASM GHASH_ASM ECP_NISTZ256_ASM PADLOCK_ASM POLY1305_ASM
omgalvan.86> LFLAG         =/nologo /debug
omgalvan.86> PLIB_LFLAG    =
omgalvan.86> EX_LIBS       =ws2_32.lib gdi32.lib advapi32.lib crypt32.lib user32.lib
omgalvan.86> APPS_OBJ      =win32_init.o ../ms/applink.o
omgalvan.86> CPUID_OBJ     =x86_64cpuid.o
omgalvan.86> UPLINK_OBJ    =../ms/uplink.o uplink-x86_64.o
omgalvan.86> BN_ASM        =bn_asm.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o rsaz_exp.o rsaz-x86_64.o rsaz-avx2.o
omgalvan.86> EC_ASM        =ecp_nistz256.o ecp_nistz256-x86_64.o
omgalvan.86> DES_ENC       =des_enc.o fcrypt_b.o
omgalvan.86> AES_ENC       =aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o
omgalvan.86> BF_ENC        =bf_enc.o
omgalvan.86> CAST_ENC      =c_enc.o
omgalvan.86> RC4_ENC       =rc4-x86_64.o rc4-md5-x86_64.o
omgalvan.86> RC5_ENC       =rc5_enc.o
omgalvan.86> MD5_OBJ_ASM   =md5-x86_64.o
omgalvan.86> SHA1_OBJ_ASM  =sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o sha1-mb-x86_64.o sha256-mb-x86_64.o
omgalvan.86> RMD160_OBJ_ASM=
omgalvan.86> CMLL_ENC      =cmll-x86_64.o cmll_misc.o
omgalvan.86> MODES_OBJ     =ghash-x86_64.o aesni-gcm-x86_64.o
omgalvan.86> PADLOCK_OBJ   =e_padlock-x86_64.o
omgalvan.86> CHACHA_ENC    =chacha-x86_64.o
omgalvan.86> POLY1305_OBJ  =poly1305-x86_64.o
omgalvan.86> BLAKE2_OBJ    =
omgalvan.86> PROCESSOR     =
omgalvan.86> RANLIB        =true
omgalvan.86> ARFLAGS       =/nologo
omgalvan.86> PERL          =C:\Perl64\bin\perl.exe
omgalvan.86> 
omgalvan.86> SIXTY_FOUR_BIT mode
omgalvan.86> 
omgalvan.86> Configured for VC-WIN64A.
omgalvan.86> 
omgalvan.86> And then:
omgalvan.86> 
omgalvan.86> C:\Users\e1\openssl\source>nmake
omgalvan.86> 
omgalvan.86> Microsoft (R) Program Maintenance Utility Version 14.11.25547.0
omgalvan.86> Copyright (C) Microsoft Corporation.  All rights reserved.
omgalvan.86> 
omgalvan.86> "Detected changed: ".\Configure" "Configurations\windows-makefile.tmpl" "Configurations\common.tmpl"
omgalvan.86> "build.info" "crypto\build.info" "ssl\build.info" "engines\build.info" "apps\build.info"
omgalvan.86> "test\build.info" "util\build.info" "tools\build.info" "fuzz\build.info" "crypto\objects\build.info"
omgalvan.86> "crypto\md4\build.info" "crypto\md5\build.info" "crypto\sha\build.info" "crypto\mdc2\build.info"
omgalvan.86> "crypto\hmac\build.info" "crypto\ripemd\build.info" "crypto\whrlpool\build.info"
omgalvan.86> "crypto\poly1305\build.info" "crypto\blake2\build.info" "crypto\des\build.info" "crypto\aes\build.info"
omgalvan.86> "crypto\rc2\build.info" "crypto\rc4\build.info" "crypto\idea\build.info" "crypto\bf\build.info"
omgalvan.86> "crypto\cast\build.info" "crypto\camellia\build.info" "crypto\seed\build.info" "crypto\chacha\build.info"
omgalvan.86> "crypto\modes\build.info" "crypto\bn\build.info" "crypto\ec\build.info" "crypto\rsa\build.info"
omgalvan.86> "crypto\dsa\build.info" "crypto\dh\build.info" "crypto\dso\build.info" "crypto\engine\build.info"
omgalvan.86> "crypto\buffer\build.info" "crypto\bio\build.info" "crypto\stack\build.info" "crypto\lhash\build.info"
omgalvan.86> "crypto\rand\build.info" "crypto\err\build.info" "crypto\evp\build.info" "crypto\asn1\build.info"
omgalvan.86> "crypto\pem\build.info" "crypto\x509\build.info" "crypto\x509v3\build.info" "crypto\conf\build.info"
omgalvan.86> "crypto\txt_db\build.info" "crypto\pkcs7\build.info" "crypto\pkcs12\build.info" "crypto\ocsp\build.info"
omgalvan.86> "crypto\ui\build.info" "crypto\cms\build.info" "crypto\ts\build.info" "crypto\srp\build.info"
omgalvan.86> "crypto\cmac\build.info" "crypto\ct\build.info" "crypto\async\build.info" "crypto\kdf\build.info"
omgalvan.86> "Configurations\00-base-templates.conf" "Configurations\10-main.conf""
omgalvan.86> "Reconfiguring..."
omgalvan.86>         "C:\Perl64\bin\perl.exe" ".\Configure" reconf
omgalvan.86> Reconfiguring with: VC-WIN64A --prefix=\c\Users\e1\openssl\install-windows no-comp no-zlib
omgalvan.86>     CC = cl
omgalvan.86>     BUILDFILE = makefile
omgalvan.86> Configuring OpenSSL version 1.1.0g (0x1010007fL)
omgalvan.86>     no-asan         [default]  OPENSSL_NO_ASAN
omgalvan.86>     no-comp         [option]   OPENSSL_NO_COMP (skip dir)
omgalvan.86>     no-crypto-mdebug [default]  OPENSSL_NO_CRYPTO_MDEBUG
omgalvan.86>     no-crypto-mdebug-backtrace [default]  OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE
omgalvan.86>     no-ec_nistp_64_gcc_128 [default]  OPENSSL_NO_EC_NISTP_64_GCC_128
omgalvan.86>     no-egd          [default]  OPENSSL_NO_EGD
omgalvan.86>     no-fuzz-afl     [default]  OPENSSL_NO_FUZZ_AFL
omgalvan.86>     no-fuzz-libfuzzer [default]  OPENSSL_NO_FUZZ_LIBFUZZER
omgalvan.86>     no-heartbeats   [default]  OPENSSL_NO_HEARTBEATS
omgalvan.86>     no-md2          [default]  OPENSSL_NO_MD2 (skip dir)
omgalvan.86>     no-msan         [default]  OPENSSL_NO_MSAN
omgalvan.86>     no-rc5          [default]  OPENSSL_NO_RC5 (skip dir)
omgalvan.86>     no-sctp         [default]  OPENSSL_NO_SCTP
omgalvan.86>     no-ssl-trace    [default]  OPENSSL_NO_SSL_TRACE
omgalvan.86>     no-ssl3         [default]  OPENSSL_NO_SSL3
omgalvan.86>     no-ssl3-method  [default]  OPENSSL_NO_SSL3_METHOD
omgalvan.86>     no-ubsan        [default]  OPENSSL_NO_UBSAN
omgalvan.86>     no-unit-test    [default]  OPENSSL_NO_UNIT_TEST
omgalvan.86>     no-weak-ssl-ciphers [default]  OPENSSL_NO_WEAK_SSL_CIPHERS
omgalvan.86>     no-zlib         [option]
omgalvan.86>     no-zlib-dynamic [default]
omgalvan.86> Configuring for VC-WIN64A
omgalvan.86> CC            =cl
omgalvan.86> CFLAG         =-W3 -wd4090 -Gs0 -GF -Gy -nologo -DOPENSSL_SYS_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -DUNICODE -D_UNICODE /MD /O2
omgalvan.86> SHARED_CFLAG  =
omgalvan.86> DEFINES       =OPENSSL_USE_APPLINK DSO_WIN32 NDEBUG OPENSSL_THREADS OPENSSL_NO_STATIC_ENGINE OPENSSL_PIC OPENSSL_IA32_SSE2 OPENSSL_BN_ASM_MONT OPENSSL_BN_ASM_MONT5 OPENSSL_BN_ASM_GF2m SHA1_ASM SHA256_ASM SHA512_ASM RC4_ASM MD5_ASM AES_ASM VPAES_ASM BSAES_ASM GHASH_ASM ECP_NISTZ256_ASM PADLOCK_ASM POLY1305_ASM
omgalvan.86> LFLAG         =/nologo /debug
omgalvan.86> PLIB_LFLAG    =
omgalvan.86> EX_LIBS       =ws2_32.lib gdi32.lib advapi32.lib crypt32.lib user32.lib
omgalvan.86> APPS_OBJ      =win32_init.o ../ms/applink.o
omgalvan.86> CPUID_OBJ     =x86_64cpuid.o
omgalvan.86> UPLINK_OBJ    =../ms/uplink.o uplink-x86_64.o
omgalvan.86> BN_ASM        =bn_asm.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o rsaz_exp.o rsaz-x86_64.o rsaz-avx2.o
omgalvan.86> EC_ASM        =ecp_nistz256.o ecp_nistz256-x86_64.o
omgalvan.86> DES_ENC       =des_enc.o fcrypt_b.o
omgalvan.86> AES_ENC       =aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o
omgalvan.86> BF_ENC        =bf_enc.o
omgalvan.86> CAST_ENC      =c_enc.o
omgalvan.86> RC4_ENC       =rc4-x86_64.o rc4-md5-x86_64.o
omgalvan.86> RC5_ENC       =rc5_enc.o
omgalvan.86> MD5_OBJ_ASM   =md5-x86_64.o
omgalvan.86> SHA1_OBJ_ASM  =sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o sha1-mb-x86_64.o sha256-mb-x86_64.o
omgalvan.86> RMD160_OBJ_ASM=
omgalvan.86> CMLL_ENC      =cmll-x86_64.o cmll_misc.o
omgalvan.86> MODES_OBJ     =ghash-x86_64.o aesni-gcm-x86_64.o
omgalvan.86> PADLOCK_OBJ   =e_padlock-x86_64.o
omgalvan.86> CHACHA_ENC    =chacha-x86_64.o
omgalvan.86> POLY1305_OBJ  =poly1305-x86_64.o
omgalvan.86> BLAKE2_OBJ    =
omgalvan.86> PROCESSOR     =
omgalvan.86> RANLIB        =true
omgalvan.86> ARFLAGS       =/nologo
omgalvan.86> PERL          =C:\Perl64\bin\perl.exe
omgalvan.86> 
omgalvan.86> SIXTY_FOUR_BIT mode
omgalvan.86> 
omgalvan.86> Configured for VC-WIN64A.
omgalvan.86> "**************************************************"
omgalvan.86> "***                                            ***"
omgalvan.86> "***   Please run the same make command again   ***"
omgalvan.86> "***                                            ***"
omgalvan.86> "**************************************************"
omgalvan.86> NMAKE : fatal error U1077: 'exit' : return code '0x1'
omgalvan.86> Stop.
omgalvan.86> 
omgalvan.86> What am I doing wrong?

Nothing, I think...

what's happening is that there's a rule that looks like this in the
makefile:

    configdata.pm : .\Configure ...

That's the one that's getting triggered for some reason, and that's
because one of those listed dependencies is newer than configdata.pm

You simply need to do exactly what you're told, i.e. run 'nmake'
again.

If that happens again and again, then you have a problem.  If I were
in your shoes, I'd look pretty hard at file time stamps to see if I
could figure it out from there.

Cheers,
Richard

-- 
Richard Levitte         levitte at openssl.org
OpenSSL Project         http://www.openssl.org/~levitte/


More information about the openssl-users mailing list