summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/clang/llvm-project-source.inc
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-devtools/clang/llvm-project-source.inc')
-rw-r--r--recipes-devtools/clang/llvm-project-source.inc36
1 files changed, 36 insertions, 0 deletions
diff --git a/recipes-devtools/clang/llvm-project-source.inc b/recipes-devtools/clang/llvm-project-source.inc
index f6c552d..d7b91e0 100644
--- a/recipes-devtools/clang/llvm-project-source.inc
+++ b/recipes-devtools/clang/llvm-project-source.inc
@@ -18,3 +18,39 @@ STAMPCLEAN = "${STAMPS_DIR}/work-shared/llvm-project-source-${PV}-*"
18INHIBIT_DEFAULT_DEPS = "1" 18INHIBIT_DEFAULT_DEPS = "1"
19DEPENDS = "" 19DEPENDS = ""
20PACKAGES = "" 20PACKAGES = ""
21
22# space separated list of additional distro vendor values we want to support e.g.
23# "yoe webos" or "-yoe -webos" '-' is optional
24CLANG_EXTRA_OE_VENDORS ?= "${TARGET_VENDOR} ${SDK_VENDOR}"
25
26python add_distro_vendor() {
27 import subprocess
28 case = ""
29 triple = ""
30 vendors = d.getVar('CLANG_EXTRA_OE_VENDORS')
31 multilib_variants = d.getVar('MULTILIB_VARIANTS').split()
32 vendors_to_add = []
33 for vendor in vendors.split():
34 # convert -yoe into yoe
35 vendor = vendor.lstrip('-')
36 # generate possible multilib vendor names for yoe
37 # such as yoemllib32
38 vendors_to_add.extend([vendor + 'ml' + variant for variant in multilib_variants])
39 # skip oe since already part of the cpp file
40 if vendor != "oe":
41 vendors_to_add.append(vendor)
42
43 for vendor_to_add in vendors_to_add:
44 case += '\\n .Case("' + vendor_to_add + '", Triple::OpenEmbedded)'
45 triple += ' "x86_64-' + vendor_to_add + '-linux",'
46
47 bb.note("Adding support following TARGET_VENDOR values")
48 bb.note(str(vendors_to_add))
49 bb.note("in llvm/lib/Support/Triple.cpp and ${S}/clang/lib/Driver/ToolChains/Gnu.cpp")
50 cmd = d.expand("sed -i 's#//CLANG_EXTRA_OE_VENDORS_TRIPLES#%s#g' ${S}/clang/lib/Driver/ToolChains/Gnu.cpp" % (triple))
51 subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
52 cmd = d.expand("sed -i 's#//CLANG_EXTRA_OE_VENDORS_CASES#%s#g' -i ${S}/llvm/lib/Support/Triple.cpp" % (case))
53 subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
54}
55
56do_patch[postfuncs] += "add_distro_vendor"