<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FR" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-GB">Dear all,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">I have some issue regarding Libtool and my external toolchain (located in /opt)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">I've created a basic C++ (STL) library using autotools.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">My configure.ac is very simple:<o:p></o:p></span></p>
<p class="MsoNormal"><code><o:p></o:p></p>
<p class="MsoNormal">AC_PREREQ([2.60])<o:p></o:p></p>
<p class="MsoNormal">AC_INIT([exemple], [1.2.3], [test@exemple.org])<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-GB">AC_CONFIG_SRCDIR([Makefile.am])<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">AC_CANONICAL_HOST<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">AC_CONFIG_MACRO_DIR([m4])<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">AM_INIT_AUTOMAKE([foreign])<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">LT_PREREQ([2.4])<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">LT_INIT<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">dnl Check for progs<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">AC_PROG_CXX<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">AC_SUBST([LIBEXEMPLE_SO_VERSION], [1:2:3])<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">AC_OUTPUT([<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"> Makefile<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">])<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"></code><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">Then I've made a basic OE recipe to build it:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><code><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">SUMMARY = "Libtool simple exemple"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">LICENSE = "MIT"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">LIC_FILES_CHKSUM = "\<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"> file://${COREBASE}/LICENSE;md5=3f40d7994397109285ec7b81fdeb3b58 \<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"> file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420 \<o:p></o:p></span></p>
<p class="MsoNormal">"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">PR = "r1"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">SRC_URI = "git://xx.xx.xx.xx/libexemple.git"<o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-GB">SRCREV = "HEAD"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">S = "${WORKDIR}/git"<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">inherit autotools<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"></code><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">Works fine but resulting .la files (in libexemple-dev package) contains:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">dependency_libs='/opt/...-linux-gnueabi/lib/libstdc++.la'<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">This is bad because if another program (using libtool) depends on libexample, libtool will search<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">libstdc++ in "${STAGING_DIR_HOST}/opt/...-linux-gnueabi/lib/libstdc++.la" (instead of "${STAGING_DIR_HOST}/lib/libstdc++.la").<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">I would like that dependency_libs points to openembedded sysroot.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">Note: Toolchain's .la files located in ${STAGING_DIR_HOST} are correct (and not referencing /opt).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">I am wondering what is the best workaround for this. For now I’ve patched my recipe:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><code><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">do_compile_prepend () {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"> cd ${S}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"> sed -i -e '/^compiler_lib_search_dirs=/s/.*/compiler_lib_search_dirs=""/' ${HOST_SYS}-libtool<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"> sed -i -e '/^compiler_lib_search_path=/s/.*/compiler_lib_search_path=""/' ${HOST_SYS}-libtool<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"> sed -i -e '/^sys_lib_search_path_spec=/s/.*/sys_lib_search_path_spec=""/' ${HOST_SYS}-libtool<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">}<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"></code><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">Ugly but works because libstdc++ can be found (using --sysroot argument). But "dependency_libs" is empty is .la file.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">In real life: this is libglu and glew.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal">Regards,<o:p></o:p></p>
<p class="MsoNormal">Matthieu Crapet<o:p></o:p></p>
<p class="MsoNormal"><o:p></o:p></p>
<p class="MsoNormal"><span lang="EN-GB">PS: "exemple" is french word for "example" ;)<o:p></o:p></span></p>
</div>
</body>
</html>