Compile failure on FreeBSD - SSL error


#1 root

I'm attempting to compile the latest nxlog on FreeBSD and it fails with the following error. Any thoughts as to a fix or workaround would be appreciated. My environment is as follows:

FreeBSD 10.1-STABLE

OpenSSL 1.0.2h  3 May 2016

[/usr/local/src/nxlog-ce-2.8.1248]#make
Making all in src
Making all in common
make  all-am
/bin/sh ../../libtool --tag=CC    --mode=compile cc -DHAVE_CONFIG_H -I. -I/usr/local/include/apr-1   -I/usr/local/include  -pipe -W -Wall -Wshadow -Wno-address -Wcast-qual -Wbad-function-cast -Wsign-compare -Wconversion -funsigned-char -Werror-implicit-function-declaration -Wswitch-default -fstrict-aliasing -Wpointer-arith -Wcast-align -Wwrite-strings -Wmissing-noreturn -Wmissing-format-attribute -Wformat -Wextra -Werror=format-security -rdynamic -ggdb3 -MT ssl.lo -MD -MP -MF .deps/ssl.Tpo -c -o ssl.lo ssl.c
libtool: compile:  cc -DHAVE_CONFIG_H -I. -I/usr/local/include/apr-1 -I/usr/local/include -pipe -W -Wall -Wshadow -Wno-address -Wcast-qual -Wbad-function-cast -Wsign-compare -Wconversion -funsigned-char -Werror-implicit-function-declaration -Wswitch-default -fstrict-aliasing -Wpointer-arith -Wcast-align -Wwrite-strings -Wmissing-noreturn -Wmissing-format-attribute -Wformat -Wextra -Werror=format-security -rdynamic -ggdb3 -MT ssl.lo -MD -MP -MF .deps/ssl.Tpo -c ssl.c -o ssl.o
cc: warning: argument unused during compilation: '-rdynamic'
ssl.c:46:27: warning: cast from function call of type 'apr_os_thread_t'
      (aka 'struct pthread *') to non-matching type 'unsigned long'
      [-Wbad-function-cast]
    ret = (unsigned long) apr_os_thread_current();
                          ^~~~~~~~~~~~~~~~~~~~~~~
ssl.c:343:52: warning: cast to 'void *' from smaller integer type 'int'
      [-Wint-to-void-pointer-cast]
    SSL_set_ex_data(ssl, nx_ssl_verify_result_idx, (void *) verify_result);
                                                   ^
ssl.c:372:12: error: implicit declaration of function 'SSLv3_method' is invalid
      in C99 [-Werror,-Wimplicit-function-declaration]
    meth = SSLv3_method();
           ^
ssl.c:372:10: warning: incompatible integer to pointer conversion assigning to
      'const SSL_METHOD *' (aka 'const struct ssl_method_st *') from 'int'
      [-Wint-conversion]
    meth = SSLv3_method();
         ^ ~~~~~~~~~~~~~~
3 warnings and 1 error generated.
*** Error code 1

Stop.
make[3]: stopped in /usr/local/src/nxlog-ce-2.8.1248/src/common
*** Error code 1

Stop.
make[2]: stopped in /usr/local/src/nxlog-ce-2.8.1248/src/common
*** Error code 1

Stop.
make[1]: stopped in /usr/local/src/nxlog-ce-2.8.1248/src
*** Error code 1

Stop.
make: stopped in /usr/local/src/nxlog-ce-2.8.1248

 

 

#2 adm Nxlog ✓
#1 root
I'm attempting to compile the latest nxlog on FreeBSD and it fails with the following error. Any thoughts as to a fix or workaround would be appreciated. My environment is as follows: FreeBSD 10.1-STABLE OpenSSL 1.0.2h  3 May 2016 [/usr/local/src/nxlog-ce-2.8.1248]#make Making all in src Making all in common make  all-am /bin/sh ../../libtool --tag=CC    --mode=compile cc -DHAVE_CONFIG_H -I. -I/usr/local/include/apr-1   -I/usr/local/include  -pipe -W -Wall -Wshadow -Wno-address -Wcast-qual -Wbad-function-cast -Wsign-compare -Wconversion -funsigned-char -Werror-implicit-function-declaration -Wswitch-default -fstrict-aliasing -Wpointer-arith -Wcast-align -Wwrite-strings -Wmissing-noreturn -Wmissing-format-attribute -Wformat -Wextra -Werror=format-security -rdynamic -ggdb3 -MT ssl.lo -MD -MP -MF .deps/ssl.Tpo -c -o ssl.lo ssl.c libtool: compile:  cc -DHAVE_CONFIG_H -I. -I/usr/local/include/apr-1 -I/usr/local/include -pipe -W -Wall -Wshadow -Wno-address -Wcast-qual -Wbad-function-cast -Wsign-compare -Wconversion -funsigned-char -Werror-implicit-function-declaration -Wswitch-default -fstrict-aliasing -Wpointer-arith -Wcast-align -Wwrite-strings -Wmissing-noreturn -Wmissing-format-attribute -Wformat -Wextra -Werror=format-security -rdynamic -ggdb3 -MT ssl.lo -MD -MP -MF .deps/ssl.Tpo -c ssl.c -o ssl.o cc: warning: argument unused during compilation: '-rdynamic' ssl.c:46:27: warning: cast from function call of type 'apr_os_thread_t'       (aka 'struct pthread *') to non-matching type 'unsigned long'       [-Wbad-function-cast]     ret = (unsigned long) apr_os_thread_current();                           ^~~~~~~~~~~~~~~~~~~~~~~ ssl.c:343:52: warning: cast to 'void *' from smaller integer type 'int'       [-Wint-to-void-pointer-cast]     SSL_set_ex_data(ssl, nx_ssl_verify_result_idx, (void *) verify_result);                                                    ^ ssl.c:372:12: error: implicit declaration of function 'SSLv3_method' is invalid       in C99 [-Werror,-Wimplicit-function-declaration]     meth = SSLv3_method();            ^ ssl.c:372:10: warning: incompatible integer to pointer conversion assigning to       'const SSL_METHOD *' (aka 'const struct ssl_method_st *') from 'int'       [-Wint-conversion]     meth = SSLv3_method();          ^ ~~~~~~~~~~~~~~ 3 warnings and 1 error generated. *** Error code 1 Stop. make[3]: stopped in /usr/local/src/nxlog-ce-2.8.1248/src/common *** Error code 1 Stop. make[2]: stopped in /usr/local/src/nxlog-ce-2.8.1248/src/common *** Error code 1 Stop. make[1]: stopped in /usr/local/src/nxlog-ce-2.8.1248/src *** Error code 1 Stop. make: stopped in /usr/local/src/nxlog-ce-2.8.1248    

Looks like that's now disabled in openssl. Replacing SSLv3_method() with TLS_method() should probably do.