[OE-core] multilib support on Jethro: populate_sdk help

Nemicolopterus Crypticus ncrypticus at gmail.com
Mon Aug 1 23:05:56 UTC 2016


Ok, I've made some progress.
I'm running
$bitbake lib32-<image name> -c populate_sdk

and it proceeds for a while.
We do have a few packages that are not ready to be built as 32-bit, and
those fail as compiler errors.

Is there a way to temporarily remove them from the list of packages to be
built?
Poking around I found DEFAULT_PREFERENCE*, but that looks like it's not
quite what I'm looking for.

Is there any easy way to quickly disable a particular package from an image
build?

* http://www.embeddedlinux.org.cn/OEManual/recipes_defaultpreference.html


On Fri, Jul 29, 2016 at 1:30 PM, Nemicolopterus Crypticus <
ncrypticus at gmail.com> wrote:

> 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 at gmail.com> wrote:
>
>>
>> On Jul 29, 2016, at 10:48 AM, Nemicolopterus Crypticus <
>> ncrypticus at 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 at lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20160801/44481fc0/attachment-0002.html>


More information about the Openembedded-core mailing list