summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2019-11-13 22:59:11 -0800
committerKhem Raj <raj.khem@gmail.com>2019-11-14 07:18:21 -0800
commit003dd05e4c168f7c3cccb9cbfad3fd8f38fe8741 (patch)
tree6eb597b2d29e7c924c07f36124a85e13908c2d17
parentdf21a7d3f29cb49783ff93a9f5ba947832a09e25 (diff)
downloadmeta-clang-003dd05e4c168f7c3cccb9cbfad3fd8f38fe8741.tar.gz
clang: Provide llvm/llvm-native
When using meta-clang, it makes sense to use llvm provided by clang recipe, this ensures that we do not build llvm from oe-core but instead offer the one from clang recipe enable rtti and eh for native/nativesdk clang, this is needed for mesa to build Let clang PROVIDE llvm Build AMDGNU and other targets, this is needed for llvm-config to work properly, since we use llvm-config from clang-native, so its better to build the targets that are built for clang-native atleast create version specific symlinks for tblgen anf llvm-config Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--conf/layer.conf3
-rw-r--r--recipes-devtools/clang/clang_git.bb17
-rw-r--r--recipes-graphics/mesa/mesa_%.bbappend5
3 files changed, 21 insertions, 4 deletions
diff --git a/conf/layer.conf b/conf/layer.conf
index 2b92760..967f052 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -20,6 +20,9 @@ BBFILES_DYNAMIC += " \
20 20
21PREFERRED_PROVIDER_libgcc-initial = "libgcc-initial" 21PREFERRED_PROVIDER_libgcc-initial = "libgcc-initial"
22#PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs_forcevariable = "libcxx" 22#PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs_forcevariable = "libcxx"
23PREFERRED_PROVIDER_llvm = "clang"
24PREFERRED_PROVIDER_llvm-native = "clang-native"
25PREFERRED_PROVIDER_nativesdk-llvm = "nativesdk-clang"
23INHERIT += "clang" 26INHERIT += "clang"
24 27
25# include clang in SDK 28# include clang in SDK
diff --git a/recipes-devtools/clang/clang_git.bb b/recipes-devtools/clang/clang_git.bb
index 73becc3..63592dd 100644
--- a/recipes-devtools/clang/clang_git.bb
+++ b/recipes-devtools/clang/clang_git.bb
@@ -54,8 +54,8 @@ PACKAGECONFIG ??= "compiler-rt libcplusplus shared-libs lldb-wchar \
54 ${@bb.utils.filter('DISTRO_FEATURES', 'thin-lto full-lto', d)} \ 54 ${@bb.utils.filter('DISTRO_FEATURES', 'thin-lto full-lto', d)} \
55 rtti eh \ 55 rtti eh \
56 " 56 "
57PACKAGECONFIG_class-native = "" 57PACKAGECONFIG_class-native = "rtti eh"
58PACKAGECONFIG_class-nativesdk = "thin-lto" 58PACKAGECONFIG_class-nativesdk = "rtti eh thin-lto"
59 59
60PACKAGECONFIG[compiler-rt] = "-DCLANG_DEFAULT_RTLIB=compiler-rt,,libcxx,compiler-rt" 60PACKAGECONFIG[compiler-rt] = "-DCLANG_DEFAULT_RTLIB=compiler-rt,,libcxx,compiler-rt"
61PACKAGECONFIG[libcplusplus] = "-DCLANG_DEFAULT_CXX_STDLIB=libc++,,libcxx" 61PACKAGECONFIG[libcplusplus] = "-DCLANG_DEFAULT_CXX_STDLIB=libc++,,libcxx"
@@ -88,8 +88,8 @@ PYTHON_LIBRARY;PYTHON_INCLUDE_DIR;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN;LLDB_EDIT
88LLVM_TARGETS_TO_BUILD ?= "AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86" 88LLVM_TARGETS_TO_BUILD ?= "AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86"
89LLVM_TARGETS_TO_BUILD_append = ";${@get_clang_host_arch(bb, d)};${@get_clang_target_arch(bb, d)}" 89LLVM_TARGETS_TO_BUILD_append = ";${@get_clang_host_arch(bb, d)};${@get_clang_target_arch(bb, d)}"
90 90
91LLVM_TARGETS_TO_BUILD_TARGET ?= "" 91LLVM_TARGETS_TO_BUILD_TARGET ?= "AMDGPU;${LLVM_TARGETS_TO_BUILD}"
92LLVM_TARGETS_TO_BUILD_TARGET_append ?= "${@get_clang_target_arch(bb, d)}" 92LLVM_TARGETS_TO_BUILD_TARGET_append ?= ";${@get_clang_target_arch(bb, d)}"
93 93
94LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ?= "" 94LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ?= ""
95LLVM_EXPERIMENTAL_TARGETS_TO_BUILD_append = ";${@get_clang_experimental_target_arch(bb, d)}" 95LLVM_EXPERIMENTAL_TARGETS_TO_BUILD_append = ";${@get_clang_experimental_target_arch(bb, d)}"
@@ -177,6 +177,9 @@ do_install_append_class-native () {
177 test -n "`file $f|grep -i ELF`" && ${STRIP} $f 177 test -n "`file $f|grep -i ELF`" && ${STRIP} $f
178 echo "stripped $f" 178 echo "stripped $f"
179 done 179 done
180 ln -sf clang-tblgen ${D}${bindir}/clang-tblgen${PV}
181 ln -sf llvm-tblgen ${D}${bindir}/llvm-tblgen${PV}
182 ln -sf llvm-config ${D}${bindir}/llvm-config${PV}
180} 183}
181 184
182do_install_append_class-nativesdk () { 185do_install_append_class-nativesdk () {
@@ -185,6 +188,9 @@ do_install_append_class-nativesdk () {
185 for f in `find ${D}${bindir} -executable -type f -not -type l`; do 188 for f in `find ${D}${bindir} -executable -type f -not -type l`; do
186 test -n "`file $f|grep -i ELF`" && ${STRIP} $f 189 test -n "`file $f|grep -i ELF`" && ${STRIP} $f
187 done 190 done
191 ln -sf clang-tblgen ${D}${bindir}/clang-tblgen${PV}
192 ln -sf llvm-tblgen ${D}${bindir}/llvm-tblgen${PV}
193 ln -sf llvm-config ${D}${bindir}/llvm-config${PV}
188 rm -rf ${D}${datadir}/llvm/cmake 194 rm -rf ${D}${datadir}/llvm/cmake
189 rm -rf ${D}${datadir}/llvm 195 rm -rf ${D}${datadir}/llvm
190} 196}
@@ -193,6 +199,9 @@ PACKAGE_DEBUG_SPLIT_STYLE_class-nativesdk = "debug-without-src"
193 199
194PACKAGES =+ "${PN}-libllvm ${PN}-lldb-python libclang" 200PACKAGES =+ "${PN}-libllvm ${PN}-lldb-python libclang"
195 201
202PROVIDES += "llvm llvm${PV}"
203PROVIDES_append_class-native = " llvm-native"
204
196BBCLASSEXTEND = "native nativesdk" 205BBCLASSEXTEND = "native nativesdk"
197 206
198FILES_${PN}-lldb-python = "${libdir}/python*/site-packages/lldb/*" 207FILES_${PN}-lldb-python = "${libdir}/python*/site-packages/lldb/*"
diff --git a/recipes-graphics/mesa/mesa_%.bbappend b/recipes-graphics/mesa/mesa_%.bbappend
index fadc95c..26c6fe3 100644
--- a/recipes-graphics/mesa/mesa_%.bbappend
+++ b/recipes-graphics/mesa/mesa_%.bbappend
@@ -3,3 +3,8 @@ DEPENDS_append_toolchain-clang = " libatomic-ops"
3 3
4EXTRA_OECONF_append_toolchain-clang_x86 = " --disable-asm" 4EXTRA_OECONF_append_toolchain-clang_x86 = " --disable-asm"
5EXTRA_OECONF_append_toolchain-clang_x86-64 = " --disable-asm" 5EXTRA_OECONF_append_toolchain-clang_x86-64 = " --disable-asm"
6
7export YOCTO_ALTERNATE_EXE_PATH = "${STAGING_LIBDIR}/llvm-config"
8
9PACKAGECONFIG[gallium-llvm] = "-Dllvm=true -Dshared-llvm=true, -Dllvm=false, clang clang-native \
10${@'elfutils' if ${GALLIUMDRIVERS_LLVM33_ENABLED} else ''}"