diff options
Diffstat (limited to 'recipes-devtools/clang/llvm-project-source.inc')
-rw-r--r-- | recipes-devtools/clang/llvm-project-source.inc | 36 |
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}-*" | |||
18 | INHIBIT_DEFAULT_DEPS = "1" | 18 | INHIBIT_DEFAULT_DEPS = "1" |
19 | DEPENDS = "" | 19 | DEPENDS = "" |
20 | PACKAGES = "" | 20 | PACKAGES = "" |
21 | |||
22 | # space separated list of additional distro vendor values we want to support e.g. | ||
23 | # "yoe webos" or "-yoe -webos" '-' is optional | ||
24 | CLANG_EXTRA_OE_VENDORS ?= "${TARGET_VENDOR} ${SDK_VENDOR}" | ||
25 | |||
26 | python 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 | |||
56 | do_patch[postfuncs] += "add_distro_vendor" | ||