> your OpenSSL is configured with the non-default OPENSSL_NO_DEPRECATED symbol.
yep, openssl 1.0.2e here is config'd with "no-deprecated" flag. Not currently 'default', but strongly advised. Been available since openssl v0.9.8 iiuc.
but for MDB build
> cmake .. -DCMAKE_CXX_FLAGS=-UOPENSSL_NO_DEPRECATED -DCMAKE_C_FLAGS=-UOPENSSL_NO_DEPRECATED
doesn't appear to do the trick.
cmake .. --debug-output -Wno-dev \
|
-DCMAKE_C_FLAGS="... -UOPENSSL_NO_DEPRECATED" \
|
-DCMAKE_CXX_FLAGS="... -UOPENSSL_NO_DEPRECATED" \
|
...
|
make VERBOSE=1
|
...
|
[ 75%] Building C object vio/CMakeFiles/vio.dir/viosslfactories.c.o
|
cd /usr/local/src/mariadb/bld/vio && /usr/bin/gcc-5 -DHAVE_CONFIG_H -DHAVE_OPENSSL -DHAVE_SYSTEMD -I/usr/local/src/mariadb/bld/include -I/usr/local/src/mariadb/include -I/usr/local/ssl/include -fno-delete-null-pointer-checks -D_FORTIFY_SOURCE=2 -fmessage-length=0 -fstack-protector -march=x86-64 -mtune=nocona -I/usr/local/include -UOPENSSL_NO_DEPRECATED -pie -fPIC -Wl,-z,relro,-z,now -fstack-protector --param=ssp-buffer-size=4 -DWITH_INNODB_DISALLOW_WRITES -O3 -DNDEBUG -D_FORTIFY_SOURCE=2 -DDBUG_OFF -DMY_PTHREAD_FASTMUTEX=1 -fPIC -o CMakeFiles/vio.dir/viosslfactories.c.o -c /usr/local/src/mariadb/vio/viosslfactories.c
|
/usr/local/src/mariadb/vio/viosslfactories.c: In function ‘get_dh2048’:
|
/usr/local/src/mariadb/vio/viosslfactories.c:57:11: warning: implicit declaration of function ‘DH_new’ [-Wimplicit-function-declaration]
|
if ((dh=DH_new()) == NULL) return(NULL);
|
^
|
/usr/local/src/mariadb/vio/viosslfactories.c:57:10: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
|
if ((dh=DH_new()) == NULL) return(NULL);
|
^
|
/usr/local/src/mariadb/vio/viosslfactories.c:58:5: error: dereferencing pointer to incomplete type ‘DH {aka struct dh_st}’
|
dh->p=BN_bin2bn(dh2048_p,sizeof(dh2048_p),NULL);
|
^
|
/usr/local/src/mariadb/vio/viosslfactories.c:58:9: warning: implicit declaration of function ‘BN_bin2bn’ [-Wimplicit-function-declaration]
|
dh->p=BN_bin2bn(dh2048_p,sizeof(dh2048_p),NULL);
|
^
|
/usr/local/src/mariadb/vio/viosslfactories.c:61:5: warning: implicit declaration of function ‘DH_free’ [-Wimplicit-function-declaration]
|
{ DH_free(dh); return(NULL); }
|
^
|
vio/CMakeFiles/vio.dir/build.make:182: recipe for target 'vio/CMakeFiles/vio.dir/viosslfactories.c.o' failed
|
make[2]: *** [vio/CMakeFiles/vio.dir/viosslfactories.c.o] Error 1
|
make[2]: Leaving directory '/usr/local/src/mariadb/bld'
|
CMakeFiles/Makefile2:3432: recipe for target 'vio/CMakeFiles/vio.dir/all' failed
|
make[1]: *** [vio/CMakeFiles/vio.dir/all] Error 2
|
make[1]: Leaving directory '/usr/local/src/mariadb/bld'
|
Makefile:149: recipe for target 'all' failed
|
make: *** [all] Error 2
|
also, I note you keep changing the priority of these build bugs from 'Blocker'
@ https://mariadb.atlassian.net/secure/ShowConstantsHelp.jspa?decorator=popup#PriorityLevels
"Blocker Blocks development and/or testing work, production could not run."
Inability to build certainly fits that bill, no? Or advise otherwise?
This happens, because your OpenSSL is configured with the non-default OPENSSL_NO_DEPRECATED symbol.
I'll try to fix it in the next 5.5 (and following 10.0, 10.1) releases. Meanwhile you can undefine it for MariaDB. For example, use
cmake .. -DCMAKE_CXX_FLAGS=-UOPENSSL_NO_DEPRECATED -DCMAKE_C_FLAGS=-UOPENSSL_NO_DEPRECATED