aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2018-03-24 01:44:37 +0900
committerKazuki Yamaguchi <k@rhe.jp>2018-03-24 01:44:37 +0900
commit75de15ddcdab6efe7faf3ca1f6b5c6e5b6ba57cc (patch)
tree12530ceab3437d8226ef9feded7daa81ef2faca4
parent8f755f22521ee1f2973f195abd9f8c8534aae5c0 (diff)
downloadruby-openssl-75de15ddcdab6efe7faf3ca1f6b5c6e5b6ba57cc.tar.gz
extconf.rb: fix build with LibreSSL 2.7.0ky/libressl-2.7
Our compat implementation of accessor functions that were introduced in OpenSSL 1.1.0 conflicts with those from LibreSSL 2.7.0. Use the HAVE_OPAQUE_OPENSSL code path when LibreSSL 2.7 or newer is detected. Fix suggested by Joel Sing. Fixes: https://github.com/ruby/openssl/issues/192
-rw-r--r--ext/openssl/extconf.rb5
1 files changed, 4 insertions, 1 deletions
diff --git a/ext/openssl/extconf.rb b/ext/openssl/extconf.rb
index 75da65cd..998d9104 100644
--- a/ext/openssl/extconf.rb
+++ b/ext/openssl/extconf.rb
@@ -157,8 +157,11 @@ OpenSSL.check_func_or_macro("SSL_get_server_tmp_key", "openssl/ssl.h")
have_func("SSL_is_server")
# added in 1.1.0
+if !have_struct_member("SSL", "ctx", "openssl/ssl.h") ||
+ try_static_assert("LIBRESSL_VERSION_NUMBER >= 0x2070000fL", "openssl/opensslv.h")
+ $defs.push("-DHAVE_OPAQUE_OPENSSL")
+end
have_func("CRYPTO_lock") || $defs.push("-DHAVE_OPENSSL_110_THREADING_API")
-have_struct_member("SSL", "ctx", "openssl/ssl.h") || $defs.push("-DHAVE_OPAQUE_OPENSSL")
have_func("BN_GENCB_new")
have_func("BN_GENCB_free")
have_func("BN_GENCB_get_arg")