From e98f4c4a5edef3738aa72dae10285d10c3c4d10e Mon Sep 17 00:00:00 2001 From: Adonis Ling Date: Sat, 13 May 2023 22:32:29 +0800 Subject: [PATCH] [fix](be) BE UT built against Clang-16 failed (#19610) If we use Clang-16 to build the third-party libraries and build doris_be_test against them, we can not run doris_be_test successfully. Some errors with BRPC occur. I tested this on Linux (x86_64) and macOS (x86_64/arm64), these errors always raised. --- thirdparty/download-thirdparty.sh | 6 +++-- thirdparty/patches/brpc-1.5.0-clang16.patch | 22 +++++++++++++++++++ ...4.0-gcc13.patch => brpc-1.5.0-gcc13.patch} | 0 thirdparty/vars.sh | 8 +++---- 4 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 thirdparty/patches/brpc-1.5.0-clang16.patch rename thirdparty/patches/{brpc-1.4.0-gcc13.patch => brpc-1.5.0-gcc13.patch} (100%) diff --git a/thirdparty/download-thirdparty.sh b/thirdparty/download-thirdparty.sh index 77f3439c41..0107959200 100755 --- a/thirdparty/download-thirdparty.sh +++ b/thirdparty/download-thirdparty.sh @@ -401,10 +401,12 @@ if [[ "${SIMDJSON_SOURCE}" = "simdjson-3.0.1" ]]; then fi echo "Finished patching ${SIMDJSON_SOURCE}" -if [[ "${BRPC_SOURCE}" == 'brpc-1.4.0' ]]; then +if [[ "${BRPC_SOURCE}" == 'brpc-1.5.0' ]]; then cd "${TP_SOURCE_DIR}/${BRPC_SOURCE}" if [[ ! -f "${PATCHED_MARK}" ]]; then - patch -p1 <"${TP_PATCH_DIR}/brpc-1.4.0-gcc13.patch" + for patch_file in "${TP_PATCH_DIR}"/brpc-*; do + patch -p1 <"${patch_file}" + done touch "${PATCHED_MARK}" fi cd - diff --git a/thirdparty/patches/brpc-1.5.0-clang16.patch b/thirdparty/patches/brpc-1.5.0-clang16.patch new file mode 100644 index 0000000000..42bb5bc5c9 --- /dev/null +++ b/thirdparty/patches/brpc-1.5.0-clang16.patch @@ -0,0 +1,22 @@ +diff --git a/src/bthread/task_group.cpp b/src/bthread/task_group.cpp +index 6f5a4abd..e3aef91c 100644 +--- a/src/bthread/task_group.cpp ++++ b/src/bthread/task_group.cpp +@@ -248,7 +248,7 @@ int TaskGroup::init(size_t runqueue_capacity) { + return 0; + } + +-#if defined(__linux__) && defined(__aarch64__) && defined(__clang__) ++#if defined(__clang__) + __attribute__((optnone)) + #endif + void TaskGroup::task_runner(intptr_t skip_remained) { +@@ -570,7 +570,7 @@ void TaskGroup::sched(TaskGroup** pg) { + sched_to(pg, next_tid); + } + +-#if defined(__linux__) && defined(__aarch64__) && defined(__clang__) ++#if defined(__clang__) + __attribute__((optnone)) + #endif + void TaskGroup::sched_to(TaskGroup** pg, TaskMeta* next_meta) { diff --git a/thirdparty/patches/brpc-1.4.0-gcc13.patch b/thirdparty/patches/brpc-1.5.0-gcc13.patch similarity index 100% rename from thirdparty/patches/brpc-1.4.0-gcc13.patch rename to thirdparty/patches/brpc-1.5.0-gcc13.patch diff --git a/thirdparty/vars.sh b/thirdparty/vars.sh index f7560e7ab4..fd8540278e 100644 --- a/thirdparty/vars.sh +++ b/thirdparty/vars.sh @@ -203,10 +203,10 @@ LEVELDB_SOURCE=leveldb-1.23 LEVELDB_MD5SUM="afbde776fb8760312009963f09a586c7" # brpc -BRPC_DOWNLOAD="https://github.com/apache/brpc/archive/refs/tags/1.4.0.tar.gz" -BRPC_NAME="brpc-1.4.0.tar.gz" -BRPC_SOURCE="brpc-1.4.0" -BRPC_MD5SUM="6af9d50822c33a3abc56a1ec0af0e0bc" +BRPC_DOWNLOAD="https://github.com/apache/brpc/archive/refs/tags/1.5.0.tar.gz" +BRPC_NAME="brpc-1.5.0.tar.gz" +BRPC_SOURCE="brpc-1.5.0" +BRPC_MD5SUM="d1b6d9b615292dfa5cefa227822c5996" # rocksdb ROCKSDB_DOWNLOAD="https://github.com/facebook/rocksdb/archive/v5.14.2.tar.gz"