Kaynağa Gözat

Merge branch 'maint'

* maint:
  Disable asan
  Fix build on OpenSSL 3
  Update .gitmodules

Conflicts:
	src/libcrypto.cc
	src/libssl.cc
Bryan Drewery 2 yıl önce
ebeveyn
işleme
ffd0ca1e2b

+ 5 - 5
build/autotools/configure.ac

@@ -48,11 +48,11 @@ CXX_FLAG_CHECK([DEBCXXFLAGS], [-Og], [Og])
 if [[ "${ax_cv_prog_cc_Og}" = "no" ]]; then
   DEBCXXFLAGS="${DEBCXXFLAGS} -O0"
 fi
-CXX_FLAG_CHECK_LINK([DEBCXXFLAGS], [-fsanitize=address], [fsanitize_address])
-if [[ "${ax_cv_prog_cc_fsanitize_address}" = "yes" ]]; then
-  DEBLDFLAGS="${DEBLDFLAGS} -fsanitize=address"
-  DEBCXXFLAGS="${DEBCXXFLAGS} -D__SANITIZE_ADDRESS__"
-fi
+#CXX_FLAG_CHECK_LINK([DEBCXXFLAGS], [-fsanitize=address], [fsanitize_address])
+#if [[ "${ax_cv_prog_cc_fsanitize_address}" = "yes" ]]; then
+#  DEBLDFLAGS="${DEBLDFLAGS} -fsanitize=address"
+#  DEBCXXFLAGS="${DEBCXXFLAGS} -D__SANITIZE_ADDRESS__"
+#fi
 CXX_FLAG_CHECK([DEBCXXFLAGS], [-fstack-protector-all], [stackprotectorall])
 CXX_FLAG_CHECK([DEBCXXFLAGS], [-Wsuggest-attribute=pure -Wsuggest-attribute=const], [wsuggest_attribute])
 CXX_FLAG_CHECK([DEBCXXFLAGS], [-Wconditional-uninitialized], [w_conditional_uninitialized])

+ 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 - 63
configure

@@ -4637,68 +4637,6 @@ if [ "${ax_cv_prog_cc_Og}" = "no" ]; then
   DEBCXXFLAGS="${DEBCXXFLAGS} -O0"
 fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker supports -fsanitize=address" >&5
-$as_echo_n "checking whether the linker supports -fsanitize=address... " >&6; }
-if ${ax_cv_prog_cc_fsanitize_address+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-    ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-    ac_saved_flags="$CXXFLAGS"
-    CXXFLAGS="-Werror -fsanitize=address"
-    cat build/confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end build/confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  ax_cv_prog_cc_fsanitize_address="yes"
-else
-  ax_cv_prog_cc_fsanitize_address="no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    CXXFLAGS="$ac_saved_flags"
-    ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_prog_cc_fsanitize_address" >&5
-$as_echo "$ax_cv_prog_cc_fsanitize_address" >&6; }
-
-  if [ "$ax_cv_prog_cc_fsanitize_address" = "yes" ]; then
-    DEBCXXFLAGS="$DEBCXXFLAGS -fsanitize=address"
-  elif [ -n "" ]; then
-      cat << 'EOF' >&2
-configure: error:
-
-  Your OS or C++ compiler does not support -fsanitize=address.
-  This compile flag is required.
-
-EOF
-    exit 1
-  fi
-
-if [ "${ax_cv_prog_cc_fsanitize_address}" = "yes" ]; then
-  DEBLDFLAGS="${DEBLDFLAGS} -fsanitize=address"
-  DEBCXXFLAGS="${DEBCXXFLAGS} -D__SANITIZE_ADDRESS__"
-fi
-
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler understands -fstack-protector-all" >&5
 $as_echo_n "checking whether the compiler understands -fstack-protector-all... " >&6; }
 if ${ax_cv_prog_cc_stackprotectorall+:} false; then :
@@ -6911,7 +6849,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");
 
-  const auto& 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(' '));
+  const auto& 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 (const auto& lib : libs_list) {
     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");
 
-  const auto& 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(' '));
+  const auto& 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 (const auto& lib : libs_list) {
     dlerror(); // Clear Errors