Просмотр исходного кода

ssl/tcl: Try to load the library detected at configure-time

Bryan Drewery 2 лет назад
Родитель
Сommit
1aa7ec4ae1
7 измененных файлов с 24 добавлено и 4 удалено
  1. 2 0
      build/autotools/includes/acinclude.m4
  2. 2 0
      configure
  3. 1 0
      doc/UPDATES.md
  4. 3 1
      src/buildinfo.h.in
  5. 7 1
      src/libcrypto.cc
  6. 7 1
      src/libssl.cc
  7. 2 1
      src/libtcl.cc

+ 2 - 0
build/autotools/includes/acinclude.m4

@@ -628,6 +628,7 @@ else
   AC_MSG_RESULT([not found])
   AC_MSG_ERROR([OpenSSL is required.], 1)
 fi
+SSL_LIBDIR="${cf_openssl_basedir}/lib"
 unset cf_openssl_basedir
 
 save_CXX="$CXX"
@@ -670,6 +671,7 @@ AC_CHECK_LIB(crypto, AES_encrypt,
 CXX="$save_CXX"
 LIBS="$save_LIBS"
 
+AC_SUBST(SSL_LIBDIR)
 AC_SUBST(SSL_INCLUDES)
 AC_SUBST(SSL_LIBS)
 AC_DEFINE_UNQUOTED(EGG_SSL_EXT, 1, [Defines whether or not SSL is supported])dnl

+ 2 - 0
configure

@@ -635,6 +635,7 @@ TCLINCFN
 TCL_INCLUDES
 TCLLIBFN
 TCLLIB
+SSL_LIBDIR
 SSL_LIBS
 SSL_INCLUDES
 LIBELF_LIB
@@ -6128,6 +6129,7 @@ else
 $as_echo "not found" >&6; }
   as_fn_error 1 "OpenSSL is required." "$LINENO" 5
 fi
+SSL_LIBDIR="${cf_openssl_basedir}/lib"
 unset cf_openssl_basedir
 
 save_CXX="$CXX"

+ 1 - 0
doc/UPDATES.md

@@ -1,6 +1,7 @@
 # maint
   * Fix OpenSSL 3 build.
   * Fix LibreSSL 3.5+ build.
+  * Prefer OpenSSL/TCL found at configure-time.
 
 # 1.4.10
   * Clear FiSH keys when a client quits.

+ 3 - 1
src/buildinfo.h.in

@@ -1,3 +1,5 @@
 #define BUILD_OS "@BUILDOS@"
 #define BUILD_ARCH "@BUILDARCH@"
-
+#define SSL_LIBDIR "@SSL_LIBDIR@"
+#define TCLLIB "@TCLLIB@"
+#define TCLLIBFN "@TCLLIBFN@"

+ 7 - 1
src/libcrypto.cc

@@ -25,6 +25,7 @@
  */
 
 
+#include "buildinfo.h"
 #include "common.h"
 #include "main.h"
 #include "dl.h"
@@ -108,7 +109,12 @@ int load_libcrypto() {
 
   sdprintf("Loading libcrypto");
 
-  bd::Array<bd::String> libs_list(bd::String("libcrypto.so." OPENSSL_SHLIB_VERSION_STR " "
+  bd::Array<bd::String> libs_list(bd::String(
+#if !defined(LIBRESSL_VERSION_NUMBER)
+      SSL_LIBDIR "/libcrypto.so." OPENSSL_SHLIB_VERSION_STR " "
+      "libcrypto.so." OPENSSL_SHLIB_VERSION_STR " "
+#endif
+      SSL_LIBDIR "/libcrypto.so "
       "libcrypto.so "
       "libcrypto.so.12 "
       "libcrypto.so.30 "

+ 7 - 1
src/libssl.cc

@@ -25,6 +25,7 @@
  */
 
 
+#include "buildinfo.h"
 #include "common.h"
 #include "main.h"
 #include "dl.h"
@@ -101,7 +102,12 @@ int load_libssl() {
 
   sdprintf("Loading libssl");
 
-  bd::Array<bd::String> libs_list(bd::String("libssl.so." OPENSSL_SHLIB_VERSION_STR " "
+  bd::Array<bd::String> libs_list(bd::String(
+#if !defined(LIBRESSL_VERSION_NUMBER)
+      SSL_LIBDIR "/libssl.so." OPENSSL_SHLIB_VERSION_STR " "
+      "libssl.so." OPENSSL_SHLIB_VERSION_STR " "
+#endif
+      SSL_LIBDIR "/libssl.so "
       "libssl.so "
       "libssl.so.12 "
       "libssl.so.30 "

+ 2 - 1
src/libtcl.cc

@@ -24,7 +24,7 @@
  *
  */
 
-
+#include "buildinfo.h"
 #include "common.h"
 #include "main.h"
 #include "dl.h"
@@ -68,6 +68,7 @@ int load_libtcl() {
 #endif
 
   bd::Array<bd::String> libs_list(bd::String(
+      TCLLIB "/lib" TCLLIBFN " "
       "libtcl.so "
       "libtcl83.so "
       "libtcl8.3.so "