Hi I am trying to install Apache 2.4.23 with openssl version of 1.1.0c , while execute make
command I am getting following error,
I have searched many website but I couldn't see any relevant answer. I have attached error also .Could you please solve my problem?
./configure --prefix=/usr/local/apache2 --with-included-apr --enable-so --with-ssl=/usr/local/openssl --enable-ssl=shared --with-pcre=/usr/local/pcre/
make
ab.o: In function main': /usr/src/httpd-2.4.23/support/ab.c:2417: undefined reference to `CRYPTO_malloc_init'
collect2: error: ld returned 1 exit status
Makefile:73: recipe for target 'ab' failed
make[2]: \*** [ab] Error 1
make[2]: Leaving directory '/usr/src/httpd-2.4.23/support' /usr/src/httpd-2.4.23/build/rules.mk:75: recipe for target 'all-recursive' failed
make[1]: \*** [all-recursive] Error 1
make[1]: Leaving directory '/usr/src/httpd-2.4.23/support' /usr/src/httpd-2.4.23/build/rules.mk:75: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
Thanks in Advance
Apache 2.4.23 undefined reference to CRYPTO_malloc_init?
OpenSSL 1.0.2 and earlier provided CRYPTO_malloc_init
:
openssl-1.0.2h$ grep -R CRYPTO_malloc_init *
apps/apps.h: do { do_pipe_sig(); CRYPTO_malloc_init(); \
apps/apps.h: do { do_pipe_sig(); CRYPTO_malloc_init(); \
crypto/crypto.h:# define CRYPTO_malloc_init() CRYPTO_set_mem_functions(\
crypto/dh/dhtest.c: CRYPTO_malloc_init();
crypto/ecdh/ecdhtest.c: CRYPTO_malloc_init();
...
OpenSSL 1.1.0 and later do not appear to provide CRYPTO_malloc_init
:
openssl-1.1.0b$ grep -R CRYPTO_malloc_init *
openssl-1.1.0b$
Also see Apache Issue 60061 - OpenSSL 1.1.0 support.
There is a patch for httpd 2.4.23 in archlinux user repository which deals with differences between different openssl versions. Among other things it modifies ab.c
in the following way:
@@ -2465,7 +2499,11 @@ int main(int argc, const char * const argv[])
#ifdef RSAREF
R_malloc_init();
#else
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
CRYPTO_malloc_init();
+#else
+ OPENSSL_malloc_init();
+#endif
#endif
SSL_load_error_strings();
SSL_library_init();
I applied the whole patch and the build succeeded.
P.S.: when having problems building popular software from source it might be helpful to look at how your distribution biulds the package (find the PKGFILE/specfile/rules, etc.).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With