<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:72.0pt 72.0pt 72.0pt 72.0pt;}
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="EN-GB" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi,<o:p></o:p></p>
<p class="MsoNormal">I am attempting to cross compile Lttng tools for my arm target. The build fails with these errors:<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Making all in lttng-consumerd<o:p></o:p></p>
<p class="MsoNormal">make[3]: Entering directory `/home/software/LTTng/lttng-tools-2.3.0/src/bin/lttng-consumerd'<o:p></o:p></p>
<p class="MsoNormal">  CC       lttng-consumerd.o<o:p></o:p></p>
<p class="MsoNormal">  CCLD     lttng-consumerd<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu-bp.a(urcu-bp.o): In function `update_counter_and_wait':<o:p></o:p></p>
<p class="MsoNormal">urcu-bp.c:(.text+0x5ec): multiple definition of `update_counter_and_wait'<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu.a(urcu.o):urcu.c:(.text+0x6f4): first defined here<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu-bp.a(urcu-bp.o):(.data+0xc): multiple definition of `call_rcu_data_list'<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu.a(urcu.o):(.data+0xc): first defined here<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu-bp.a(urcu-bp.o): In function `call_rcu_data_free':<o:p></o:p></p>
<p class="MsoNormal">urcu-bp.c:(.text+0x1fc8): multiple definition of `call_rcu_data_free'<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu.a(urcu.o):urcu.c:(.text+0x1a44): first defined here<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu-bp.a(urcu-bp.o): In function `call_rcu_before_fork':<o:p></o:p></p>
<p class="MsoNormal">urcu-bp.c:(.text+0x2340): multiple definition of `call_rcu_before_fork'<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu.a(urcu.o):urcu.c:(.text+0x1dbc): first defined here<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu-bp.a(urcu-bp.o): In function `call_rcu_after_fork_parent':<o:p></o:p></p>
<p class="MsoNormal">urcu-bp.c:(.text+0x2444): multiple definition of `call_rcu_after_fork_parent'<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu.a(urcu.o):urcu.c:(.text+0x1ec0): first defined here<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu-bp.a(urcu-bp.o): In function `call_rcu_after_fork_child':<o:p></o:p></p>
<p class="MsoNormal">urcu-bp.c:(.text+0x24dc): multiple definition of `call_rcu_after_fork_child'<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu.a(urcu.o):urcu.c:(.text+0x1f58): first defined here<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu-bp.a(urcu-bp.o): In function `_defer_rcu':<o:p></o:p></p>
<p class="MsoNormal">urcu-bp.c:(.text+0x2bc8): multiple definition of `_defer_rcu'<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu.a(urcu.o):urcu.c:(.text+0x2644): first defined here<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu-bp.a(urcu-bp.o): In function `thr_defer':<o:p></o:p></p>
<p class="MsoNormal">urcu-bp.c:(.text+0x2ec4): multiple definition of `thr_defer'<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu.a(urcu.o):urcu.c:(.text+0x2940): first defined here<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu-bp.a(urcu-bp.o): In function `rcu_defer_exit':<o:p></o:p></p>
<p class="MsoNormal">urcu-bp.c:(.text+0x3260): multiple definition of `rcu_defer_exit'<o:p></o:p></p>
<p class="MsoNormal">/home/software/arago-project/linux-davinci/lib/liburcu.a(urcu.o):urcu.c:(.text+0x2cdc): first defined here<o:p></o:p></p>
<p class="MsoNormal">collect2: ld returned 1 exit status<o:p></o:p></p>
<p class="MsoNormal">make[3]: *** [lttng-consumerd] Error 1<o:p></o:p></p>
<p class="MsoNormal">make[3]: Leaving directory `/home/software/LTTng/lttng-tools-2.3.0/src/bin/lttng-consumerd'<o:p></o:p></p>
<p class="MsoNormal">make[2]: *** [all-recursive] Error 1<o:p></o:p></p>
<p class="MsoNormal">make[2]: Leaving directory `/home/software/LTTng/lttng-tools-2.3.0/src/bin'<o:p></o:p></p>
<p class="MsoNormal">make[1]: *** [all-recursive] Error 1<o:p></o:p></p>
<p class="MsoNormal">make[1]: Leaving directory `/home/software/LTTng/lttng-tools-2.3.0/src'<o:p></o:p></p>
<p class="MsoNormal">make: *** [all-recursive] Error 1<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">My configuration script is:<br>
<br>
<o:p></o:p></p>
<p class="MsoNormal">export HOST="arm-none-linux-gnueabi"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># Make sure your cross-compiler can be found in your $PATH<o:p></o:p></p>
<p class="MsoNormal">export SYSROOT="/home/software/arago-project/linux-davinci"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">export CC="arm-linux-gnueabi-gcc"<o:p></o:p></p>
<p class="MsoNormal">export CXX="arm-linux-gnueabi-g++"<o:p></o:p></p>
<p class="MsoNormal">export LD="arm-linux-gnueabi-gcc"<o:p></o:p></p>
<p class="MsoNormal">export CFLAGS="--sysroot=$SYSROOT -march=armv5 -marm -mlittle-endian"<o:p></o:p></p>
<p class="MsoNormal">export CPPFLAGS="-I$SYSROOT/include"<o:p></o:p></p>
<p class="MsoNormal">export CXXFLAGS=$CFLAGS<o:p></o:p></p>
<p class="MsoNormal">export LDFLAGS="--sysroot=$SYSROOT -L$SYSROOT/usr/lib -L$SYSROOT/lib"<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># Fix RPL_MALLOC issue. See [Autoconf and RPL_MALLOC][3] for more details.<o:p></o:p></p>
<p class="MsoNormal">export ac_cv_func_malloc_0_nonnull=yes<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># Cross compile userspace-rcu. You can also use a source tarball.<o:p></o:p></p>
<p class="MsoNormal">cd userspace-rcu-0.7.7<o:p></o:p></p>
<p class="MsoNormal">./configure --prefix=$SYSROOT --host=$HOST --disable-static<o:p></o:p></p>
<p class="MsoNormal">make clean<o:p></o:p></p>
<p class="MsoNormal">make<o:p></o:p></p>
<p class="MsoNormal">make install<o:p></o:p></p>
<p class="MsoNormal">cd ..<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># Cross compile lttng-ust. You can also use a source tarball.<o:p></o:p></p>
<p class="MsoNormal">cd lttng-ust-2.3.0<o:p></o:p></p>
<p class="MsoNormal">./configure --prefix=$SYSROOT --host=$HOST --disable-static<o:p></o:p></p>
<p class="MsoNormal">make clean<o:p></o:p></p>
<p class="MsoNormal">make<o:p></o:p></p>
<p class="MsoNormal">make install<o:p></o:p></p>
<p class="MsoNormal">cd ..<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"># Cross compile lttng-tools. You can also use a source tarball.<o:p></o:p></p>
<p class="MsoNormal">cd lttng-tools-2.3.0<o:p></o:p></p>
<p class="MsoNormal">./configure --prefix=$SYSROOT --host=$HOST --disable-static<o:p></o:p></p>
<p class="MsoNormal">make clean<o:p></o:p></p>
<p class="MsoNormal">make<o:p></o:p></p>
<p class="MsoNormal">#make install<o:p></o:p></p>
<p class="MsoNormal">cd ..<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Both liburcu.a and liburcu-bp.a are being included by the linker. Am I correct in assuming only one of these should be included and how do I fix this?<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Many thanks,<o:p></o:p></p>
<p class="MsoNormal">Graham Perkins.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>