Bug #91672 MySQL8.0 fails to compile on Windows with OpenSSL 1.1.0.
Submitted: 17 Jul 2018 6:11 Modified: 25 Oct 2018 9:52
Reporter: Takanori Sejima Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server: Compiling Severity:S3 (Non-critical)
Version:8.0.11 OS:Windows
Assigned to: CPU Architecture:Any
Tags: openssl

[17 Jul 2018 6:11] Takanori Sejima
Description:
MySQL8.0.4 or higher can be linked against OpenSSL 1.1 on Unix and Unix-like systems.(https://bugs.mysql.com/bug.php?id=83814)

However, MySQL 8.0.11 can not be compiled on Windows with OpenSSL 1.1.0 yet.

How to repeat:
1. download and install Win64 OpenSSL v1.1.0h from 
 http://slproweb.com/products/Win32OpenSSL.html .
2. unzip mysql-8.0.11.zip .
3. cmake .. -DWITH_DEBUG=1 -G "Visual Studio 14 2015 Win64"  -DDOWNLOAD_BOOST=1 -DWITH_BOOST=C:\work\boost -DWITH_SSL=C:\OpenSSL-Win64

Next, the following error appears:

-- OPENSSL_APPLINK_C OPENSSL_APPLINK_C-NOTFOUND
-- suffixes <.lib>
-- OPENSSL_INCLUDE_DIR = C:/OpenSSL-Win64/include
-- OPENSSL_LIBRARY = OPENSSL_LIBRARY-NOTFOUND
-- CRYPTO_LIBRARY = CRYPTO_LIBRARY-NOTFOUND
-- OPENSSL_MAJOR_VERSION = 1
-- Looking for SHA512_DIGEST_LENGTH
-- Looking for SHA512_DIGEST_LENGTH - found
--
Cannot find appropriate system libraries for WITH_SSL=C:/OpenSSL-Win64.
Make sure you have specified a supported SSL version.
Valid options are :
system (use the OS openssl library),
yes (synonym for system),
</path/to/custom/openssl/installation>,
wolfssl (use wolfSSL. See extra/README-wolfssl.txt on how to set this up)

CMake Error at cmake/ssl.cmake:72 (MESSAGE):
  Please see https://wiki.openssl.org/index.php/Binaries

Call Stack (most recent call first):
  cmake/ssl.cmake:357 (FATAL_SSL_NOT_FOUND_ERROR)
  CMakeLists.txt:764 (MYSQL_CHECK_SSL)

-- Configuring incomplete, errors occurred!

In the case of OpenSSL 1.0.2, it will be the following message:

-- OPENSSL_APPLINK_C C:/OpenSSL-Win64/include/openssl/applink.c
-- suffixes <.lib>
-- The openssl command does not support zlib
-- OPENSSL_INCLUDE_DIR = C:/OpenSSL-Win64/include
-- OPENSSL_LIBRARY = C:/OpenSSL-Win64/lib/ssleay32.lib
-- CRYPTO_LIBRARY = C:/OpenSSL-Win64/lib/libeay32.lib
-- OPENSSL_MAJOR_VERSION = 1
-- Looking for SHA512_DIGEST_LENGTH
-- Looking for SHA512_DIGEST_LENGTH - found
-- SSL_LIBRARIES = imported_openssl;imported_crypto
-- WITH_SSL_PATH C:/OpenSSL-Win64
-- HAVE_CRYPTO_DLL C:/OpenSSL-Win64/bin/libeay32.dll
-- HAVE_OPENSSL_DLL C:/OpenSSL-Win64/bin/ssleay32.dll
-- INSTALL C:/OpenSSL-Win64/bin/libeay32.dll to bin
-- INSTALL C:/OpenSSL-Win64/bin/ssleay32.dll to bin

see the code:
https://github.com/mysql/mysql-server/blob/4f1d7cf5fcb11a3f84cff27e37100d7295e7d5ca/cmake/...
FIND_LIBRARY

The file name of Library referenced in ssl.make has been changed in OpenSSL 1.1.0. As a result, it fails with FIND_LIBRARY.

Suggested fix:
"Now MySQL 8.0 can only be compiled with OpenSSL 1.0.2 (Long Term Support) on Windows.

How about adding it to the limitation?
https://dev.mysql.com/doc/refman/8.0/en/limits-windows.html

(OpenSSL will be 1.1.1 which will be an Long Term Support release. )
[17 Jul 2018 7:10] MySQL Verification Team
Hello Takanori Sejima,

Thank you for the report.

Thanks,
Umesh
[23 Jul 2018 8:05] Tor Didriksen
Posted by developer:
 
The build issue has been fixed:
Bug#28170711 ADD CMAKE SUPPORT FOR OPENSSL 1.1 ON WINDOWS 

We still have an open bug to actually make it *work* though:
Bug#28179051 ADD SUPPORT FOR OPENSSL 1.1 ON WINDOWS 

The server hangs on the first call to any OpenSSL function.
[25 Oct 2018 9:52] Erlend Dahl
Duplicate of

Bug#91223 add cmake support for openssl 1.1 on windows