From 4d024a6c8b21b82e0cfa17e9ea56452ad7d5fb74 Mon Sep 17 00:00:00 2001 From: Wu Zhao Date: Mon, 25 Dec 2023 11:06:41 +0800 Subject: [PATCH] [!] fix build errors in xqc_build.sh (#391) * [!] fix xquic auto test error on high versions of CentOS * [=] always output xquic static library no matter if SSL_DYNAMIC is defined * [=] rename crypto/hkdf files under babassl/boringssl directory to differ from public files --- CMakeLists.txt | 24 +++++++++---------- cmake/CMakeLists.txt | 12 +++++----- cmake/FindLibEvent.cmake | 7 ++++++ include/xquic/xqc_configure.h | 5 ++-- scripts/xquic_test.sh | 18 +++++++------- .../{xqc_crypto.c => xqc_crypto_impl.c} | 0 .../babassl/{xqc_hkdf.c => xqc_hkdf_impl.c} | 0 .../{xqc_ssl_if.c => xqc_ssl_if_impl.c} | 0 .../{xqc_crypto.c => xqc_crypto_impl.c} | 0 .../boringssl/{xqc_hkdf.c => xqc_hkdf_impl.c} | 0 .../{xqc_ssl_if.c => xqc_ssl_if_impl.c} | 0 xqc_configure.h.in | 3 ++- 12 files changed, 38 insertions(+), 31 deletions(-) rename src/tls/babassl/{xqc_crypto.c => xqc_crypto_impl.c} (100%) rename src/tls/babassl/{xqc_hkdf.c => xqc_hkdf_impl.c} (100%) rename src/tls/babassl/{xqc_ssl_if.c => xqc_ssl_if_impl.c} (100%) rename src/tls/boringssl/{xqc_crypto.c => xqc_crypto_impl.c} (100%) rename src/tls/boringssl/{xqc_hkdf.c => xqc_hkdf_impl.c} (100%) rename src/tls/boringssl/{xqc_ssl_if.c => xqc_ssl_if_impl.c} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index c785c11dd..ec8c5d60b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -251,17 +251,17 @@ if(${SSL_TYPE} MATCHES "boringssl") set( TLS_SOURCE ${TLS_SOURCE} - "src/tls/boringssl/xqc_hkdf.c" - "src/tls/boringssl/xqc_crypto.c" - "src/tls/boringssl/xqc_ssl_if.c" + "src/tls/boringssl/xqc_hkdf_impl.c" + "src/tls/boringssl/xqc_crypto_impl.c" + "src/tls/boringssl/xqc_ssl_if_impl.c" ) elseif(${SSL_TYPE} MATCHES "babassl") set( TLS_SOURCE ${TLS_SOURCE} - "src/tls/babassl/xqc_hkdf.c" - "src/tls/babassl/xqc_crypto.c" - "src/tls/babassl/xqc_ssl_if.c" + "src/tls/babassl/xqc_hkdf_impl.c" + "src/tls/babassl/xqc_crypto_impl.c" + "src/tls/babassl/xqc_ssl_if_impl.c" ) endif() @@ -340,13 +340,11 @@ set ( # target -if(NOT SSL_DYNAMIC) - add_library( - xquic-static - STATIC - ${XQC_SOURCE} - ) -endif() +add_library( + xquic-static + STATIC + ${XQC_SOURCE} +) add_library( xquic diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index cc90324b4..b0ccef844 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -218,17 +218,17 @@ if(${SSL_TYPE} MATCHES "boringssl") set( TLS_SOURCE ${TLS_SOURCE} - "src/tls/boringssl/xqc_hkdf.c" - "src/tls/boringssl/xqc_crypto.c" - "src/tls/boringssl/xqc_ssl_if.c" + "src/tls/boringssl/xqc_hkdf_impl.c" + "src/tls/boringssl/xqc_crypto_impl.c" + "src/tls/boringssl/xqc_ssl_if_impl.c" ) elseif(${SSL_TYPE} MATCHES "babassl") set( TLS_SOURCE ${TLS_SOURCE} - "src/tls/babassl/xqc_hkdf.c" - "src/tls/babassl/xqc_crypto.c" - "src/tls/babassl/xqc_ssl_if.c" + "src/tls/babassl/xqc_hkdf_impl.c" + "src/tls/babassl/xqc_crypto_impl.c" + "src/tls/babassl/xqc_ssl_if_impl.c" ) endif() diff --git a/cmake/FindLibEvent.cmake b/cmake/FindLibEvent.cmake index 21b16b80f..7b2deebde 100644 --- a/cmake/FindLibEvent.cmake +++ b/cmake/FindLibEvent.cmake @@ -29,6 +29,13 @@ if(LIBEVENT_INCLUDE_DIR) "^#define[ ]+[EVENT__VERSION|_EVENT_VERSION]+[ ]+\"([^\"]+)\"") file(STRINGS "${LIBEVENT_INCLUDE_DIR}/event2/event-config.h" LIBEVENT_VERSION REGEX "${_version_regex}") + + # if event-config.h not found, try find event-config-64.h + if(NOT LIBEVENT_VERSION) + file(STRINGS "${LIBEVENT_INCLUDE_DIR}/event2/event-config-64.h" + LIBEVENT_VERSION REGEX "${_version_regex}") + endif() + string(REGEX REPLACE "${_version_regex}" "\\1" LIBEVENT_VERSION "${LIBEVENT_VERSION}") unset(_version_regex) diff --git a/include/xquic/xqc_configure.h b/include/xquic/xqc_configure.h index 38226db37..fa13e49b4 100644 --- a/include/xquic/xqc_configure.h +++ b/include/xquic/xqc_configure.h @@ -2,9 +2,10 @@ #define xquic_VERSION_MAJOR 0 #define xquic_VERSION_MINOR 1 -#define XQC_ENABLE_BBR2 -#define XQC_ENABLE_RENO +/* #undef XQC_ENABLE_BBR2 */ +/* #undef XQC_ENABLE_RENO */ /* #undef XQC_ENABLE_COPA */ /* #undef XQC_ENABLE_UNLIMITED */ /* #undef XQC_ENABLE_MP_INTEROP */ /* #undef XQC_NO_PID_PACKET_PROCESS */ +/* #undef XQC_PROTECT_POOL_MEM */ diff --git a/scripts/xquic_test.sh b/scripts/xquic_test.sh index acb5c7c32..0739278b7 100644 --- a/scripts/xquic_test.sh +++ b/scripts/xquic_test.sh @@ -26,32 +26,28 @@ function install_go() { } function build_babassl() { - git clone https://github.com/BabaSSL/BabaSSL.git ../third_party/babassl + git clone https://github.com/Tongsuo-Project/Tongsuo.git ../third_party/babassl cd ../third_party/babassl/ - ./config --prefix=/usr/local/babassl + ./config --prefix=/usr/local/babassl --api=1.1.1 no-deprecated make -j SSL_PATH_STR="${PWD}" - SSL_INC_PATH_STR="${PWD}/include" - SSL_LIB_PATH_STR="${PWD}/libssl.a;${PWD}/libcrypto.a" cd - } function build_boringssl() { git clone https://github.com/google/boringssl.git ../third_party/boringssl mkdir -p ../third_party/boringssl/build - cd ../third_party/boringssl//build + cd ../third_party/boringssl/build cmake -DBUILD_SHARED_LIBS=0 -DCMAKE_C_FLAGS="-fPIC" -DCMAKE_CXX_FLAGS="-fPIC" .. make ssl crypto cd .. SSL_PATH_STR="${PWD}" - SSL_INC_PATH_STR="${PWD}/include" - SSL_LIB_PATH_STR="${PWD}/build/ssl/libssl.a;${PWD}/build/crypto/libcrypto.a" cd ../../build/ } function do_compile() { rm -f CMakeCache.txt - if [[ $1 == "XQC_OPENSSL_IS_BORINGSSL" ]]; then + if [[ $1 == "boringssl" ]]; then build_boringssl SSL_TYPE_STR="boringssl" @@ -61,9 +57,13 @@ function do_compile() { fi #turn on Code Coverage - cmake -DGCOV=on -DCMAKE_BUILD_TYPE=Debug -DXQC_ENABLE_TESTING=1 -DXQC_PRINT_SECRET=1 -DXQC_SUPPORT_SENDMMSG_BUILD=1 -DXQC_ENABLE_EVENT_LOG=1 -DXQC_ENABLE_BBR2=1 -DXQC_ENABLE_RENO=1 -DSSL_TYPE=${SSL_TYPE_STR} -DSSL_PATH=${SSL_PATH_STR} -DSSL_INC_PATH=${SSL_INC_PATH_STR} -DSSL_LIB_PATH=${SSL_LIB_PATH_STR} .. + cmake -DGCOV=on -DCMAKE_BUILD_TYPE=Debug -DXQC_ENABLE_TESTING=1 -DXQC_PRINT_SECRET=1 -DXQC_SUPPORT_SENDMMSG_BUILD=1 -DXQC_ENABLE_EVENT_LOG=1 -DXQC_ENABLE_BBR2=1 -DXQC_ENABLE_RENO=1 -DSSL_TYPE=${SSL_TYPE_STR} -DSSL_PATH=${SSL_PATH_STR} .. make -j + if [ $? -ne 0 ]; then + echo "cmake failed" + exit 1 + fi rm -f CMakeCache.txt } diff --git a/src/tls/babassl/xqc_crypto.c b/src/tls/babassl/xqc_crypto_impl.c similarity index 100% rename from src/tls/babassl/xqc_crypto.c rename to src/tls/babassl/xqc_crypto_impl.c diff --git a/src/tls/babassl/xqc_hkdf.c b/src/tls/babassl/xqc_hkdf_impl.c similarity index 100% rename from src/tls/babassl/xqc_hkdf.c rename to src/tls/babassl/xqc_hkdf_impl.c diff --git a/src/tls/babassl/xqc_ssl_if.c b/src/tls/babassl/xqc_ssl_if_impl.c similarity index 100% rename from src/tls/babassl/xqc_ssl_if.c rename to src/tls/babassl/xqc_ssl_if_impl.c diff --git a/src/tls/boringssl/xqc_crypto.c b/src/tls/boringssl/xqc_crypto_impl.c similarity index 100% rename from src/tls/boringssl/xqc_crypto.c rename to src/tls/boringssl/xqc_crypto_impl.c diff --git a/src/tls/boringssl/xqc_hkdf.c b/src/tls/boringssl/xqc_hkdf_impl.c similarity index 100% rename from src/tls/boringssl/xqc_hkdf.c rename to src/tls/boringssl/xqc_hkdf_impl.c diff --git a/src/tls/boringssl/xqc_ssl_if.c b/src/tls/boringssl/xqc_ssl_if_impl.c similarity index 100% rename from src/tls/boringssl/xqc_ssl_if.c rename to src/tls/boringssl/xqc_ssl_if_impl.c diff --git a/xqc_configure.h.in b/xqc_configure.h.in index 05d7691cf..6479bfaac 100644 --- a/xqc_configure.h.in +++ b/xqc_configure.h.in @@ -7,4 +7,5 @@ #cmakedefine XQC_ENABLE_COPA #cmakedefine XQC_ENABLE_UNLIMITED #cmakedefine XQC_ENABLE_MP_INTEROP -#cmakedefine XQC_NO_PID_PACKET_PROCESS \ No newline at end of file +#cmakedefine XQC_NO_PID_PACKET_PROCESS +#cmakedefine XQC_PROTECT_POOL_MEM \ No newline at end of file