diff options
author | Khem Raj <raj.khem@gmail.com> | 2019-11-13 22:59:11 -0800 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2019-11-14 07:18:21 -0800 |
commit | 003dd05e4c168f7c3cccb9cbfad3fd8f38fe8741 (patch) | |
tree | 6eb597b2d29e7c924c07f36124a85e13908c2d17 | |
parent | df21a7d3f29cb49783ff93a9f5ba947832a09e25 (diff) | |
download | meta-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.conf | 3 | ||||
-rw-r--r-- | recipes-devtools/clang/clang_git.bb | 17 | ||||
-rw-r--r-- | recipes-graphics/mesa/mesa_%.bbappend | 5 |
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 | ||
21 | PREFERRED_PROVIDER_libgcc-initial = "libgcc-initial" | 21 | PREFERRED_PROVIDER_libgcc-initial = "libgcc-initial" |
22 | #PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs_forcevariable = "libcxx" | 22 | #PREFERRED_PROVIDER_virtual/${TARGET_PREFIX}compilerlibs_forcevariable = "libcxx" |
23 | PREFERRED_PROVIDER_llvm = "clang" | ||
24 | PREFERRED_PROVIDER_llvm-native = "clang-native" | ||
25 | PREFERRED_PROVIDER_nativesdk-llvm = "nativesdk-clang" | ||
23 | INHERIT += "clang" | 26 | INHERIT += "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 | " |
57 | PACKAGECONFIG_class-native = "" | 57 | PACKAGECONFIG_class-native = "rtti eh" |
58 | PACKAGECONFIG_class-nativesdk = "thin-lto" | 58 | PACKAGECONFIG_class-nativesdk = "rtti eh thin-lto" |
59 | 59 | ||
60 | PACKAGECONFIG[compiler-rt] = "-DCLANG_DEFAULT_RTLIB=compiler-rt,,libcxx,compiler-rt" | 60 | PACKAGECONFIG[compiler-rt] = "-DCLANG_DEFAULT_RTLIB=compiler-rt,,libcxx,compiler-rt" |
61 | PACKAGECONFIG[libcplusplus] = "-DCLANG_DEFAULT_CXX_STDLIB=libc++,,libcxx" | 61 | PACKAGECONFIG[libcplusplus] = "-DCLANG_DEFAULT_CXX_STDLIB=libc++,,libcxx" |
@@ -88,8 +88,8 @@ PYTHON_LIBRARY;PYTHON_INCLUDE_DIR;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN;LLDB_EDIT | |||
88 | LLVM_TARGETS_TO_BUILD ?= "AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86" | 88 | LLVM_TARGETS_TO_BUILD ?= "AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86" |
89 | LLVM_TARGETS_TO_BUILD_append = ";${@get_clang_host_arch(bb, d)};${@get_clang_target_arch(bb, d)}" | 89 | LLVM_TARGETS_TO_BUILD_append = ";${@get_clang_host_arch(bb, d)};${@get_clang_target_arch(bb, d)}" |
90 | 90 | ||
91 | LLVM_TARGETS_TO_BUILD_TARGET ?= "" | 91 | LLVM_TARGETS_TO_BUILD_TARGET ?= "AMDGPU;${LLVM_TARGETS_TO_BUILD}" |
92 | LLVM_TARGETS_TO_BUILD_TARGET_append ?= "${@get_clang_target_arch(bb, d)}" | 92 | LLVM_TARGETS_TO_BUILD_TARGET_append ?= ";${@get_clang_target_arch(bb, d)}" |
93 | 93 | ||
94 | LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ?= "" | 94 | LLVM_EXPERIMENTAL_TARGETS_TO_BUILD ?= "" |
95 | LLVM_EXPERIMENTAL_TARGETS_TO_BUILD_append = ";${@get_clang_experimental_target_arch(bb, d)}" | 95 | LLVM_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 | ||
182 | do_install_append_class-nativesdk () { | 185 | do_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 | ||
194 | PACKAGES =+ "${PN}-libllvm ${PN}-lldb-python libclang" | 200 | PACKAGES =+ "${PN}-libllvm ${PN}-lldb-python libclang" |
195 | 201 | ||
202 | PROVIDES += "llvm llvm${PV}" | ||
203 | PROVIDES_append_class-native = " llvm-native" | ||
204 | |||
196 | BBCLASSEXTEND = "native nativesdk" | 205 | BBCLASSEXTEND = "native nativesdk" |
197 | 206 | ||
198 | FILES_${PN}-lldb-python = "${libdir}/python*/site-packages/lldb/*" | 207 | FILES_${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 | ||
4 | EXTRA_OECONF_append_toolchain-clang_x86 = " --disable-asm" | 4 | EXTRA_OECONF_append_toolchain-clang_x86 = " --disable-asm" |
5 | EXTRA_OECONF_append_toolchain-clang_x86-64 = " --disable-asm" | 5 | EXTRA_OECONF_append_toolchain-clang_x86-64 = " --disable-asm" |
6 | |||
7 | export YOCTO_ALTERNATE_EXE_PATH = "${STAGING_LIBDIR}/llvm-config" | ||
8 | |||
9 | PACKAGECONFIG[gallium-llvm] = "-Dllvm=true -Dshared-llvm=true, -Dllvm=false, clang clang-native \ | ||
10 | ${@'elfutils' if ${GALLIUMDRIVERS_LLVM33_ENABLED} else ''}" | ||