summaryrefslogtreecommitdiffstats
path: root/external/meta-clang/recipes-devtools/clang/common.inc
blob: 52f30c6d0c800c46333bf1ef57fb4c2be79349e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
FILESEXTRAPATHS =. "${FILE_DIRNAME}/clang:"

LIC_FILES_CHKSUM = "file://llvm/LICENSE.TXT;md5=${LLVMMD5SUM} \
                    file://clang/LICENSE.TXT;md5=${CLANGMD5SUM} \
"
LICENSE = "NCSA"

BASEURI ??= "${LLVM_GIT}/llvm-project;protocol=${LLVM_GIT_PROTOCOL};branch=${BRANCH}"
SRC_URI = "\
    ${BASEURI} \
    ${LLVMPATCHES} \
    ${CLANGPATCHES} \
    ${COMPILERRTPATCHES} \
    ${LIBCXXABIPATCHES} \
    ${LIBCXXPATCHES} \
    ${LLDBPATCHES} \
"

# llvm patches
#
LLVMPATCHES = "\
    file://0001-llvm-TargetLibraryInfo-Undefine-libc-functions-if-th.patch;patchdir=llvm \
    file://0002-llvm-allow-env-override-of-exe-path.patch;patchdir=llvm \
    file://0003-llvm-Disable-calls-to-_finite-and-other-glibc-only-f.patch;patchdir=llvm \
"
# Fallback to no-PIE if not set
GCCPIE ??= ""

# Clang patches
CLANGPATCHES = "\
    file://0001-clang-driver-Use-lib-for-ldso-on-OE.patch;patchdir=clang \
    file://0002-clang-Driver-tools.cpp-Add-lssp_nonshared-on-musl.patch;patchdir=clang \
    file://0003-clang-musl-ppc-does-not-support-128-bit-long-double.patch;patchdir=clang \
    file://0004-clang-Prepend-trailing-to-sysroot.patch;patchdir=clang \
    file://0005-clang-Look-inside-the-target-sysroot-for-compiler-ru.patch;patchdir=clang \
    file://0006-clang-Define-releative-gcc-installation-dir.patch;patchdir=clang \
    file://0007-clang-Fix-ldso-for-musl-on-x86-and-x32-architectures.patch;patchdir=clang \
    file://0008-clang-scan-view-needs-python-2.x.patch;patchdir=clang \
    file://0020-clang-link-libgcc_eh-when-using-compiler-rt.patch \
"
CLANGPATCHES += "${@'file://0009-clang-Enable-SSP-and-PIE-by-default.patch;patchdir=clang' if '${GCCPIE}' else ''}"

# compiler-rt patches
COMPILERRTPATCHES = "\
    file://0001-compiler-rt-support-a-new-embedded-linux-target.patch;patchdir=compiler-rt \
    file://0002-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch;patchdir=compiler-rt \
    file://0003-compiler-rt-Disable-tsan-on-OE-glibc.patch;patchdir=compiler-rt \
    file://0004-compiler-rt-cmake-mips-Do-not-specify-target-with-OE.patch;patchdir=compiler-rt \
"
# libcxxabi patches
LIBCXXABIPATCHES ="\
    file://0001-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch;patchdir=libcxxabi \
"

# libc++ patches
LIBCXXPATCHES = "\
"

# lldb patches
LLDBPATCHES = "\
    file://0001-lldb-Include-limits.h-for-PATH_MAX-definition.patch;patchdir=lldb \
    file://0002-lldb-Add-lxml2-to-linker-cmdline-of-xml-is-found.patch;patchdir=lldb \
"

S = "${TMPDIR}/work-shared/llvm-project-source-${PV}-${PR}/git"
B = "${WORKDIR}/llvm-project-source-${PV}/build.${HOST_SYS}.${TARGET_SYS}"

# We need to ensure that for the shared work directory, the do_patch signatures match
# The real WORKDIR location isn't a dependency for the shared workdir.
src_patches[vardepsexclude] = "WORKDIR"
should_apply[vardepsexclude] += "PN"