[openssl-users] How to compile 1.1.1 under Windows

Richard Levitte levitte at openssl.org
Tue Oct 23 08:34:53 UTC 2018


That indicates we do things in the wrong order (foo.obj depends on
foo.d, meaning foo.d gets "built" first), but that's a side issue.

You found a bug in crypto\sm2\sm2_sign.c, thank you.  Are you willing
to write up a Github issue for it?

In message <CACaGmvAzV1eUXBWh=4N0qaKs3VH0AO4cmsLXxdWeMnzNP8QJ5Q at mail.gmail.com> on Tue, 23 Oct 2018 01:22:34 -0700, Chris Clark <a.chris.clark at gmail.com> said:

> Thank you Richard. Adding the "no-makedepend" avoided the  fatal error
> U1077, but now it fails due to an undeclared identifier:
> 
> cl  /Zi /Fdossl_static.pdb /Gs0 /GF /Gy /MD /W3 /wd4090 /nologo /O2 /I
> "." /I "crypto\include" /I "include" -D"L_ENDIAN" -D"OPENSSL_PIC"
> -D"OPENSSL_CPUID_OBJ" -D"OPENSSL_IA32_SSE2" -D"OPENSSL_BN_ASM_MONT"
> -D"OPENSSL_BN_ASM_MONT5" -D"OPENSSL_BN_ASM_GF2m" -D"SHA1_ASM"
> -D"SHA256_ASM" -D"SHA512_ASM" -D"KECCAK1600_ASM" -D"RC4_ASM"
> -D"MD5_ASM" -D"AES_ASM" -D"VPAES_ASM" -D"BSAES_ASM" -D"GHASH_ASM"
> -D"ECP_NISTZ256_ASM" -D"X25519_ASM" -D"PADLOCK_ASM" -D"POLY1305_ASM"
> -D"OPENSSLDIR=\"C:\\Program Files\\Common Files\\SSL\""
> -D"ENGINESDIR=\"C:\\openssl\\lib\\engines-1_1\"" -D"OPENSSL_SYS_WIN32"
> -D"WIN32_LEAN_AND_MEAN" -D"UNICODE" -D"_UNICODE"
> -D"_CRT_SECURE_NO_DEPRECATE" -D"_WINSOCK_DEPRECATED_NO_WARNINGS"
> -D"OPENSSL_USE_APPLINK" -D"NDEBUG"  -c /Focrypto\sm2\sm2_sign.obj
> "crypto\sm2\sm2_sign.c"
> sm2_sign.c
> crypto\sm2\sm2_sign.c(70) : error C2065: 'UINT16_MAX' : undeclared identifier
> NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual
> Studio 9.0\VC\BIN\amd64\cl.EXE"' : return code '0x2'
> Stop.
> NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual
> Studio 9.0\VC\BIN\amd64\nmake.exe"' : return code '0x2'
> Stop.
> On Tue, Oct 23, 2018 at 12:19 AM Richard Levitte <levitte at openssl.org> wrote:
> >
> > I suspect you'll find some kind of error message in
> > crypto\sm2\sm2_sign.d.  I suspect that /showIncludes isn't supported
> > in VS 2008.
> >
> > There is a workaround for this problem, and it's to use the
> > 'no-makedepend' option:
> >
> >     perl Configure VC-WIN64A --prefix=c:/openssl no-makedepend
> >
> > For a single build, that should be good enough.
> >
> > Cheers,
> > Richard
> >
> > In message <CACaGmvAh8SHsX4_dVPjzb4BQPNc5a0rQQoK-JB9Qi=Oo_4HHeQ at mail.gmail.com> on Mon, 22 Oct 2018 23:50:46 -0700, Chris Clark <a.chris.clark at gmail.com> said:
> >
> > > I am attempting to upgrade a project using OpenSSL 1.0.0h to version
> > > 1.1.1 under Visual Studio 2008-SP1, but when I try to compile version
> > > 1.1.1 for VC-WIN64A I get the following compile error:
> > >
> > >        cl  /Zi /Fdossl_static.pdb /Gs0 /GF /Gy /MD /W3 /wd4090 /nologo
> > > /O2 /I "." /I "crypto\include" /I "include" -D"L_ENDIAN"
> > > -D"OPENSSL_PIC" -D"OPENSSL_CPUID_OBJ" -D"OPENSSL_IA32_SSE2"
> > > -D"OPENSSL_BN_ASM_MONT" -D"OPENSSL_BN_ASM_MONT5"
> > > -D"OPENSSL_BN_ASM_GF2m" -D"SHA1_ASM" -D"SHA256_ASM" -D"SHA512_ASM"
> > > -D"KECCAK1600_ASM" -D"RC4_ASM" -D"MD5_ASM" -D"AES_ASM" -D"VPAES_ASM"
> > > -D"BSAES_ASM" -D"GHASH_ASM" -D"ECP_NISTZ256_ASM" -D"X25519_ASM"
> > > -D"PADLOCK_ASM" -D"POLY1305_ASM" -D"OPENSSLDIR=\"C:\\Program
> > > Files\\Common Files\\SSL\""
> > > -D"ENGINESDIR=\"C:\\openssl\\lib\\engines-1_1\"" -D"OPENSSL_SYS_WIN32"
> > > -D"WIN32_LEAN_AND_MEAN" -D"UNICODE" -D"_UNICODE"
> > > -D"_CRT_SECURE_NO_DEPRECATE" -D"_WINSOCK_DEPRECATED_NO_WARNINGS"
> > > -D"OPENSSL_USE_APPLINK" -D"NDEBUG"  /Zs /showIncludes
> > > "crypto\sm2\sm2_sign.c" 2>&1 > crypto\sm2\sm2_sign.d
> > > NMAKE : fatal error U1077: 'cl' : return code '0x2'
> > > Stop.
> > > NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual
> > > Studio 9.0\VC\BIN\amd64\nmake.exe"' : return code '0x2'
> > > Stop.
> > >
> > > My Command lines from the VS 2008 x64 Command Prompt are:
> > > perl Configure VC-WIN64A --prefix=c:/openssl
> > > nmake
> > >
> > > I also tried compiling the latest stable snapshot
> > > (openssl-1.1.1-stable-SNAP-20181022) with the same results. However
> > > version 1.1.0h compiles without error. Can anyone tell me what the
> > > problem is?
> > >
> > > Here is the configuration dump:
> > >
> > > Command line (with current working directory = .):
> > >     c:\perl\bin\perl.exe Configure VC-WIN64A --prefix=c:/openssl
> > > Perl information:
> > >     c:\perl\bin\perl.exe
> > >     5.24.3 for MSWin32-x64-multi-thread
> > > Enabled features:
> > >     aria
> > >     asm
> > >     async
> > >     autoalginit
> > >     autoerrinit
> > >     autoload-config
> > >     bf
> > >     blake2
> > >     camellia
> > >     capieng
> > >     cast
> > >     chacha
> > >     cmac
> > >     cms
> > >     comp
> > >     ct
> > >     deprecated
> > >     des
> > >     dgram
> > >     dh
> > >     dsa
> > >     dso
> > >     dtls
> > >     dynamic-engine
> > >     ec
> > >     ec2m
> > >     ecdh
> > >     ecdsa
> > >     engine
> > >     err
> > >     filenames
> > >     gost
> > >     hw(-.+)?
> > >     idea
> > >     makedepend
> > >     md4
> > >     mdc2
> > >     multiblock
> > >     nextprotoneg
> > >     ocb
> > >     ocsp
> > >     pic
> > >     poly1305
> > >     posix-io
> > >     psk
> > >     rc2
> > >     rc4
> > >     rdrand
> > >     rfc3779
> > >     rmd160
> > >     scrypt
> > >     seed
> > >     shared
> > >     siphash
> > >     sm2
> > >     sm3
> > >     sm4
> > >     sock
> > >     srp
> > >     srtp
> > >     sse2
> > >     ssl
> > >     static-engine
> > >     stdio
> > >     tests
> > >     threads
> > >     tls
> > >     ts
> > >     ui-console
> > >     whirlpool
> > >     tls1
> > >     tls1-method
> > >     tls1_1
> > >     tls1_1-method
> > >     tls1_2
> > >     tls1_2-method
> > >     tls1_3
> > >     dtls1
> > >     dtls1-method
> > >     dtls1_2
> > >     dtls1_2-method
> > > Disabled features:
> > >     afalgeng                [not-linux]
> > >     asan                    [default]   OPENSSL_NO_ASAN
> > >     crypto-mdebug           [default]   OPENSSL_NO_CRYPTO_MDEBUG
> > >     crypto-mdebug-backtrace [default]   OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE
> > >     devcryptoeng            [default]   OPENSSL_NO_DEVCRYPTOENG
> > >     ec_nistp_64_gcc_128     [default]   OPENSSL_NO_EC_NISTP_64_GCC_128
> > >     egd                     [default]   OPENSSL_NO_EGD
> > >     external-tests          [default]   OPENSSL_NO_EXTERNAL_TESTS
> > >     fuzz-libfuzzer          [default]   OPENSSL_NO_FUZZ_LIBFUZZER
> > >     fuzz-afl                [default]   OPENSSL_NO_FUZZ_AFL
> > >     heartbeats              [default]   OPENSSL_NO_HEARTBEATS
> > >     md2                     [default]   OPENSSL_NO_MD2 (skip crypto\md2)
> > >     msan                    [default]   OPENSSL_NO_MSAN
> > >     rc5                     [default]   OPENSSL_NO_RC5 (skip crypto\rc5)
> > >     sctp                    [default]   OPENSSL_NO_SCTP
> > >     ssl-trace               [default]   OPENSSL_NO_SSL_TRACE
> > >     ubsan                   [default]   OPENSSL_NO_UBSAN
> > >     unit-test               [default]   OPENSSL_NO_UNIT_TEST
> > >     weak-ssl-ciphers        [default]   OPENSSL_NO_WEAK_SSL_CIPHERS
> > >     zlib                    [default]
> > >     zlib-dynamic            [default]
> > >     ssl3                    [default]   OPENSSL_NO_SSL3
> > >     ssl3-method             [default]   OPENSSL_NO_SSL3_METHOD
> > > Config target attributes:
> > >     AR => "lib",
> > >     ARFLAGS => "/nologo",
> > >     AS => "nasm",
> > >     ASFLAGS => "-g",
> > >     CC => "cl",
> > >     CFLAGS => "/W3 /wd4090 /nologo /O2",
> > >     CPP => "\$(CC) /EP /C",
> > >     HASHBANGPERL => "/usr/bin/env perl",
> > >     LD => "link",
> > >     LDFLAGS => "/nologo /debug",
> > >     MT => "mt",
> > >     MTFLAGS => "-nologo",
> > >     RANLIB => "CODE(0x65aff0)",
> > >     RC => "rc",
> > >     aes_asm_src => "aes-x86_64.s vpaes-x86_64.s bsaes-x86_64.s
> > > aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s
> > > aesni-mb-x86_64.s",
> > >     aes_obj => "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",
> > >     apps_aux_src => "win32_init.c",
> > >     apps_init_src => "../ms/applink.c",
> > >     apps_obj => "win32_init.o",
> > >     aroutflag => "/out:",
> > >     asflags => "-Ox -f win64 -DNEAR",
> > >     asoutflag => "-o ",
> > >     bf_asm_src => "bf_enc.c",
> > >     bf_obj => "bf_enc.o",
> > >     bin_cflags => "/Zi /Fdapp.pdb",
> > >     bin_lflags => "/subsystem:console /opt:ref",
> > >     bn_asm_src => "bn_asm.c x86_64-mont.s x86_64-mont5.s x86_64-gf2m.s
> > > rsaz_exp.c rsaz-x86_64.s rsaz-avx2.s",
> > >     bn_obj => "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",
> > >     bn_ops => "EXPORT_VAR_AS_FN SIXTY_FOUR_BIT",
> > >     build_file => "makefile",
> > >     build_scheme => [ "unified", "windows", "VC-common" ],
> > >     cast_asm_src => "c_enc.c",
> > >     cast_obj => "c_enc.o",
> > >     cflags => "/Gs0 /GF /Gy /MD",
> > >     chacha_asm_src => "chacha-x86_64.s",
> > >     chacha_obj => "chacha-x86_64.o",
> > >     cmll_asm_src => "cmll-x86_64.s cmll_misc.c",
> > >     cmll_obj => "cmll-x86_64.o cmll_misc.o",
> > >     coutflag => "/Fo",
> > >     cppflags => "",
> > >     cpuid_asm_src => "x86_64cpuid.s",
> > >     cpuid_obj => "x86_64cpuid.o",
> > >     defines => [ "OPENSSL_SYS_WIN32", "WIN32_LEAN_AND_MEAN",
> > > "UNICODE", "_UNICODE", "_CRT_SECURE_NO_DEPRECATE",
> > > "_WINSOCK_DEPRECATED_NO_WARNINGS", "OPENSSL_USE_APPLINK" ],
> > >     des_asm_src => "des_enc.c fcrypt_b.c",
> > >     des_obj => "des_enc.o fcrypt_b.o",
> > >     disable => [  ],
> > >     dso_cflags => "/Zi /Fddso.pdb",
> > >     dso_extension => "",
> > >     dso_scheme => "win32",
> > >     ec_asm_src => "ecp_nistz256.c ecp_nistz256-x86_64.s x25519-x86_64.s",
> > >     ec_obj => "ecp_nistz256.o ecp_nistz256-x86_64.o x25519-x86_64.o",
> > >     enable => [  ],
> > >     ex_libs => "ws2_32.lib gdi32.lib advapi32.lib crypt32.lib user32.lib",
> > >     exe_extension => "",
> > >     includes => [  ],
> > >     keccak1600_asm_src => "keccak1600-x86_64.s",
> > >     keccak1600_obj => "keccak1600-x86_64.o",
> > >     ldoutflag => "/out:",
> > >     lflags => "",
> > >     lib_cflags => "/Zi /Fdossl_static.pdb",
> > >     lib_cppflags => "",
> > >     lib_defines => [ "L_ENDIAN" ],
> > >     md5_asm_src => "md5-x86_64.s",
> > >     md5_obj => "md5-x86_64.o",
> > >     modes_asm_src => "ghash-x86_64.s aesni-gcm-x86_64.s",
> > >     modes_obj => "ghash-x86_64.o aesni-gcm-x86_64.o",
> > >     module_cflags => "",
> > >     module_cxxflags => "",
> > >     module_ldflags => "/dll",
> > >     mtinflag => "-manifest ",
> > >     mtoutflag => "-outputresource:",
> > >     multilib => "-x64",
> > >     padlock_asm_src => "e_padlock-x86_64.s",
> > >     padlock_obj => "e_padlock-x86_64.o",
> > >     perlasm_scheme => "auto",
> > >     poly1305_asm_src => "poly1305-x86_64.s",
> > >     poly1305_obj => "poly1305-x86_64.o",
> > >     rc4_asm_src => "rc4-x86_64.s rc4-md5-x86_64.s",
> > >     rc4_obj => "rc4-x86_64.o rc4-md5-x86_64.o",
> > >     rc5_asm_src => "rc5_enc.c",
> > >     rc5_obj => "rc5_enc.o",
> > >     rcoutflag => "/fo",
> > >     rmd160_asm_src => "",
> > >     rmd160_obj => "",
> > >     sha1_asm_src => "sha1-x86_64.s sha256-x86_64.s sha512-x86_64.s
> > > sha1-mb-x86_64.s sha256-mb-x86_64.s",
> > >     sha1_obj => "sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o
> > > sha1-mb-x86_64.o sha256-mb-x86_64.o",
> > >     shared_cflag => "",
> > >     shared_defines => [  ],
> > >     shared_extension => "",
> > >     shared_extension_simple => "",
> > >     shared_ldflag => "/dll",
> > >     shared_rcflag => "",
> > >     shared_target => "win-shared",
> > >     sys_id => "WIN64A",
> > >     thread_defines => [  ],
> > >     thread_scheme => "winthreads",
> > >     unistd => "<unistd.h>",
> > >     uplink_aux_src => "../ms/uplink.c uplink-x86_64.s",
> > >     uplink_obj => "../ms/uplink.o uplink-x86_64.o",
> > >     wp_asm_src => "wp-x86_64.s",
> > >     wp_obj => "wp-x86_64.o",
> > > Recorded environment:
> > >     AR =
> > >     ARFLAGS =
> > >     AS =
> > >     ASFLAGS =
> > >     BUILDFILE =
> > >     CC =
> > >     CFLAGS =
> > >     CPP =
> > >     CPPDEFINES =
> > >     CPPFLAGS =
> > >     CPPINCLUDES =
> > >     CROSS_COMPILE =
> > >     CXX =
> > >     CXXFLAGS =
> > >     HASHBANGPERL =
> > >     LD =
> > >     LDFLAGS =
> > >     LDLIBS =
> > >     MT =
> > >     MTFLAGS =
> > >     OPENSSL_LOCAL_CONFIG_DIR =
> > >     PERL =
> > >     RANLIB =
> > >     RC =
> > >     RCFLAGS =
> > >     RM =
> > >     WINDRES =
> > >     __CNF_CFLAGS =
> > >     __CNF_CPPDEFINES =
> > >     __CNF_CPPFLAGS =
> > >     __CNF_CPPINCLUDES =
> > >     __CNF_CXXFLAGS =
> > >     __CNF_LDFLAGS =
> > >     __CNF_LDLIBS =
> > > Makevars:
> > >     AR              = lib
> > >     ARFLAGS         = /nologo
> > >     AS              = nasm
> > >     ASFLAGS         = -g
> > >     CC              = cl
> > >     CFLAGS          = /W3 /wd4090 /nologo /O2
> > >     CPP             = $(CC) /EP /C
> > >     CPPDEFINES      =
> > >     CPPFLAGS        =
> > >     CPPINCLUDES     =
> > >     CXXFLAGS        =
> > >     HASHBANGPERL    = /usr/bin/env perl
> > >     LD              = link
> > >     LDFLAGS         = /nologo /debug
> > >     LDLIBS          =
> > >     MT              = mt
> > >     MTFLAGS         = -nologo
> > >     PERL            = c:\perl\bin\perl.exe
> > >     RC              = rc
> > > NOTE: These variables only represent the configuration view.  The build file
> > > template may have processed these variables further, please have a look at the
> > > build file for more exact data:
> > >     makefile
> > > build file:
> > >     makefile
> > > build file templates:
> > >     Configurations\common0.tmpl
> > >     Configurations\windows-makefile.tmpl
> > >     Configurations\common.tmpl
> > >
> > --
> > openssl-users mailing list
> > To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users
> 


More information about the openssl-users mailing list