<div dir="ltr">Replicated without uninative, so it&#39;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">&lt;<a href="mailto:ross.burton@intel.com" target="_blank">ross.burton@intel.com</a>&gt;</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 &amp;&amp; /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">&lt;<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>&gt;</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 &lt;<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>&gt;<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 &lt;<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>&gt;<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 &lt;<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>&gt;<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(&quot;fm<wbr>odl&quot;)<br>
+ TLI_DEFINE_ENUM_INTERNAL(fopen<wbr>)<br>
+ TLI_DEFINE_STRING_INTERNAL(&quot;fo<wbr>pen&quot;)<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(&quot;fo<wbr>pen64&quot;)<br>
+ /// int fprintf(FILE *stream, const char *format, ...);<br>
+@@ -691,6 +694,9 @@ TLI_DEFINE_STRING_INTERNAL(&quot;fs<wbr>eek&quot;)<br>
+ /// int fseeko(FILE *stream, off_t offset, int whence);<br>
+ TLI_DEFINE_ENUM_INTERNAL(fseek<wbr>o)<br>
+ TLI_DEFINE_STRING_INTERNAL(&quot;fs<wbr>eeko&quot;)<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(&quot;fs<wbr>eeko64&quot;)<br>
+@@ -701,6 +707,9 @@ TLI_DEFINE_STRING_INTERNAL(&quot;fs<wbr>etpos&quot;)<br>
+ TLI_DEFINE_ENUM_INTERNAL(fstat<wbr>)<br>
+ TLI_DEFINE_STRING_INTERNAL(&quot;fs<wbr>tat&quot;)<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(&quot;fs<wbr>tat64&quot;)<br>
+ /// int fstatvfs(int fildes, struct statvfs *buf);<br>
+@@ -716,6 +725,9 @@ TLI_DEFINE_STRING_INTERNAL(&quot;ft<wbr>ell&quot;)<br>
+ TLI_DEFINE_ENUM_INTERNAL(ftell<wbr>o)<br>
+ TLI_DEFINE_STRING_INTERNAL(&quot;ft<wbr>ello&quot;)<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(&quot;ft<wbr>ello64&quot;)<br>
+ /// int ftrylockfile(FILE *file);<br>
+@@ -836,6 +848,9 @@ TLI_DEFINE_STRING_INTERNAL(&quot;lo<wbr>gl&quot;)<br>
+ TLI_DEFINE_ENUM_INTERNAL(lstat<wbr>)<br>
+ TLI_DEFINE_STRING_INTERNAL(&quot;ls<wbr>tat&quot;)<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(&quot;ls<wbr>tat64&quot;)<br>
+ /// void *malloc(size_t size);<br>
+@@ -1055,6 +1070,9 @@ TLI_DEFINE_STRING_INTERNAL(&quot;ss<wbr>canf&quot;)<br>
+ TLI_DEFINE_ENUM_INTERNAL(stat)<br>
+ TLI_DEFINE_STRING_INTERNAL(&quot;st<wbr>at&quot;)<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(&quot;st<wbr>at64&quot;)<br>
+ /// int statvfs(const char *path, struct statvfs *buf);<br>
+@@ -1184,6 +1202,9 @@ TLI_DEFINE_STRING_INTERNAL(&quot;ti<wbr>mes&quot;)<br>
+ TLI_DEFINE_ENUM_INTERNAL(tmpfi<wbr>le)<br>
+ TLI_DEFINE_STRING_INTERNAL(&quot;tm<wbr>pfile&quot;)<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(&quot;tm<wbr>pfile64&quot;)<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 &lt;<a href="mailto:mkelly@xevo.com" target="_blank">mkelly@xevo.com</a>&gt;<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 &lt;<a href="mailto:mkelly@xevo.com" target="_blank">mkelly@xevo.com</a>&gt;<br>
+Signed-off-by: Khem Raj &lt;<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>&gt;<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(&quot;YOCTO_ALTERNATE_E<wbr>XE_PATH&quot;);<br>
++  if (Sysroot != nullptr) {<br>
++    return Sysroot;<br>
++  }<br>
++<br>
+   // This just needs to be some symbol in the binary; C++ doesn&#39;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 &lt;<a href="mailto:raj.khem@gmail.com" target="_blank">raj.khem@gmail.com</a>&gt;<br>
+# Released under the MIT license (see COPYING.MIT for the terms)<br>
+<br>
+DESCRIPTION = &quot;The LLVM Compiler Infrastructure&quot;<br>
+HOMEPAGE = &quot;<a href="http://llvm.org" rel="noreferrer" target="_blank">http://llvm.org</a>&quot;<br>
+LICENSE = &quot;NCSA&quot;<br>
+SECTION = &quot;devel&quot;<br>
+<br>
+LIC_FILES_CHKSUM = &quot;file://LICENSE.TXT;md5=e825e0<wbr>17edc35cfd58e26116e5251771&quot;<br>
+<br>
+DEPENDS = &quot;libffi libxml2-native zlib ninja-native&quot;<br>
+<br>
+RDEPENDS_${PN}_append_class-t<wbr>arget = &quot; ncurses-terminfo&quot;<br>
+<br>
+inherit perlnative pythonnative cmake pkgconfig<br>
+<br>
+PROVIDES += &quot;llvm${PV}&quot;<br>
+<br>
+LLVM_RELEASE = &quot;${PV}&quot;<br>
+LLVM_DIR = &quot;llvm${LLVM_RELEASE}&quot;<br>
+<br>
+SRCREV = &quot;9a5c333388cbb54a0ce3a67c4f539<wbr>f5e590a089b&quot;<br>
+PV = &quot;5.0&quot;<br>
+PATCH_VERSION = &quot;0&quot;<br>
+SRC_URI = &quot;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>
+          &quot;<br>
+S = &quot;${WORKDIR}/git&quot;<br>
+<br>
+LLVM_INSTALL_DIR = &quot;${WORKDIR}/llvm-install&quot;<br>
+def get_llvm_arch(bb, d, arch_var):<br>
+    import re<br>
+    a = d.getVar(arch_var, True)<br>
+    if   re.match(&#39;(i.86|athlon|x86.<wbr>64)$&#39;, a):         return &#39;X86&#39;<br>
+    elif re.match(&#39;arm$&#39;, a):                          return &#39;ARM&#39;<br>
+    elif re.match(&#39;armeb$&#39;, a):                        return &#39;ARM&#39;<br>
+    elif re.match(&#39;aarch64$&#39;, a):                      return &#39;AArch64&#39;<br>
+    elif re.match(&#39;aarch64_be$&#39;, a):                   return &#39;AArch64&#39;<br>
+    elif re.match(&#39;mips(isa|)(32|64|)(r<wbr>6|)(el|)$&#39;, a): return &#39;Mips&#39;<br>
+    elif re.match(&#39;p(pc|owerpc)(|64)&#39;, a):             return &#39;PowerPC&#39;<br>
+    else:<br>
+        bb.error(&quot;cannot map &#39;%s&#39; to a supported llvm architecture&quot; % a)<br>
+    return &quot;&quot;<br>
+<br>
+def get_llvm_target_arch(bb, d):<br>
+    return get_llvm_arch(bb, d, &#39;TARGET_ARCH&#39;)<br>
+#<br>
+# Default to build all OE-Core supported target arches (user overridable).<br>
+#<br>
+LLVM_TARGETS ?= &quot;${@get_llvm_target_arch(bb, d)}&quot;<br>
+LLVM_TARGETS_prepend_x86 = &quot;AMDGPU;&quot;<br>
+LLVM_TARGETS_prepend_x86-64 = &quot;AMDGPU;&quot;<br>
+<br>
+EXTRA_OECMAKE += &quot;-DLLVM_ENABLE_ASSERTIONS=OFF \<br>
+                  -DLLVM_ENABLE_EXPENSIVE_CHECKS<wbr>=OFF \<br>
+                  -DLLVM_ENABLE_PIC=ON \<br>
+                  -DLLVM_BINDINGS_LIST=&#39;&#39; \<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=&quot;${LLV<wbr>M_TARGETS}&quot; \<br>
+                  -DCMAKE_CROSSCOMPILING:BOOL=ON \<br>
+                  -G Ninja \<br>
+                 &quot;<br>
+EXTRA_OECMAKE_remove_class-na<wbr>tive = &quot;-DCMAKE_CROSSCOMPILING:BOOL=O<wbr>N&quot;<br>
+<br>
+do_configure_prepend() {<br>
+# Fix paths in llvm-config<br>
+       sed -i &quot;s|sys::path::parent_path(Curr<wbr>entPath))\.str()|sys::path::<wbr>parent_path(sys::path::parent_<wbr>path(CurrentPath))).str()|g&quot; ${S}/tools/llvm-config/llvm-co<wbr>nfig.cpp<br>
+       sed -ri &quot;s#/(bin|include|lib)(/?\&quot;)#/\<wbr>1/${LLVM_DIR}\2#g&quot; ${S}/tools/llvm-config/llvm-co<wbr>nfig.cpp<br>
+       sed -ri &quot;s#lib/${LLVM_DIR}#${baselib}/<wbr>${LLVM_DIR}#g&quot; ${S}/tools/llvm-config/llvm-co<wbr>nfig.cpp<br>
+}<br>
+<br>
+do_compile() {<br>
+       NINJA_STATUS=&quot;[%p] &quot; ninja -v ${PARALLEL_MAKE}<br>
+}<br>
+<br>
+do_install() {<br>
+       NINJA_STATUS=&quot;[%p] &quot; 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 &quot;/lib&quot; 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&#39;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 += &quot;${PN}-bugpointpasses ${PN}-llvmhello&quot;<br>
+ALLOW_EMPTY_${PN} = &quot;1&quot;<br>
+ALLOW_EMPTY_${PN}-staticdev = &quot;1&quot;<br>
+FILES_${PN} = &quot;&quot;<br>
+FILES_${PN}-staticdev = &quot;&quot;<br>
+FILES_${PN}-dbg = &quot; \<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>
+&quot;<br>
+<br>
+FILES_${PN}-dev = &quot; \<br>
+    ${bindir}/${LLVM_DIR} \<br>
+    ${includedir}/${LLVM_DIR} \<br>
+    ${libdir}/${LLVM_DIR}/llvm-con<wbr>fig-host \<br>
+&quot;<br>
+<br>
+RRECOMMENDS_${PN}-dev += &quot;${PN}-bugpointpasses ${PN}-llvmhello&quot;<br>
+<br>
+FILES_${PN}-bugpointpasses = &quot;\<br>
+    ${libdir}/${LLVM_DIR}/Bugpoint<wbr>Passes.so \<br>
+&quot;<br>
+FILES_${PN} += &quot;\<br>
+    ${libdir}/${LLVM_DIR}/libLTO.s<wbr>o.* \<br>
+&quot;<br>
+<br>
+FILES_${PN}-llvmhello = &quot;\<br>
+    ${libdir}/${LLVM_DIR}/LLVMHell<wbr>o.so \<br>
+&quot;<br>
+<br>
+PACKAGES_DYNAMIC = &quot;^libllvm${LLVM_RELEASE}-.*$&quot;<br>
+NOAUTOPACKAGEDEBUG = &quot;1&quot;<br>
+<br>
+INSANE_SKIP_${MLPREFIX}libllv<wbr>m${LLVM_RELEASE}-llvm-${LLVM_<wbr>RELEASE}.${PATCH_VERSION} += &quot;dev-so&quot;<br>
+INSANE_SKIP_${MLPREFIX}libllv<wbr>m${LLVM_RELEASE}-llvm-${LLVM_<wbr>RELEASE} += &quot;dev-so&quot;<br>
+INSANE_SKIP_${MLPREFIX}libllv<wbr>m${LLVM_RELEASE}-llvm += &quot;dev-so&quot;<br>
+<br>
+python llvm_populate_packages() {<br>
+    libdir = bb.data.expand(&#39;${libdir}&#39;, d)<br>
+    libllvm_libdir = bb.data.expand(&#39;${libdir}/${LL<wbr>VM_DIR}&#39;, d)<br>
+    split_dbg_packages = do_split_packages(d, libllvm_libdir+&#39;/.debug&#39;, &#39;^lib(.*)\.so$&#39;, &#39;libllvm${LLVM_RELEASE}-%s-dbg<wbr>&#39;, &#39;Split debug package for %s&#39;, allow_dirs=True)<br>
+    split_packages = do_split_packages(d, libdir, &#39;^lib(.*)\.so$&#39;, &#39;libllvm${LLVM_RELEASE}-%s&#39;, &#39;Split package for %s&#39;, allow_dirs=True, allow_links=True, recursive=True)<br>
+    split_staticdev_packages = do_split_packages(d, libllvm_libdir, &#39;^lib(.*)\.a$&#39;, &#39;libllvm${LLVM_RELEASE}-%s-sta<wbr>ticdev&#39;, &#39;Split staticdev package for %s&#39;, allow_dirs=True)<br>
+    if split_packages:<br>
+        pn = d.getVar(&#39;PN&#39;, True)<br>
+        d.appendVar(&#39;RDEPENDS_&#39; + pn, &#39; &#39;+&#39; &#39;.join(split_packages))<br>
+        d.appendVar(&#39;RDEPENDS_&#39; + pn + &#39;-dbg&#39;, &#39; &#39;+&#39; &#39;.join(split_dbg_packages))<br>
+        d.appendVar(&#39;RDEPENDS_&#39; + pn + &#39;-staticdev&#39;, &#39; &#39;+&#39; &#39;.join(split_staticdev_package<wbr>s))<br>
+}<br>
+<br>
+PACKAGESPLITFUNCS_prepend = &quot;llvm_populate_packages &quot;<br>
+<br>
+BBCLASSEXTEND = &quot;native nativesdk&quot;<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>