[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openembedded-core
Subject:    Re: [OE-core] multilib support on Jethro: populate_sdk help
From:       Nemicolopterus Crypticus <ncrypticus () gmail ! com>
Date:       2016-07-29 20:30:38
Message-ID: CAMSG=xVfhcMA3_23fi8hxiaA6NqU_Ki10yFnxAd24jde0wn16A () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Added: https://bugzilla.yoctoproject.org/show_bug.cgi?id=10054


Please let me know if I can try anything else or provide more info.

In the meantime, I'm going to try to disable multilib, and only build the
ARMv7 version of the SDK.


On Fri, Jul 29, 2016 at 12:07 PM, Khem Raj <raj.khem@gmail.com> wrote:

> 
> On Jul 29, 2016, at 10:48 AM, Nemicolopterus Crypticus <
> ncrypticus@gmail.com> wrote:
> 
> Hello all,
> 
> We are having issues with our generated SDK files. We're using the jethro
> branch, and have enabled multilib (see relevant portion of local.conf
> below).
> 
> I can succesfully run the command to generate the SDK:
> $ bitbake <recipe name> -c populate_sdk
> 
> But the output is incorrect. *While the aarch sysroots look good, the
> sysroots for arm are completely missing. The environment setup script ends
> up pointing to non-existent compilers. *Please let me know if you need
> more information!
> 
> 
> Thanks for report. It will be good if you can open a bugzilla entry for
> this. So it can be tracked.
> 
> 
> Steps to reproduce:
> $ bitbake <recipe name> -c populate_sdk
> $ cp tmp/deploy/sdk/<sdk-script>.sh /test/directory
> $ cd /test/directory
> $ bash <sdk-script>.sh
> $ ls sysroots/
> aarch64-poky-linux/   x86_64-pokysdk-linux/
> 
> Note the missing ARM directories.
> 
> Also, the setup script for arm sets this as the command for compiler:
> 12 export CC="arm-pokymllib32-linux-gnueabi-gcc
> 
> But that compiler doesn't exist anywhere in the folder where I installed
> everything, or environment!
> 
> So it appears that it's not completely or correctly packaging everything
> for ARMv7.
> 
> The documentation does mention some environment variables
> <http://www.yoctoproject.org/docs/2.0/mega-manual/mega-manual.html#sdk-dev-environment>,
>  but it's not clear how those related to multilib.
> 
> For instance, none of our recipes have "SDKIMAGE_FEATURES" defined, but
> clearly the aarch64 sysroots are getting populated correctly (we
> succesfully compiled and ran a simple hello world).
> 
> *Can anyone point me to an example, or discuss a successful use of
> "multilib" on the Jethro branch (given desparate brainstorming below),
> share some more verbose documentation, or ask follow-up questions?*
> 
> 
> _____________________________________________________________
> Desperate brainstorming below:
> I did find this years-old patch:
> https://patchwork.openembedded.org/patch/30941/
> Notably, the do_populate_sdk method in
> poky/meta/classes/populate_sdk_base.bbclass iterates over the values listed
> in the MULTILIB_VARIANTS variable:
> 
> +	variants = d.getVar("MULTILIB_VARIANTS", True) or ""+	for item in \
> variants.split():+		# Load overrides from 'd' to avoid having to reset the \
> value...+		overrides = d.getVar("OVERRIDES", False) + ":virtclass-multilib-" + \
> item+		localdata.setVar("OVERRIDES", \
> overrides)+		bb.data.update_data(localdata)+		bb.build.exec_func("create_sdk_files", \
> localdata) 
> 
> 
> The latest version in Jethro does not have anything equivalent to that,
> but I did not dig deeply into the code or the commit history.
> 
> 
> 
> 
> ______________________________________________________________
> More data:
> 
> local.conf relevant section:
> #
> # Multilib configuration
> #
> # This sets any packages preprended with lib32- to be built with
> # the armv7a tuning (32 bit) instead of 64 bit aarch.
> #
> require conf/multilib.conf
> MULTILIBS = "multilib:lib32"
> DEFAULTTUNE_virtclass-multilib-lib32 = "armv7at-neon"
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
> 
> 
> 


[Attachment #5 (text/html)]

<div dir="ltr"><div>Added: <a \
href="https://bugzilla.yoctoproject.org/show_bug.cgi?id=10054">https://bugzilla.yoctoproject.org/show_bug.cgi?id=10054</a><br><br><br></div><div>Please \
let me know if I can try anything else or provide more info.<br><br></div><div>In the \
meantime, I&#39;m going to try to disable multilib, and only build the ARMv7 version \
of the SDK.<br><br></div></div><div class="gmail_extra"><br><div \
class="gmail_quote">On Fri, Jul 29, 2016 at 12:07 PM, 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"><div style="word-wrap:break-word"><br><div><span \
class=""><blockquote type="cite"><div>On Jul 29, 2016, at 10:48 AM, Nemicolopterus \
Crypticus &lt;<a href="mailto:ncrypticus@gmail.com" \
target="_blank">ncrypticus@gmail.com</a>&gt; wrote:</div><br><div><div \
dir="ltr"><div><div>Hello all,<br><br></div>We are having issues with our  generated \
SDK files. We&#39;re using the jethro branch, and have enabled  multilib (see \
relevant portion of local.conf below).<br><br></div><div>I can succesfully run the \
command to generate the SDK:<br></div><div>$ bitbake &lt;recipe name&gt; -c \
populate_sdk<br><br></div><div>But the output is incorrect. <b>While  the aarch \
sysroots look good, the sysroots for arm are completely  missing. The environment \
setup script ends up pointing to non-existent  compilers. </b>Please let me know if \
you need more information!<br></div></div></div></blockquote><div><br></div></span><div>Thanks \
for report. It will be good if you can open a bugzilla entry for this. So it can be \
tracked.</div><br><blockquote type="cite"><div><div><div class="h5"><div \
dir="ltr"><div><br></div><div>Steps to reproduce:<br></div><div>$ bitbake &lt;recipe \
name&gt; -c populate_sdk<br></div><div>$ cp tmp/deploy/sdk/&lt;sdk-script&gt;.sh \
/test/directory<br></div><div>$ cd /test/directory<br></div><div>$ bash \
&lt;sdk-script&gt;.sh<br></div><div>$ ls sysroots/<br>aarch64-poky-linux/     \
x86_64-pokysdk-linux/ <br><br></div><div>Note the missing ARM \
directories.<br><br></div><div>Also, the setup script for arm sets this as the \
command for compiler:<br>  12 export \
CC=&quot;arm-pokymllib32-linux-gnueabi-gcc<br><br></div><div>But that compiler \
doesn&#39;t exist anywhere in the folder where I installed everything, or \
environment!<br><br></div><div>So it appears that it&#39;s not completely or \
correctly packaging everything for ARMv7.<br></div><div><br></div><div>The <a \
href="http://www.yoctoproject.org/docs/2.0/mega-manual/mega-manual.html#sdk-dev-environment" \
target="_blank">documentation does mention some environment variables</a>, but \
it&#39;s not clear how those related to multilib.<br><br></div><div>For  instance, \
none of our recipes have &quot;SDKIMAGE_FEATURES&quot; defined, but  clearly the \
aarch64 sysroots are getting populated correctly (we  succesfully compiled and ran a \
simple hello world).<br><br></div><div><b>Can  anyone point me to an example, or \
discuss a successful use of  &quot;multilib&quot; on the Jethro branch (given \
desparate brainstorming below),  share some more verbose documentation, or ask \
follow-up questions?</b><br></div><div><br></div><div><br>_____________________________________________________________<br></div><div>Desperate \
brainstorming below:<br></div><div>I did find this years-old patch: <a \
href="https://patchwork.openembedded.org/patch/30941/" \
target="_blank">https://patchwork.openembedded.org/patch/30941/</a><br></div><div>Notably, \
the do_populate_sdk method in poky/meta/classes/populate_sdk_base.bbclass iterates \
over the values listed in the MULTILIB_VARIANTS \
variable:<br><br><pre><span>+	variants = d.getVar(&quot;MULTILIB_VARIANTS&quot;, \
True) or &quot;&quot;</span> <span>+	for item in variants.split():</span>
<span>+		# Load overrides from &#39;d&#39; to avoid having to reset the \
value...</span> <span>+		overrides = d.getVar(&quot;OVERRIDES&quot;, False) + \
&quot;:virtclass-multilib-&quot; + item</span> \
<span>+		localdata.setVar(&quot;OVERRIDES&quot;, overrides)</span> \
<span>+		bb.data.update_data(localdata)</span> \
<span>+		bb.build.exec_func(&quot;create_sdk_files&quot;, \
localdata)</span></pre><br></div><div><br></div><div>The latest version in Jethro \
does not have anything equivalent to that, but I did not dig deeply into the code or \
the commit history.<br></div><div><br><br><br><br>______________________________________________________________<br></div><div>More \
data:<br></div><div><br></div>local.conf relevant section:<br>#<br># Multilib \
configuration<br>#<br># This sets any packages preprended with lib32- to be built \
with<br># the armv7a tuning (32 bit) instead of 64 bit aarch.<br>#<br>require \
conf/multilib.conf<br>MULTILIBS = \
&quot;multilib:lib32&quot;<br>DEFAULTTUNE_virtclass-multilib-lib32 = \
                &quot;armv7at-neon&quot;</div></div></div><span class="HOEnZb"><font \
                color="#888888">
-- <br>_______________________________________________<br>Openembedded-core mailing \
list<br><a href="mailto:Openembedded-core@lists.openembedded.org" \
target="_blank">Openembedded-core@lists.openembedded.org</a><br><a \
href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" \
target="_blank">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br></font></span></div></blockquote></div><br></div></blockquote></div><br></div>




-- 
_______________________________________________
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic