Hi Michael,
see attached file for cygwin details.
The openssl is cloned from:
git clone https://github.com/openssl/openssl.git
perl Configure
Configuring OpenSSL version 3.2.0-dev for target Cygwin-x86_64
Using os-specific seed configuration
Created configdata.pm
Running configdata.pm
Created Makefile.in
Created Makefile
Created include/openssl/configuration.h
**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL.md file first) ***
*** ***
**********************************************************************
Configuring OpenSSL version 3.2.0-dev for target Cygwin-x86_64
Using os-specific seed configuration
Created configdata.pm
Running configdata.pm
Created Makefile.in
Created Makefile
Created include/openssl/configuration.h
**********************************************************************
*** ***
*** OpenSSL has been successfully configured ***
*** ***
*** If you encounter a problem while building, please open an ***
*** issue on GitHub <https://github.com/openssl/openssl/issues> ***
*** and include the output from the following command: ***
*** ***
*** perl configdata.pm --dump ***
*** ***
*** (If you are new to OpenSSL, you might want to consult the ***
*** 'Troubleshooting' section in the INSTALL.md file first) ***
*** ***
**********************************************************************
בתאריך יום א׳, 16 באוק׳ 2022 ב-17:55 מאת Michael Wojcik <Michael.Wojcik@xxxxxxxxxxxxxx>:
> From: openssl-users <openssl-users-bounces@xxxxxxxxxxx> On Behalf Of ???? ???
> Sent: Saturday, 15 October, 2022 15:48
> I have tried to build openssl using cygwin:
> Both options starts compiling, but end up with error:
> In file included from providers/implementations/storemgmt/winstore_store.c:27:
> /usr/include/w32api/wincrypt.h:20:11: error: unknown type name 'LONG'
> 20 | typedef LONG HRESULT;
> Q: What am I missing here?
Well, the version of OpenSSL you're using, for one thing. And what C implementation; there are various ones which can be used under Cygwin. Cygwin is an environment, not a build toolchain.
I don't know if this is still true, or if it differs for 1.1.1 and 3.0; but historically there have been issues using Cygwin perl to build OpenSSL, because OpenSSL on Windows wants a perl implementation that uses Windows-style file paths. We use Strawberry Perl.
That said, that error appears to be due to an issue with the Windows SDK headers, since it's the Windows SDK which should be typedef'ing LONG. (Because we wouldn't want Microsoft to use actual standard C type names, would we?) So this might be due to not having some macro defined when including the various Windows SDK headers.
--
Michael Wojcik
Command line (with current working directory = .): /usr/bin/perl ./Configure Perl information: /usr/bin/perl 5.32.1 for x86_64-cygwin-threads-multi Enabled features: aria asm async autoalginit autoerrinit autoload-config bf blake2 bulk cached-fetch camellia capieng winstore cast chacha cmac cmp cms comp ct deprecated des dgram dh dsa dso dtls dynamic-engine ec ec2m ecdh ecdsa engine err filenames gost idea legacy loadereng makedepend md4 mdc2 module multiblock nextprotoneg ocb ocsp padlockeng pic pinshared poly1305 posix-io psk rc2 rc4 rdrand rfc3779 rmd160 scrypt secure-memory seed shared siphash siv sm2 sm3 sm4 sock srp srtp sse2 ssl ssl-trace 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: acvp-tests [cascade] OPENSSL_NO_ACVP_TESTS afalgeng [not-linux] OPENSSL_NO_AFALGENG asan [default] OPENSSL_NO_ASAN buildtest-c++ [default] crypto-mdebug [default] OPENSSL_NO_CRYPTO_MDEBUG 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 fips [default] fips-securitychecks [cascade] OPENSSL_NO_FIPS_SECURITYCHECKS fuzz-afl [default] OPENSSL_NO_FUZZ_AFL fuzz-libfuzzer [default] OPENSSL_NO_FUZZ_LIBFUZZER ktls [default] OPENSSL_NO_KTLS md2 [default] OPENSSL_NO_MD2 (skip crypto/md2) msan [default] OPENSSL_NO_MSAN quic [default] OPENSSL_NO_QUIC rc5 [default] OPENSSL_NO_RC5 (skip crypto/rc5) sctp [default] OPENSSL_NO_SCTP tfo [default] OPENSSL_NO_TFO trace [default] OPENSSL_NO_TRACE ubsan [default] OPENSSL_NO_UBSAN unit-test [default] OPENSSL_NO_UNIT_TEST uplink [no uplink_arch] OPENSSL_NO_UPLINK 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 => "ar", ARFLAGS => "qc", CC => "gcc", CFLAGS => "-Wall -O3", HASHBANGPERL => "/usr/bin/env perl", RANLIB => "ranlib", RC => "windres", asm_arch => "x86_64", bn_ops => "SIXTY_FOUR_BIT_LONG", build_file => "Makefile", build_scheme => [ "unified", "unix" ], cflags => "", cppflags => "", defines => [ "OPENSSL_BUILDING_OPENSSL" ], disable => [ ], dso_scheme => "dlfcn", enable => [ ], includes => [ ], lflags => "", lib_cflags => "", lib_cppflags => "-DTERMIOS -DL_ENDIAN", lib_defines => [ ], module_cflags => "", module_cxxflags => undef, module_ldflags => "-shared -Wl,--enable-auto-image-base", perl_platform => "Cygwin", perlasm_scheme => "mingw64", shared_cflag => "", shared_cppflags => "-D_WINDLL", shared_defines => [ ], shared_impflag => "-Wl,--out-implib=", shared_ldflag => "-shared -Wl,--enable-auto-image-base", shared_rcflag => "", shared_target => "cygwin-shared", sys_id => "CYGWIN", thread_defines => [ ], thread_scheme => "pthread", unistd => "<unistd.h>", 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 = ar ARFLAGS = qc CC = gcc CFLAGS = -Wall -O3 CPPDEFINES = CPPFLAGS = CPPINCLUDES = CXXFLAGS = HASHBANGPERL = /usr/bin/env perl LDFLAGS = LDLIBS = PERL = /usr/bin/perl RANLIB = ranlib RC = windres RCFLAGS = 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/unix-Makefile.tmpl