I'd assume you guys are already aware of this, but couldn't find it.
Compiling on linux (4.5.0-2-amd64 #1 SMP Debian 4.5.3-2 (2016-05-08) x86_64 GNU/Linux) as of ver ade4b7f, following problem occurs:
Entering dir: build/release
[ 10%] Built target arch
[ 11%] Built target common
[ 18%] Built target base
[ 19%] Built target shared
[ 21%] Built target io
[ 25%] Built target mt
[ 26%] Building CXX object src/lib/net/CMakeFiles/net.dir/SecureSocket.cpp.o
/data/progs/custom_builds/synergy/src/lib/net/SecureSocket.cpp: In member function ‘void SecureSocket::showSecureCipherInfo()’:
/data/progs/custom_builds/synergy/src/lib/net/SecureSocket.cpp:810:46: error: invalid use of incomplete type ‘SSL {aka struct ssl_st}’
STACK_OF(SSL_CIPHER) * cStack = m_ssl->m_ssl->session->ciphers;
^
In file included from /usr/include/openssl/crypto.h:31:0,
from /usr/include/openssl/comp.h:16,
from /usr/include/openssl/ssl.h:47,
from /data/progs/custom_builds/synergy/src/lib/net/SecureSocket.cpp:27:
/usr/include/openssl/ossl_typ.h:144:16: note: forward declaration of ‘SSL {aka struct ssl_st}’
typedef struct ssl_st SSL;
^
At global scope:
cc1plus: error: unrecognized command line option ‘-Wno-unused-local-typedef’ [-Werror]
cc1plus: all warnings being treated as errors
src/lib/net/CMakeFiles/net.dir/build.make:134: recipe for target 'src/lib/net/CMakeFiles/net.dir/SecureSocket.cpp.o' failed
make[2]: *** [src/lib/net/CMakeFiles/net.dir/SecureSocket.cpp.o] Error 1
CMakeFiles/Makefile2:549: recipe for target 'src/lib/net/CMakeFiles/net.dir/all' failed
make[1]: *** [src/lib/net/CMakeFiles/net.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
Going back to: /data/progs/custom_builds/synergy
Error: make failed: 512
This bugreport was filed for openssl, but apparently their api was changed, thus not their issue. Could it be on synergy side?
There's a comment above the line of that error that mentions this.
// m_ssl->m_ssl->session->ciphers is not forward compatable, In future release
// of OpenSSL, it's not visible, need to use SSL_get_client_ciphers() instead
In the short term while a version check and fix isn't merged the following replacement might work
STACK_OF(SSL_CIPHER) * cStack = SSL_get_client_ciphers(m_ssl->m_ssl);
Which version of OpenSSL are you trying to compile against?
@XinyuHou It's a version of OpenSSL 1.1 in Debian stetch (testing) and Debian sid (unstable)
I don't mean to intrude but is there a work around or fix for this? I'm running into the same issue, OpenSSL 1.1.0c
4.8.0-amd64 #1 SMP Debian 4.8.15-1 (2016-12-23) x86_64 GNU/Linux
Duplicate of #5757
Most helpful comment
There's a comment above the line of that error that mentions this.
In the short term while a version check and fix isn't merged the following replacement might work
STACK_OF(SSL_CIPHER) * cStack = SSL_get_client_ciphers(m_ssl->m_ssl);