فهرست منبع

Fix build on OpenSSL 3

Bryan Drewery 2 سال پیش
والد
کامیت
e5ba78da08
5فایلهای تغییر یافته به همراه20 افزوده شده و 4 حذف شده
  1. 1 1
      build/autotools/includes/acinclude.m4
  2. 1 1
      configure
  3. 4 0
      src/common.h
  4. 7 1
      src/libcrypto.cc
  5. 7 1
      src/libssl.cc

+ 1 - 1
build/autotools/includes/acinclude.m4

@@ -607,7 +607,7 @@ fi
 dnl Now check cf_openssl_found to see if we found anything.
 if test ! -z "$cf_openssl_basedir"; then
   if test -f "${cf_openssl_basedir}/include/openssl/opensslv.h" && test -f "${cf_openssl_basedir}/lib/libssl.so"; then
-    SSL_INCLUDES="-I${cf_openssl_basedir}/include"
+    SSL_INCLUDES="-I${cf_openssl_basedir}/include -DOPENSSL_API_COMPAT=0x10000000L"
     SSL_LIBS="-L${cf_openssl_basedir}/lib"
   else
     dnl OpenSSL wasn't found in the directory specified.

+ 1 - 1
configure

@@ -6170,7 +6170,7 @@ else
 fi
 if test ! -z "$cf_openssl_basedir"; then
   if test -f "${cf_openssl_basedir}/include/openssl/opensslv.h" && test -f "${cf_openssl_basedir}/lib/libssl.so"; then
-    SSL_INCLUDES="-I${cf_openssl_basedir}/include"
+    SSL_INCLUDES="-I${cf_openssl_basedir}/include -DOPENSSL_API_COMPAT=0x10000000L"
     SSL_LIBS="-L${cf_openssl_basedir}/lib"
   else
         cf_openssl_basedir=""

+ 4 - 0
src/common.h

@@ -100,6 +100,10 @@
 #define unlikely(x)  (x)
 #endif
 
+#ifndef STRINGIFY
+#define STRINGIFY(x) #x
+#endif
+
 #define lengthof(x) (sizeof(x)/sizeof(x[0]))
 
 #endif				/* _COMMON_H */

+ 7 - 1
src/libcrypto.cc

@@ -34,6 +34,12 @@
 #include "libcrypto.h"
 #include ".defs/libcrypto_defs.cc"
 
+#ifndef OPENSSL_SHLIB_VERSION
+#define OPENSSL_SHLIB_VERSION_STR SHLIB_VERSION_NUMBER
+#else
+#define OPENSSL_SHLIB_VERSION_STR STRINGIFY(OPENSSL_SHLIB_VERSION)
+#endif
+
 void *libcrypto_handle = NULL;
 static bd::Array<bd::String> my_symbols;
 
@@ -101,7 +107,7 @@ int load_libcrypto() {
 
   sdprintf("Loading libcrypto");
 
-  bd::Array<bd::String> libs_list(bd::String("libcrypto.so." SHLIB_VERSION_NUMBER " libcrypto.so libcrypto.so.1.1 libcrypto.so.1.0.0 libcrypto.so.0.9.8 libcrypto.so.10 libcrypto.so.9 libcrypto.so.8 libcrypto.so.7 libcrypto.so.6").split(' '));
+  bd::Array<bd::String> libs_list(bd::String("libcrypto.so." OPENSSL_SHLIB_VERSION_STR " libcrypto.so libcrypto.so.1.1 libcrypto.so.1.0.0 libcrypto.so.0.9.8 libcrypto.so.10 libcrypto.so.9 libcrypto.so.8 libcrypto.so.7 libcrypto.so.6").split(' '));
 
   for (size_t i = 0; i < libs_list.length(); ++i) {
     dlerror(); // Clear Errors

+ 7 - 1
src/libssl.cc

@@ -34,6 +34,12 @@
 #include "libssl.h"
 #include ".defs/libssl_defs.cc"
 
+#ifndef OPENSSL_SHLIB_VERSION
+#define OPENSSL_SHLIB_VERSION_STR SHLIB_VERSION_NUMBER
+#else
+#define OPENSSL_SHLIB_VERSION_STR STRINGIFY(OPENSSL_SHLIB_VERSION)
+#endif
+
 void *libssl_handle = NULL;
 static bd::Array<bd::String> my_symbols;
 
@@ -79,7 +85,7 @@ int load_libssl() {
 
   sdprintf("Loading libssl");
 
-  bd::Array<bd::String> libs_list(bd::String("libssl.so." SHLIB_VERSION_NUMBER " libssl.so libssl.so.1.1 libssl.so.1.0.0 libssl.so.0.9.8 libssl.so.10 libssl.so.9 libssl.so.8 libssl.so.7 libssl.so.6").split(' '));
+  bd::Array<bd::String> libs_list(bd::String("libssl.so." OPENSSL_SHLIB_VERSION_STR " libssl.so libssl.so.1.1 libssl.so.1.0.0 libssl.so.0.9.8 libssl.so.10 libssl.so.9 libssl.so.8 libssl.so.7 libssl.so.6").split(' '));
 
   for (size_t i = 0; i < libs_list.length(); ++i) {
     dlerror(); // Clear Errors