diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2018-03-24 01:44:37 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2018-03-24 01:44:37 +0900 |
commit | 75de15ddcdab6efe7faf3ca1f6b5c6e5b6ba57cc (patch) | |
tree | 12530ceab3437d8226ef9feded7daa81ef2faca4 /ext/openssl/extconf.rb | |
parent | 8f755f22521ee1f2973f195abd9f8c8534aae5c0 (diff) | |
download | ruby-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
Diffstat (limited to 'ext/openssl/extconf.rb')
-rw-r--r-- | ext/openssl/extconf.rb | 5 |
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") |