From: k@... Date: 2016-12-29T15:54:20+00:00 Subject: [ruby-core:78910] [Ruby trunk Bug#13080] [mingw regression] broken openssl extension in 2.4.0p0 Issue #13080 has been updated by Kazuki Yamaguchi. Apparently my change broke it: https://github.com/ruby/openssl/commit/5ba12a364fa5019f0e0f1e356087c001330097f1 I never thought OpenSSL would actually use gdi32.dll, but it does! RAND_screen() which used those gdi32.dll functions was removed in OpenSSL 1.1.0, but it now fails because crypt32.dll is missing. Please apply this patch, or use pkg-config, or use shared libraries of OpenSSL (which I recommend). ``` --- a/ext/openssl/extconf.rb +++ b/ext/openssl/extconf.rb @@ -37,6 +37,12 @@ Logging::message "=== Checking for required stuff... ===\n" result = pkg_config("openssl") && have_header("openssl/ssl.h") unless result + if $mswin || $mingw + # required for static OpenSSL libraries + have_library("gdi32") # OpenSSL <= 1.0.2 (for RAND_screen()) + have_library("crypt32") + end + result = have_header("openssl/ssl.h") result &&= %w[crypto libeay32].any? {|lib| have_library(lib, "CRYPTO_malloc")} result &&= %w[ssl ssleay32].any? {|lib| have_library(lib, "SSL_new")} ``` ---------------------------------------- Bug #13080: [mingw regression] broken openssl extension in 2.4.0p0 https://bugs.ruby-lang.org/issues/13080#change-62324 * Author: Jon Forums * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: ruby 2.4.0p0 (2016-12-24 revision 57163) [i386-mingw32] * Backport: 2.2: UNKNOWN, 2.3: UNKNOWN, 2.4: UNKNOWN ---------------------------------------- When building using slightly modified rubyinstaller build recipes and a msys2/mingw64-6.2.0 (32bit) toolchain, the build fails to create the openssl extension when using openssl 1.0.2j or 1.1.0c. ~~~ $ ruby --version ruby 2.4.0p0 (2016-12-24 revision 57163) [i386-mingw32] $ ruby -ropenssl -e "puts OpenSSL::OPENSSL_VERSION" C:/Users/Jon/Documents/RubyDev/ri-git/sandbox/ruby21_mingw/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- openssl (LoadError) from C:/Users/Jon/Documents/RubyDev/ri-git/sandbox/ruby21_mingw/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require' ~~~ Attached are the failing openssl mkmf.log and Makefile files from the 2.4.0p0 build. I can provide good versions of the files from a 2.3.3p224 x32 build using openssl 1.0.2j if needed. ---Files-------------------------------- bad_mkmf_2.4.log (21.9 KB) bad_Makefile_2.4 (6.22 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: