You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@doris.apache.org by ad...@apache.org on 2023/04/24 13:46:19 UTC

[doris] branch branch-1.2-lts updated: [chore](macOS) Use LLVM Clang by default (#19007)

This is an automated email from the ASF dual-hosted git repository.

adonisling pushed a commit to branch branch-1.2-lts
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/branch-1.2-lts by this push:
     new cf16cdf831 [chore](macOS) Use LLVM Clang by default (#19007)
cf16cdf831 is described below

commit cf16cdf831f1124f2766d3a58a5907bc1e527ac5
Author: Adonis Ling <ad...@gmail.com>
AuthorDate: Mon Apr 24 21:46:10 2023 +0800

    [chore](macOS) Use LLVM Clang by default (#19007)
    
    Backport:
    1. [chore](macOS) Use LLVM Clang by default #17292
    2. [chore](workflow) Fix the workflow BE UT (macOS) #17403
    3. [chore](macOS) Disable detect_container_overflow at BE startup #17514
    4. [chore](macOS) Specify the version of LLVM for Homebrew to install it #17945
---
 .github/workflows/be-ut-mac.yml                           | 3 ++-
 .github/workflows/build-thirdparty.yml                    | 3 ++-
 be/CMakeLists.txt                                         | 3 +++
 be/test/util/threadpool_test.cpp                          | 4 +++-
 bin/start_be.sh                                           | 2 +-
 docs/en/docs/install/source-install/compilation-mac.md    | 7 +++----
 docs/zh-CN/docs/install/source-install/compilation-mac.md | 5 ++---
 env.sh                                                    | 3 ++-
 run-be-ut.sh                                              | 2 +-
 9 files changed, 19 insertions(+), 13 deletions(-)

diff --git a/.github/workflows/be-ut-mac.yml b/.github/workflows/be-ut-mac.yml
index 3307ec11b8..5641cab7f8 100644
--- a/.github/workflows/be-ut-mac.yml
+++ b/.github/workflows/be-ut-mac.yml
@@ -67,7 +67,7 @@ jobs:
             'texinfo'
             'coreutils'
             'gnu-getopt'
-            'python'
+            'python@3'
             'cmake'
             'ninja'
             'ccache'
@@ -79,6 +79,7 @@ jobs:
             'openjdk@11'
             'maven'
             'node'
+            'llvm@15'
           )
           brew install "${cellars[@]}"
 
diff --git a/.github/workflows/build-thirdparty.yml b/.github/workflows/build-thirdparty.yml
index 3f6e19dd13..5c4b8848e4 100644
--- a/.github/workflows/build-thirdparty.yml
+++ b/.github/workflows/build-thirdparty.yml
@@ -134,7 +134,7 @@ jobs:
             'texinfo'
             'coreutils'
             'gnu-getopt'
-            'python'
+            'python@3'
             'cmake'
             'ninja'
             'ccache'
@@ -146,6 +146,7 @@ jobs:
             'openjdk@11'
             'maven'
             'node'
+            'llvm@15'
           )
 
           brew install "${packages[@]}"
diff --git a/be/CMakeLists.txt b/be/CMakeLists.txt
index b3ad886910..7e77a46a99 100644
--- a/be/CMakeLists.txt
+++ b/be/CMakeLists.txt
@@ -885,6 +885,9 @@ if (${MAKE_TEST} STREQUAL "ON")
         SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgcov")
     endif()
     add_definitions(-DBE_TEST)
+    if (ARCH_ARM)
+        add_compile_options(-ffp-contract=off)
+    endif()
 endif ()
 
 add_subdirectory(${SRC_DIR}/agent)
diff --git a/be/test/util/threadpool_test.cpp b/be/test/util/threadpool_test.cpp
index 7ce870a634..f6ecaf3dc3 100644
--- a/be/test/util/threadpool_test.cpp
+++ b/be/test/util/threadpool_test.cpp
@@ -331,7 +331,9 @@ TEST_F(ThreadPoolTest, TestDeadlocks) {
 #ifdef __APPLE__
     const char* death_msg =
             "_ZNSt3__1L8__invokeIRNS_6__bindIMN5doris10ThreadPoolEFvvEJPS3_EEEJEEEDTclscT_fp_"
-            "spscT0_fp0_EEOS9_DpOSA_";
+            "spscT0_fp0_EEOS9_DpOSA_|_ZNSt3__18__invokeB6v15007IRNS_6__"
+            "bindIMN5doris10ThreadPoolEFvvEJPS3_EEEJEEEDTclclsr3stdE7declvalIT_"
+            "EEspclsr3stdE7declvalIT0_EEEEOS9_DpOSA_";
 #else
     const char* death_msg =
             "_ZNSt5_BindIFMN5doris10ThreadPoolEFvvEPS1_EE6__callIvJEJLm0EEEET_OSt5tupleIJDpT0_"
diff --git a/bin/start_be.sh b/bin/start_be.sh
index 231986940e..dcacbb7af3 100755
--- a/bin/start_be.sh
+++ b/bin/start_be.sh
@@ -208,7 +208,7 @@ if [[ "${RUN_IN_AWS}" -eq 0 ]]; then
 fi
 
 ## set asan and ubsan env to generate core file
-export ASAN_OPTIONS=symbolize=1:abort_on_error=1:disable_coredump=0:unmap_shadow_on_exit=1
+export ASAN_OPTIONS=symbolize=1:abort_on_error=1:disable_coredump=0:unmap_shadow_on_exit=1:detect_container_overflow=0
 export UBSAN_OPTIONS=print_stacktrace=1
 
 ## set TCMALLOC_HEAP_LIMIT_MB to limit memory used by tcmalloc
diff --git a/docs/en/docs/install/source-install/compilation-mac.md b/docs/en/docs/install/source-install/compilation-mac.md
index 810d869e19..88394c38d0 100644
--- a/docs/en/docs/install/source-install/compilation-mac.md
+++ b/docs/en/docs/install/source-install/compilation-mac.md
@@ -30,16 +30,15 @@ This post introduces how to compile from source on macOS (both x86_64 and arm64)
 
 ## Prerequisites
 
-1. macOS 12 (Monterey) or newer(_**both Intel chip and Apple Silicon chip are supported**_)
-2. Apple Clang 13 or newer(the latest version is recommended)
-3. [Homebrew](https://brew.sh/)
+1. macOS 12 (Monterey) or newer(_**both Intel chip and Apple Silicon chips are supported**_)
+2. [Homebrew](https://brew.sh/)
 
 ## Steps
 
 1. Use [Homebrew](https://brew.sh/) to install tools
     ```shell
     brew install automake autoconf libtool pkg-config texinfo coreutils gnu-getopt \
-        python cmake ninja ccache bison byacc gettext wget pcre maven openjdk@11 npm
+        python@3 cmake ninja ccache bison byacc gettext wget pcre maven llvm@15 openjdk@11 npm
     ```
 
 2. Compile from source
diff --git a/docs/zh-CN/docs/install/source-install/compilation-mac.md b/docs/zh-CN/docs/install/source-install/compilation-mac.md
index 3e679d355a..a6393691ff 100644
--- a/docs/zh-CN/docs/install/source-install/compilation-mac.md
+++ b/docs/zh-CN/docs/install/source-install/compilation-mac.md
@@ -31,15 +31,14 @@ under the License.
 ## 环境要求
 
 1. macOS 12 (Monterey) 及以上(_**Intel和Apple Silicon均支持**_)
-2. Apple Clang 13及以上(最好使用最新版本)
-3. [Homebrew](https://brew.sh/)
+2. [Homebrew](https://brew.sh/)
 
 ## 编译步骤
 
 1. 使用[Homebrew](https://brew.sh/)安装依赖
     ```shell
     brew install automake autoconf libtool pkg-config texinfo coreutils gnu-getopt \
-        python cmake ninja ccache bison byacc gettext wget pcre maven openjdk@11 npm
+        python@3 cmake ninja ccache bison byacc gettext wget pcre maven llvm@15 openjdk@11 npm
     ```
 
 2. 编译源码
diff --git a/env.sh b/env.sh
index 171a868468..4d5f063f15 100755
--- a/env.sh
+++ b/env.sh
@@ -51,7 +51,7 @@ CELLARS=(
     texinfo
     coreutils
     gnu-getopt
-    python
+    python@3
     cmake
     ninja
     ccache
@@ -61,6 +61,7 @@ CELLARS=(
     wget
     pcre
     maven
+    llvm@15
 )
 for cellar in "\${CELLARS[@]}"; do
     EXPORT_CELLARS="\${HOMEBREW_REPO_PREFIX}/opt/\${cellar}/bin:\${EXPORT_CELLARS}"
diff --git a/run-be-ut.sh b/run-be-ut.sh
index 91cf61148a..18e9d078b7 100755
--- a/run-be-ut.sh
+++ b/run-be-ut.sh
@@ -274,7 +274,7 @@ mkdir "${UT_TMP_DIR}"
 touch "${UT_TMP_DIR}/tmp_file"
 
 # set asan and ubsan env to generate core file
-export ASAN_OPTIONS=symbolize=1:abort_on_error=1:disable_coredump=0:unmap_shadow_on_exit=1
+export ASAN_OPTIONS=symbolize=1:abort_on_error=1:disable_coredump=0:unmap_shadow_on_exit=1:detect_container_overflow=0
 export UBSAN_OPTIONS=print_stacktrace=1
 
 # find all executable test files


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@doris.apache.org
For additional commands, e-mail: commits-help@doris.apache.org