<div dir="ltr">Replicated without uninative, so it's not that.<div><br></div><div>Ross</div></div><div class="gmail_extra"><br><div class="gmail_quote">On 29 July 2017 at 12:39, Burton, Ross <span dir="ltr"><<a href="mailto:ross.burton@intel.com" target="_blank">ross.burton@intel.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Fails like this for me:<div><br></div><div><div>| FAILED: tools/llvm-cvtres/Opts.inc.tmp</div><div>| cd /data/poky-tmp/master/build/<wbr>work/corei7-64-poky-linux/<wbr>llvm/5.0-r0/build && /data/poky-tmp/master/build/<wbr>work/corei7-64-poky-linux/<wbr>llvm/5.0-r0/build/NATIVE/bin/<wbr>llvm-tblgen -gen-opt-parser-defs -I /data/poky-tmp/master/build/<wbr>work/corei7-64-poky-linux/<wbr>llvm/5.0-r0/git/tools/llvm-<wbr>cvtres -I /data/poky-tmp/master/build/<wbr>work/corei7-64-poky-linux/<wbr>llvm/5.0-r0/git/include /data/poky-tmp/master/build/<wbr>work/corei7-64-poky-linux/<wbr>llvm/5.0-r0/git/tools/llvm-<wbr>cvtres/Opts.td -o tools/llvm-cvtres/Opts.inc.tmp -d tools/llvm-cvtres/Opts.inc.d</div><div>| /bin/sh: 1: /data/poky-tmp/master/build/<wbr>work/corei7-64-poky-linux/<wbr>llvm/5.0-r0/build/NATIVE/bin/<wbr>llvm-tblgen: not found</div></div><div><br></div><div>It is there though:</div><div><br></div><div><div>$ ls -l /data/poky-tmp/master/build/<wbr>work/corei7-64-poky-linux/<wbr>llvm/5.0-r0/build/NATIVE/bin/<wbr>llvm-tblgen</div><div>-rwxr-xr-x 1 ross ross 49807224 Jul 29 12:25 /data/poky-tmp/master/build/<wbr>work/corei7-64-poky-linux/<wbr>llvm/5.0-r0/build/NATIVE/bin/<wbr>llvm-tblgen</div></div><div><br></div><div><div>$ /data/poky-tmp/master/build/<wbr>work/corei7-64-poky-linux/<wbr>llvm/5.0-r0/build/NATIVE/bin/<wbr>llvm-tblgen</div><div>-bash: /data/poky-tmp/master/build/<wbr>work/corei7-64-poky-linux/<wbr>llvm/5.0-r0/build/NATIVE/bin/<wbr>llvm-tblgen: No such file or directory</div></div><div><br></div><div>Might be related to having uninative enabled?</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>Ross</div><div><br></div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On 29 July 2017 at 09:35, Khem Raj <span dir="ltr"><<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Based on recipe from meta-oe and clang recipe from meta-clang<br>
Needed by mesa<br>
<br>
Fixes<br>
[YOCTO #11529]<br>
<br>
Signed-off-by: Khem Raj <<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>><br>
---<br>
<span> ...LibraryInfo-Undefine-libc-<wbr>functions-if-th.patch | 93 ++++++++++++<br>
.../0002-llvm-allow-env-overr<wbr>ide-of-exe-path.patch | 39 +++++<br>
meta/recipes-devtools/llvm/<a href="http://llvm_git.bb" rel="noreferrer" target="_blank">ll<wbr>vm_git.bb</a> | 166 +++++++++++++++++++++<br>
</span> 3 files changed, 298 insertions(+)<br>
<span> create mode 100644 meta/recipes-devtools/llvm/llv<wbr>m/0001-llvm-TargetLibraryInfo-<wbr>Undefine-libc-functions-if-th.<wbr>patch<br>
create mode 100644 meta/recipes-devtools/llvm/llv<wbr>m/0002-llvm-allow-env-override<wbr>-of-exe-path.patch<br>
create mode 100644 meta/recipes-devtools/llvm/<a href="http://llvm_git.bb" rel="noreferrer" target="_blank">llv<wbr>m_git.bb</a><br>
<br>
</span>diff --git a/meta/recipes-devtools/llvm/l<wbr>lvm/0001-llvm-TargetLibraryInf<wbr>o-Undefine-libc-functions-if-<wbr>th.patch b/meta/recipes-devtools/llvm/l<wbr>lvm/0001-llvm-TargetLibraryInf<wbr>o-Undefine-libc-functions-if-<wbr>th.patch<br>
new file mode 100644<br>
index 0000000000..e251799259<br>
--- /dev/null<br>
+++ b/meta/recipes-devtools/llvm/l<wbr>lvm/0001-llvm-TargetLibraryInf<wbr>o-Undefine-libc-functions-if-<wbr>th.patch<br>
@@ -0,0 +1,93 @@<br>
+From 28293e48cf1a52004c6a78de448718<wbr>441f9e05f9 Mon Sep 17 00:00:00 2001<br>
+From: Khem Raj <<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>><br>
+Date: Sat, 21 May 2016 00:33:20 +0000<br>
+Subject: [PATCH 1/2] llvm: TargetLibraryInfo: Undefine libc functions if they<br>
+ are macros<br>
+<br>
+musl defines some functions as macros and not inline functions<br>
+if this is the case then make sure to undefine them<br>
+<br>
+Signed-off-by: Khem Raj <<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>><br>
+---<br>
+Upstream-Status: Pending<br>
+<br>
+ include/llvm/Analysis/TargetLi<wbr>braryInfo.def | 21 +++++++++++++++++++++<br>
+ 1 file changed, 21 insertions(+)<br>
+<br>
+diff --git a/include/llvm/Analysis/Target<wbr>LibraryInfo.def b/include/llvm/Analysis/Target<wbr>LibraryInfo.def<br>
+index 9cbe917c146..aff8419cf54 100644<br>
+--- a/include/llvm/Analysis/Target<wbr>LibraryInfo.def<br>
++++ b/include/llvm/Analysis/Target<wbr>LibraryInfo.def<br>
+@@ -656,6 +656,9 @@ TLI_DEFINE_STRING_INTERNAL("fm<wbr>odl")<br>
+ TLI_DEFINE_ENUM_INTERNAL(fopen<wbr>)<br>
+ TLI_DEFINE_STRING_INTERNAL("fo<wbr>pen")<br>
+ /// FILE *fopen64(const char *filename, const char *opentype)<br>
++#ifdef fopen64<br>
++#undef fopen64<br>
++#endif<br>
+ TLI_DEFINE_ENUM_INTERNAL(fopen<wbr>64)<br>
+ TLI_DEFINE_STRING_INTERNAL("fo<wbr>pen64")<br>
+ /// int fprintf(FILE *stream, const char *format, ...);<br>
+@@ -691,6 +694,9 @@ TLI_DEFINE_STRING_INTERNAL("fs<wbr>eek")<br>
+ /// int fseeko(FILE *stream, off_t offset, int whence);<br>
+ TLI_DEFINE_ENUM_INTERNAL(fseek<wbr>o)<br>
+ TLI_DEFINE_STRING_INTERNAL("fs<wbr>eeko")<br>
++#ifdef fseeko64<br>
++#undef fseeko64<br>
++#endif<br>
+ /// int fseeko64(FILE *stream, off64_t offset, int whence)<br>
+ TLI_DEFINE_ENUM_INTERNAL(fseek<wbr>o64)<br>
+ TLI_DEFINE_STRING_INTERNAL("fs<wbr>eeko64")<br>
+@@ -701,6 +707,9 @@ TLI_DEFINE_STRING_INTERNAL("fs<wbr>etpos")<br>
+ TLI_DEFINE_ENUM_INTERNAL(fstat<wbr>)<br>
+ TLI_DEFINE_STRING_INTERNAL("fs<wbr>tat")<br>
+ /// int fstat64(int filedes, struct stat64 *buf)<br>
++#ifdef fstat64<br>
++#undef fstat64<br>
++#endif<br>
+ TLI_DEFINE_ENUM_INTERNAL(fstat<wbr>64)<br>
+ TLI_DEFINE_STRING_INTERNAL("fs<wbr>tat64")<br>
+ /// int fstatvfs(int fildes, struct statvfs *buf);<br>
+@@ -716,6 +725,9 @@ TLI_DEFINE_STRING_INTERNAL("ft<wbr>ell")<br>
+ TLI_DEFINE_ENUM_INTERNAL(ftell<wbr>o)<br>
+ TLI_DEFINE_STRING_INTERNAL("ft<wbr>ello")<br>
+ /// off64_t ftello64(FILE *stream)<br>
++#ifdef ftello64<br>
++#undef ftello64<br>
++#endif<br>
+ TLI_DEFINE_ENUM_INTERNAL(ftell<wbr>o64)<br>
+ TLI_DEFINE_STRING_INTERNAL("ft<wbr>ello64")<br>
+ /// int ftrylockfile(FILE *file);<br>
+@@ -836,6 +848,9 @@ TLI_DEFINE_STRING_INTERNAL("lo<wbr>gl")<br>
+ TLI_DEFINE_ENUM_INTERNAL(lstat<wbr>)<br>
+ TLI_DEFINE_STRING_INTERNAL("ls<wbr>tat")<br>
+ /// int lstat64(const char *path, struct stat64 *buf);<br>
++#ifdef lstat64<br>
++#undef lstat64<br>
++#endif<br>
+ TLI_DEFINE_ENUM_INTERNAL(lstat<wbr>64)<br>
+ TLI_DEFINE_STRING_INTERNAL("ls<wbr>tat64")<br>
+ /// void *malloc(size_t size);<br>
+@@ -1055,6 +1070,9 @@ TLI_DEFINE_STRING_INTERNAL("ss<wbr>canf")<br>
+ TLI_DEFINE_ENUM_INTERNAL(stat)<br>
+ TLI_DEFINE_STRING_INTERNAL("st<wbr>at")<br>
+ /// int stat64(const char *path, struct stat64 *buf);<br>
++#ifdef stat64<br>
++#undef stat64<br>
++#endif<br>
+ TLI_DEFINE_ENUM_INTERNAL(stat6<wbr>4)<br>
+ TLI_DEFINE_STRING_INTERNAL("st<wbr>at64")<br>
+ /// int statvfs(const char *path, struct statvfs *buf);<br>
+@@ -1184,6 +1202,9 @@ TLI_DEFINE_STRING_INTERNAL("ti<wbr>mes")<br>
+ TLI_DEFINE_ENUM_INTERNAL(tmpfi<wbr>le)<br>
+ TLI_DEFINE_STRING_INTERNAL("tm<wbr>pfile")<br>
+ /// FILE *tmpfile64(void)<br>
++#ifdef tmpfile64<br>
++#undef tmpfile64<br>
++#endif<br>
+ TLI_DEFINE_ENUM_INTERNAL(tmpfi<wbr>le64)<br>
+ TLI_DEFINE_STRING_INTERNAL("tm<wbr>pfile64")<br>
+ /// int toascii(int c);<br>
+--<br>
+2.13.1<br>
+<br>
diff --git a/meta/recipes-devtools/llvm/l<wbr>lvm/0002-llvm-allow-env-overri<wbr>de-of-exe-path.patch b/meta/recipes-devtools/llvm/l<wbr>lvm/0002-llvm-allow-env-overri<wbr>de-of-exe-path.patch<br>
new file mode 100644<br>
index 0000000000..832bd729ef<br>
--- /dev/null<br>
+++ b/meta/recipes-devtools/llvm/l<wbr>lvm/0002-llvm-allow-env-overri<wbr>de-of-exe-path.patch<br>
@@ -0,0 +1,39 @@<br>
+From d776487bac17650704614248d19d1e<wbr>6b35775001 Mon Sep 17 00:00:00 2001<br>
+From: Martin Kelly <<a href="mailto:mkelly@xevo.com" target="_blank">mkelly@xevo.com</a>><br>
+Date: Fri, 19 May 2017 00:22:57 -0700<br>
+Subject: [PATCH 2/2] llvm: allow env override of exe path<br>
+<br>
+When using a native llvm-config from inside a sysroot, we need llvm-config to<br>
+return the libraries, include directories, etc. from inside the sysroot rather<br>
+than from the native sysroot. Thus provide an env override for calling<br>
+llvm-config from a target sysroot.<br>
+<br>
+Signed-off-by: Martin Kelly <<a href="mailto:mkelly@xevo.com" target="_blank">mkelly@xevo.com</a>><br>
+Signed-off-by: Khem Raj <<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>><br>
+---<br>
+Upstream-Status: Pending<br>
+<br>
+ tools/llvm-config/llvm-config.<wbr>cpp | 7 +++++++<br>
+ 1 file changed, 7 insertions(+)<br>
+<br>
+diff --git a/tools/llvm-config/llvm-confi<wbr>g.cpp b/tools/llvm-config/llvm-confi<wbr>g.cpp<br>
+index 08b096afb05..d8d7742744e 100644<br>
+--- a/tools/llvm-config/llvm-confi<wbr>g.cpp<br>
++++ b/tools/llvm-config/llvm-confi<wbr>g.cpp<br>
+@@ -225,6 +225,13 @@ Typical components:\n\<br>
+<br>
+ /// \brief Compute the path to the main executable.<br>
+ std::string GetExecutablePath(const char *Argv0) {<br>
++ // Hack for Yocto: we need to override the root path when we are using<br>
++ // llvm-config from within a target sysroot.<br>
++ const char *Sysroot = std::getenv("YOCTO_ALTERNATE_E<wbr>XE_PATH");<br>
++ if (Sysroot != nullptr) {<br>
++ return Sysroot;<br>
++ }<br>
++<br>
+ // This just needs to be some symbol in the binary; C++ doesn't<br>
+ // allow taking the address of ::main however.<br>
+ void *P = (void *)(intptr_t)GetExecutablePath;<br>
+--<br>
+2.13.1<br>
+<br>
diff --git a/meta/recipes-devtools/llvm/<a href="http://llvm_git.bb" rel="noreferrer" target="_blank">l<wbr>lvm_git.bb</a> b/meta/recipes-devtools/llvm/<a href="http://llvm_git.bb" rel="noreferrer" target="_blank">l<wbr>lvm_git.bb</a><br>
new file mode 100644<br>
index 0000000000..7b51d2153f<br>
--- /dev/null<br>
+++ b/meta/recipes-devtools/llvm/<a href="http://llvm_git.bb" rel="noreferrer" target="_blank">l<wbr>lvm_git.bb</a><br>
@@ -0,0 +1,166 @@<br>
+# Copyright (C) 2017 Khem Raj <<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>><br>
+# Released under the MIT license (see COPYING.MIT for the terms)<br>
+<br>
+DESCRIPTION = "The LLVM Compiler Infrastructure"<br>
+HOMEPAGE = "<a href="http://llvm.org" rel="noreferrer" target="_blank">http://llvm.org</a>"<br>
+LICENSE = "NCSA"<br>
+SECTION = "devel"<br>
+<br>
+LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=e825e0<wbr>17edc35cfd58e26116e5251771"<br>
+<br>
+DEPENDS = "libffi libxml2-native zlib ninja-native"<br>
+<br>
+RDEPENDS_${PN}_append_class-t<wbr>arget = " ncurses-terminfo"<br>
+<br>
+inherit perlnative pythonnative cmake pkgconfig<br>
+<br>
+PROVIDES += "llvm${PV}"<br>
+<br>
+LLVM_RELEASE = "${PV}"<br>
+LLVM_DIR = "llvm${LLVM_RELEASE}"<br>
+<br>
+SRCREV = "9a5c333388cbb54a0ce3a67c4f539<wbr>f5e590a089b"<br>
+PV = "5.0"<br>
+PATCH_VERSION = "0"<br>
+SRC_URI = "git://<a href="http://github.com/llvm-mirror/llvm.git;branch=release_50;protocol=http" rel="noreferrer" target="_blank">github.com/llvm-mirror/<wbr>llvm.git;branch=release_50;pro<wbr>tocol=http</a> \<br>
+ file://0001-llvm-TargetLibrar<wbr>yInfo-Undefine-libc-functions-<wbr>if-th.patch \<br>
+ file://0002-llvm-allow-env-ov<wbr>erride-of-exe-path.patch \<br>
+ "<br>
+S = "${WORKDIR}/git"<br>
+<br>
+LLVM_INSTALL_DIR = "${WORKDIR}/llvm-install"<br>
+def get_llvm_arch(bb, d, arch_var):<br>
+ import re<br>
+ a = d.getVar(arch_var, True)<br>
+ if re.match('(i.86|athlon|x86.<wbr>64)$', a): return 'X86'<br>
+ elif re.match('arm$', a): return 'ARM'<br>
+ elif re.match('armeb$', a): return 'ARM'<br>
+ elif re.match('aarch64$', a): return 'AArch64'<br>
+ elif re.match('aarch64_be$', a): return 'AArch64'<br>
+ elif re.match('mips(isa|)(32|64|)(r<wbr>6|)(el|)$', a): return 'Mips'<br>
+ elif re.match('p(pc|owerpc)(|64)', a): return 'PowerPC'<br>
+ else:<br>
+ bb.error("cannot map '%s' to a supported llvm architecture" % a)<br>
+ return ""<br>
+<br>
+def get_llvm_target_arch(bb, d):<br>
+ return get_llvm_arch(bb, d, 'TARGET_ARCH')<br>
+#<br>
+# Default to build all OE-Core supported target arches (user overridable).<br>
+#<br>
+LLVM_TARGETS ?= "${@get_llvm_target_arch(bb, d)}"<br>
+LLVM_TARGETS_prepend_x86 = "AMDGPU;"<br>
+LLVM_TARGETS_prepend_x86-64 = "AMDGPU;"<br>
+<br>
+EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \<br>
+ -DLLVM_ENABLE_EXPENSIVE_CHECKS<wbr>=OFF \<br>
+ -DLLVM_ENABLE_PIC=ON \<br>
+ -DLLVM_BINDINGS_LIST='' \<br>
+ -DLLVM_LINK_LLVM_DYLIB=ON \<br>
+ -DLLVM_ENABLE_FFI=ON \<br>
+ -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \<br>
+ -DLLVM_OPTIMIZED_TABLEGEN=ON \<br>
+ -DLLVM_TARGETS_TO_BUILD="${LLV<wbr>M_TARGETS}" \<br>
+ -DCMAKE_CROSSCOMPILING:BOOL=ON \<br>
+ -G Ninja \<br>
+ "<br>
+EXTRA_OECMAKE_remove_class-na<wbr>tive = "-DCMAKE_CROSSCOMPILING:BOOL=O<wbr>N"<br>
+<br>
+do_configure_prepend() {<br>
+# Fix paths in llvm-config<br>
+ sed -i "s|sys::path::parent_path(Curr<wbr>entPath))\.str()|sys::path::<wbr>parent_path(sys::path::parent_<wbr>path(CurrentPath))).str()|g" ${S}/tools/llvm-config/llvm-co<wbr>nfig.cpp<br>
+ sed -ri "s#/(bin|include|lib)(/?\")#/\<wbr>1/${LLVM_DIR}\2#g" ${S}/tools/llvm-config/llvm-co<wbr>nfig.cpp<br>
+ sed -ri "s#lib/${LLVM_DIR}#${baselib}/<wbr>${LLVM_DIR}#g" ${S}/tools/llvm-config/llvm-co<wbr>nfig.cpp<br>
+}<br>
+<br>
+do_compile() {<br>
+ NINJA_STATUS="[%p] " ninja -v ${PARALLEL_MAKE}<br>
+}<br>
+<br>
+do_install() {<br>
+ NINJA_STATUS="[%p] " DESTDIR=${LLVM_INSTALL_DIR} ninja -v install<br>
+ install -D -m 0755 ${B}/NATIVE/bin/llvm-config ${D}${libdir}/${LLVM_DIR}/llvm<wbr>-config-host<br>
+<br>
+ install -d ${D}${bindir}/${LLVM_DIR}<br>
+ cp -r ${LLVM_INSTALL_DIR}${bindir}/* ${D}${bindir}/${LLVM_DIR}/<br>
+<br>
+ install -d ${D}${includedir}/${LLVM_DIR}<br>
+ cp -r ${LLVM_INSTALL_DIR}${includedi<wbr>r}/* ${D}${includedir}/${LLVM_DIR}/<br>
+<br>
+ install -d ${D}${libdir}/${LLVM_DIR}<br>
+<br>
+ # The LLVM sources have "/lib" embedded and so we cannot completely rely on the ${libdir} variable<br>
+ if [ -d ${LLVM_INSTALL_DIR}${libdir}/ ]; then<br>
+ cp -r ${LLVM_INSTALL_DIR}${libdir}/* ${D}${libdir}/${LLVM_DIR}/<br>
+ elif [ -d ${LLVM_INSTALL_DIR}${prefix}/l<wbr>ib ]; then<br>
+ cp -r ${LLVM_INSTALL_DIR}${prefix}/l<wbr>ib/* ${D}${libdir}/${LLVM_DIR}/<br>
+ elif [ -d ${LLVM_INSTALL_DIR}${prefix}/l<wbr>ib64 ]; then<br>
+ cp -r ${LLVM_INSTALL_DIR}${prefix}/l<wbr>ib64/* ${D}${libdir}/${LLVM_DIR}/<br>
+ fi<br>
+<br>
+ # Remove unnecessary cmake files<br>
+ rm -rf ${D}${libdir}/${LLVM_DIR}/cmak<wbr>e<br>
+<br>
+ ln -s ${LLVM_DIR}/libLLVM-${PV}${SOL<wbr>IBSDEV} ${D}${libdir}/libLLVM-${PV}${S<wbr>OLIBSDEV}<br>
+<br>
+ # We'll have to delete the libLLVM.so due to multiple reasons...<br>
+ rm -rf ${D}${libdir}/${LLVM_DIR}/libL<wbr>LVM.so<br>
+ rm -rf ${D}${libdir}/${LLVM_DIR}/libL<wbr>TO.so<br>
+}<br>
+<br>
+PACKAGES += "${PN}-bugpointpasses ${PN}-llvmhello"<br>
+ALLOW_EMPTY_${PN} = "1"<br>
+ALLOW_EMPTY_${PN}-staticdev = "1"<br>
+FILES_${PN} = ""<br>
+FILES_${PN}-staticdev = ""<br>
+FILES_${PN}-dbg = " \<br>
+ ${bindir}/${LLVM_DIR}/.debug \<br>
+ ${libdir}/${LLVM_DIR}/.debug/B<wbr>ugpointPasses.so \<br>
+ ${libdir}/${LLVM_DIR}/.debug/L<wbr>LVMHello.so \<br>
+ ${libdir}/${LLVM_DIR}/.debug/l<wbr>ibLTO.so* \<br>
+ ${libdir}/${LLVM_DIR}/.debug/l<wbr>lvm-config-host \<br>
+ /usr/src/debug \<br>
+"<br>
+<br>
+FILES_${PN}-dev = " \<br>
+ ${bindir}/${LLVM_DIR} \<br>
+ ${includedir}/${LLVM_DIR} \<br>
+ ${libdir}/${LLVM_DIR}/llvm-con<wbr>fig-host \<br>
+"<br>
+<br>
+RRECOMMENDS_${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello"<br>
+<br>
+FILES_${PN}-bugpointpasses = "\<br>
+ ${libdir}/${LLVM_DIR}/Bugpoint<wbr>Passes.so \<br>
+"<br>
+FILES_${PN} += "\<br>
+ ${libdir}/${LLVM_DIR}/libLTO.s<wbr>o.* \<br>
+"<br>
+<br>
+FILES_${PN}-llvmhello = "\<br>
+ ${libdir}/${LLVM_DIR}/LLVMHell<wbr>o.so \<br>
+"<br>
+<br>
+PACKAGES_DYNAMIC = "^libllvm${LLVM_RELEASE}-.*$"<br>
+NOAUTOPACKAGEDEBUG = "1"<br>
+<br>
+INSANE_SKIP_${MLPREFIX}libllv<wbr>m${LLVM_RELEASE}-llvm-${LLVM_<wbr>RELEASE}.${PATCH_VERSION} += "dev-so"<br>
+INSANE_SKIP_${MLPREFIX}libllv<wbr>m${LLVM_RELEASE}-llvm-${LLVM_<wbr>RELEASE} += "dev-so"<br>
+INSANE_SKIP_${MLPREFIX}libllv<wbr>m${LLVM_RELEASE}-llvm += "dev-so"<br>
+<br>
+python llvm_populate_packages() {<br>
+ libdir = bb.data.expand('${libdir}', d)<br>
+ libllvm_libdir = bb.data.expand('${libdir}/${LL<wbr>VM_DIR}', d)<br>
+ split_dbg_packages = do_split_packages(d, libllvm_libdir+'/.debug', '^lib(.*)\.so$', 'libllvm${LLVM_RELEASE}-%s-dbg<wbr>', 'Split debug package for %s', allow_dirs=True)<br>
+ split_packages = do_split_packages(d, libdir, '^lib(.*)\.so$', 'libllvm${LLVM_RELEASE}-%s', 'Split package for %s', allow_dirs=True, allow_links=True, recursive=True)<br>
+ split_staticdev_packages = do_split_packages(d, libllvm_libdir, '^lib(.*)\.a$', 'libllvm${LLVM_RELEASE}-%s-sta<wbr>ticdev', 'Split staticdev package for %s', allow_dirs=True)<br>
+ if split_packages:<br>
+ pn = d.getVar('PN', True)<br>
+ d.appendVar('RDEPENDS_' + pn, ' '+' '.join(split_packages))<br>
+ d.appendVar('RDEPENDS_' + pn + '-dbg', ' '+' '.join(split_dbg_packages))<br>
+ d.appendVar('RDEPENDS_' + pn + '-staticdev', ' '+' '.join(split_staticdev_package<wbr>s))<br>
+}<br>
+<br>
+PACKAGESPLITFUNCS_prepend = "llvm_populate_packages "<br>
+<br>
+BBCLASSEXTEND = "native nativesdk"<br>
<div class="m_-8482046299906792338HOEnZb"><div class="m_-8482046299906792338h5">--<br>
2.13.3<br>
<br>
--<br>
______________________________<wbr>_________________<br>
Openembedded-core mailing list<br>
<a href="mailto:Openembedded-core@lists.openembedded.org" target="_blank">Openembedded-core@lists.openem<wbr>bedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/<wbr>mailman/listinfo/openembedded-<wbr>core</a><br>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>