mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-10 09:32:06 +00:00
Merge pull request #15239 from ClickHouse/100_percent_lld_11_for_clang_11
Build ClickHouse for release with clang-11
This commit is contained in:
commit
c5df9433f0
@ -513,7 +513,13 @@ endif ()
|
|||||||
macro (add_executable target)
|
macro (add_executable target)
|
||||||
# invoke built-in add_executable
|
# invoke built-in add_executable
|
||||||
# explicitly acquire and interpose malloc symbols by clickhouse_malloc
|
# explicitly acquire and interpose malloc symbols by clickhouse_malloc
|
||||||
|
# if GLIBC_COMPATIBILITY is ON and not sanitizer build, provide memcpy symbol explicitly to neutrialize thinlto's libcall generation.
|
||||||
|
if (GLIBC_COMPATIBILITY AND NOT SANITIZE)
|
||||||
|
_add_executable (${ARGV} $<TARGET_OBJECTS:clickhouse_malloc> $<TARGET_OBJECTS:clickhouse_memcpy>)
|
||||||
|
else ()
|
||||||
_add_executable (${ARGV} $<TARGET_OBJECTS:clickhouse_malloc>)
|
_add_executable (${ARGV} $<TARGET_OBJECTS:clickhouse_malloc>)
|
||||||
|
endif ()
|
||||||
|
|
||||||
get_target_property (type ${target} TYPE)
|
get_target_property (type ${target} TYPE)
|
||||||
if (${type} STREQUAL EXECUTABLE)
|
if (${type} STREQUAL EXECUTABLE)
|
||||||
# operator::new/delete for executables (MemoryTracker stuff)
|
# operator::new/delete for executables (MemoryTracker stuff)
|
||||||
|
@ -27,6 +27,10 @@ if (GLIBC_COMPATIBILITY)
|
|||||||
list(APPEND glibc_compatibility_sources musl/getentropy.c)
|
list(APPEND glibc_compatibility_sources musl/getentropy.c)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
add_library (clickhouse_memcpy OBJECT
|
||||||
|
${ClickHouse_SOURCE_DIR}/contrib/FastMemcpy/memcpy_wrapper.c
|
||||||
|
)
|
||||||
|
|
||||||
# Need to omit frame pointers to match the performance of glibc
|
# Need to omit frame pointers to match the performance of glibc
|
||||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fomit-frame-pointer")
|
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fomit-frame-pointer")
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ endif ()
|
|||||||
if (NOT USE_INTERNAL_LLVM_LIBRARY)
|
if (NOT USE_INTERNAL_LLVM_LIBRARY)
|
||||||
set (LLVM_PATHS "/usr/local/lib/llvm")
|
set (LLVM_PATHS "/usr/local/lib/llvm")
|
||||||
|
|
||||||
foreach(llvm_v 9 8)
|
foreach(llvm_v 10 9 8)
|
||||||
if (NOT LLVM_FOUND)
|
if (NOT LLVM_FOUND)
|
||||||
find_package (LLVM ${llvm_v} CONFIG PATHS ${LLVM_PATHS})
|
find_package (LLVM ${llvm_v} CONFIG PATHS ${LLVM_PATHS})
|
||||||
endif ()
|
endif ()
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#include <FastMemcpy.h>
|
#include "FastMemcpy.h"
|
||||||
|
|
||||||
void * memcpy(void * __restrict destination, const void * __restrict source, size_t size)
|
void * memcpy(void * __restrict destination, const void * __restrict source, size_t size)
|
||||||
{
|
{
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# docker build -t yandex/clickhouse-binary-builder .
|
# docker build -t yandex/clickhouse-binary-builder .
|
||||||
FROM ubuntu:20.04
|
FROM ubuntu:20.04
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive LLVM_VERSION=10
|
ENV DEBIAN_FRONTEND=noninteractive LLVM_VERSION=11
|
||||||
|
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install ca-certificates lsb-release wget gnupg apt-transport-https \
|
&& apt-get install ca-certificates lsb-release wget gnupg apt-transport-https \
|
||||||
@ -11,7 +11,7 @@ RUN apt-get update \
|
|||||||
&& echo "${LLVM_PUBKEY_HASH} /tmp/llvm-snapshot.gpg.key" | sha384sum -c \
|
&& echo "${LLVM_PUBKEY_HASH} /tmp/llvm-snapshot.gpg.key" | sha384sum -c \
|
||||||
&& apt-key add /tmp/llvm-snapshot.gpg.key \
|
&& apt-key add /tmp/llvm-snapshot.gpg.key \
|
||||||
&& export CODENAME="$(lsb_release --codename --short | tr 'A-Z' 'a-z')" \
|
&& export CODENAME="$(lsb_release --codename --short | tr 'A-Z' 'a-z')" \
|
||||||
&& echo "deb [trusted=yes] http://apt.llvm.org/${CODENAME}/ llvm-toolchain-${CODENAME}-11 main" >> \
|
&& echo "deb [trusted=yes] http://apt.llvm.org/${CODENAME}/ llvm-toolchain-${CODENAME}-${LLVM_VERSION} main" >> \
|
||||||
/etc/apt/sources.list
|
/etc/apt/sources.list
|
||||||
|
|
||||||
# initial packages
|
# initial packages
|
||||||
@ -32,10 +32,11 @@ RUN apt-get update \
|
|||||||
curl \
|
curl \
|
||||||
gcc-9 \
|
gcc-9 \
|
||||||
g++-9 \
|
g++-9 \
|
||||||
llvm-${LLVM_VERSION} \
|
clang-10 \
|
||||||
clang-${LLVM_VERSION} \
|
clang-tidy-10 \
|
||||||
lld-${LLVM_VERSION} \
|
lld-10 \
|
||||||
clang-tidy-${LLVM_VERSION} \
|
llvm-10 \
|
||||||
|
llvm-10-dev \
|
||||||
clang-11 \
|
clang-11 \
|
||||||
clang-tidy-11 \
|
clang-tidy-11 \
|
||||||
lld-11 \
|
lld-11 \
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# docker build -t yandex/clickhouse-deb-builder .
|
# docker build -t yandex/clickhouse-deb-builder .
|
||||||
FROM ubuntu:20.04
|
FROM ubuntu:20.04
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive LLVM_VERSION=10
|
ENV DEBIAN_FRONTEND=noninteractive LLVM_VERSION=11
|
||||||
|
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install ca-certificates lsb-release wget gnupg apt-transport-https \
|
&& apt-get install ca-certificates lsb-release wget gnupg apt-transport-https \
|
||||||
@ -11,7 +11,7 @@ RUN apt-get update \
|
|||||||
&& echo "${LLVM_PUBKEY_HASH} /tmp/llvm-snapshot.gpg.key" | sha384sum -c \
|
&& echo "${LLVM_PUBKEY_HASH} /tmp/llvm-snapshot.gpg.key" | sha384sum -c \
|
||||||
&& apt-key add /tmp/llvm-snapshot.gpg.key \
|
&& apt-key add /tmp/llvm-snapshot.gpg.key \
|
||||||
&& export CODENAME="$(lsb_release --codename --short | tr 'A-Z' 'a-z')" \
|
&& export CODENAME="$(lsb_release --codename --short | tr 'A-Z' 'a-z')" \
|
||||||
&& echo "deb [trusted=yes] http://apt.llvm.org/${CODENAME}/ llvm-toolchain-${CODENAME}-11 main" >> \
|
&& echo "deb [trusted=yes] http://apt.llvm.org/${CODENAME}/ llvm-toolchain-${CODENAME}-${LLVM_VERSION} main" >> \
|
||||||
/etc/apt/sources.list
|
/etc/apt/sources.list
|
||||||
|
|
||||||
# initial packages
|
# initial packages
|
||||||
@ -49,15 +49,11 @@ RUN apt-get update \
|
|||||||
lld-11 \
|
lld-11 \
|
||||||
llvm-11 \
|
llvm-11 \
|
||||||
llvm-11-dev \
|
llvm-11-dev \
|
||||||
clang-${LLVM_VERSION} \
|
clang-10 \
|
||||||
clang-tidy-${LLVM_VERSION} \
|
clang-tidy-10 \
|
||||||
lld-${LLVM_VERSION} \
|
lld-10 \
|
||||||
llvm-${LLVM_VERSION} \
|
llvm-10 \
|
||||||
llvm-${LLVM_VERSION}-dev \
|
llvm-10-dev \
|
||||||
llvm-9-dev \
|
|
||||||
lld-9 \
|
|
||||||
clang-9 \
|
|
||||||
clang-tidy-9 \
|
|
||||||
ninja-build \
|
ninja-build \
|
||||||
perl \
|
perl \
|
||||||
pkg-config \
|
pkg-config \
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"build_config": [
|
"build_config": [
|
||||||
{
|
{
|
||||||
"compiler": "gcc-10",
|
"compiler": "clang-11",
|
||||||
"build-type": "",
|
"build-type": "",
|
||||||
"sanitizer": "",
|
"sanitizer": "",
|
||||||
"package-type": "deb",
|
"package-type": "deb",
|
||||||
@ -12,7 +12,7 @@
|
|||||||
"with_coverage": false
|
"with_coverage": false
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"compiler": "gcc-10",
|
"compiler": "clang-11",
|
||||||
"build-type": "",
|
"build-type": "",
|
||||||
"sanitizer": "",
|
"sanitizer": "",
|
||||||
"package-type": "performance",
|
"package-type": "performance",
|
||||||
@ -227,7 +227,7 @@
|
|||||||
},
|
},
|
||||||
"Functional stateful tests (release)": {
|
"Functional stateful tests (release)": {
|
||||||
"required_build_properties": {
|
"required_build_properties": {
|
||||||
"compiler": "gcc-10",
|
"compiler": "clang-11",
|
||||||
"package_type": "deb",
|
"package_type": "deb",
|
||||||
"build_type": "relwithdebuginfo",
|
"build_type": "relwithdebuginfo",
|
||||||
"sanitizer": "none",
|
"sanitizer": "none",
|
||||||
@ -239,7 +239,7 @@
|
|||||||
},
|
},
|
||||||
"Functional stateful tests (release, DatabaseOrdinary)": {
|
"Functional stateful tests (release, DatabaseOrdinary)": {
|
||||||
"required_build_properties": {
|
"required_build_properties": {
|
||||||
"compiler": "gcc-10",
|
"compiler": "clang-11",
|
||||||
"package_type": "deb",
|
"package_type": "deb",
|
||||||
"build_type": "relwithdebuginfo",
|
"build_type": "relwithdebuginfo",
|
||||||
"sanitizer": "none",
|
"sanitizer": "none",
|
||||||
@ -311,7 +311,7 @@
|
|||||||
},
|
},
|
||||||
"Functional stateless tests (release)": {
|
"Functional stateless tests (release)": {
|
||||||
"required_build_properties": {
|
"required_build_properties": {
|
||||||
"compiler": "gcc-10",
|
"compiler": "clang-11",
|
||||||
"package_type": "deb",
|
"package_type": "deb",
|
||||||
"build_type": "relwithdebuginfo",
|
"build_type": "relwithdebuginfo",
|
||||||
"sanitizer": "none",
|
"sanitizer": "none",
|
||||||
@ -335,7 +335,7 @@
|
|||||||
},
|
},
|
||||||
"Functional stateless tests (release, polymorphic parts enabled)": {
|
"Functional stateless tests (release, polymorphic parts enabled)": {
|
||||||
"required_build_properties": {
|
"required_build_properties": {
|
||||||
"compiler": "gcc-10",
|
"compiler": "clang-11",
|
||||||
"package_type": "deb",
|
"package_type": "deb",
|
||||||
"build_type": "relwithdebuginfo",
|
"build_type": "relwithdebuginfo",
|
||||||
"sanitizer": "none",
|
"sanitizer": "none",
|
||||||
@ -347,7 +347,7 @@
|
|||||||
},
|
},
|
||||||
"Functional stateless tests (release, DatabaseOrdinary)": {
|
"Functional stateless tests (release, DatabaseOrdinary)": {
|
||||||
"required_build_properties": {
|
"required_build_properties": {
|
||||||
"compiler": "gcc-10",
|
"compiler": "clang-11",
|
||||||
"package_type": "deb",
|
"package_type": "deb",
|
||||||
"build_type": "relwithdebuginfo",
|
"build_type": "relwithdebuginfo",
|
||||||
"sanitizer": "none",
|
"sanitizer": "none",
|
||||||
@ -431,7 +431,7 @@
|
|||||||
},
|
},
|
||||||
"Integration tests (release)": {
|
"Integration tests (release)": {
|
||||||
"required_build_properties": {
|
"required_build_properties": {
|
||||||
"compiler": "gcc-10",
|
"compiler": "clang-11",
|
||||||
"package_type": "deb",
|
"package_type": "deb",
|
||||||
"build_type": "relwithdebuginfo",
|
"build_type": "relwithdebuginfo",
|
||||||
"sanitizer": "none",
|
"sanitizer": "none",
|
||||||
@ -455,7 +455,7 @@
|
|||||||
},
|
},
|
||||||
"Compatibility check": {
|
"Compatibility check": {
|
||||||
"required_build_properties": {
|
"required_build_properties": {
|
||||||
"compiler": "gcc-10",
|
"compiler": "clang-11",
|
||||||
"package_type": "deb",
|
"package_type": "deb",
|
||||||
"build_type": "relwithdebuginfo",
|
"build_type": "relwithdebuginfo",
|
||||||
"sanitizer": "none",
|
"sanitizer": "none",
|
||||||
@ -479,7 +479,7 @@
|
|||||||
},
|
},
|
||||||
"Testflows check": {
|
"Testflows check": {
|
||||||
"required_build_properties": {
|
"required_build_properties": {
|
||||||
"compiler": "gcc-10",
|
"compiler": "clang-11",
|
||||||
"package_type": "deb",
|
"package_type": "deb",
|
||||||
"build_type": "relwithdebuginfo",
|
"build_type": "relwithdebuginfo",
|
||||||
"sanitizer": "none",
|
"sanitizer": "none",
|
||||||
@ -575,7 +575,7 @@
|
|||||||
},
|
},
|
||||||
"Release": {
|
"Release": {
|
||||||
"required_build_properties": {
|
"required_build_properties": {
|
||||||
"compiler": "gcc-10",
|
"compiler": "clang-11",
|
||||||
"package_type": "deb",
|
"package_type": "deb",
|
||||||
"build_type": "relwithdebuginfo",
|
"build_type": "relwithdebuginfo",
|
||||||
"sanitizer": "none",
|
"sanitizer": "none",
|
||||||
|
Loading…
Reference in New Issue
Block a user