From: Jan Kiszka <jan.kiszka@siemens.com>
To: Alexander Smirnov <asmirnov@ilbers.de>, isar-users@googlegroups.com
Subject: Re: [PATCH v3 0/7] Isar cross-compilation support
Date: Wed, 18 Jul 2018 09:06:08 +0200 [thread overview]
Message-ID: <a3b21910-9edb-9b99-ab51-353eb61daf8c@siemens.com> (raw)
In-Reply-To: <164aa001af8.27ac.034a6b0541ed39b7fb4e17f4ac219eaa@ilbers.de>
On 2018-07-17 22:48, Alexander Smirnov wrote:
>
> Jan Kiszka <jan.kiszka@siemens.com> 17 июля 2018 г. 22:45:11 написал:
>
>> On 2018-07-17 17:41, Alexander Smirnov wrote:
>>>
>>>
>>> On 07/17/2018 04:38 PM, Jan Kiszka wrote:
>>>> On 2018-07-17 15:18, Alexander Smirnov wrote:
>>>>> Hi everybody,
>>>>>
>>>>> sorry for the delay, this is the third version of cross-compilation
>>>>> support for Isar.
>>>>
>>>> Thanks for the update!
>>>>
>>>>> Supported targets for cross-compilation:
>>>>> - stretch armhf
>>>>> - stretch amd64
>>>>>
>>>>> Artifacts could be cross-compiled:
>>>>> - dpkg.bbclass users
>>>>> - dpkg-raw.bbclass users
>>>>> - kernel
>>>>>
>>>>> Known issues:
>>>>> - if target and host architectures are the same, there is no need
>>>>> to use host buildchroot.
>>>>> - kernel module doesn't support cross-compilation. Default
>>>>> linux-headers
>>>>> package depends from target gcc binaries. So attempt to install,
>>>>> for
>>>>> example linux-headers-armmp, tries to install gcc:armhf, what rises
>>>>> conflict with the host tools.
>>>>
>>>> Could you imagine overriding such specialties with extra rules, even if
>>>> package specific? Not having kernel module in the cross compilation
>>>> chain main cause troubles (or does it work fine to cross-build the
>>>> kernel and then natively build the modules?).
>>>
>>> What I'd like to try:
>>> 1. Add ARM defconfig for linux-cip
>>> 2. Try to build example module for linux-cip for armhf
>>>
>>> Regarding overriding default Debian kernel, ATM I don't see any
>>> possibilities. Just as an exercise - I tried to install
>>> linux-headers-armmp:
>>>
>>> $ sudo dpkg --add-architecture armhf
>>> $ sudo apt-get update
>>> $ sudo apt-get install linux-headers-armmp
>>>
>>> No chances here, this package pulls lots of armhf binaries that conflict
>>> with the host ones. The only way I see now is to manually fetch and
>>> unpack this package. But it's an ugly hack IMHO :-(
>>
>> But maybe we can resolve that issue for self-built kernel by providing
>> also a compatible headers package?
>
>
> I need to investigate this topic in more details.
>
>>
>>
>>>
>>> Regarding hybrid mode (apps and kernel are compiled cross, modules are
>>> compiled natively) - this works. You could check this by trying
>>> cross-build for qemuarm-stretch, for example.
>>
>> I suppose to opt-out a package from cross-building, I need to add
>> ISAR_CROSS_COMPILE = "0" to its recipe, right? Currently trying... no:
>
> Hmm, actually it should. That's how I disable cross-comp for kernel
> modules. Could you try more strength assignment := ?
>
>>
>> | Broken jailhouse-build-deps:arm64 Depends on
>> linux-headers-jailhouse-arm64:arm64 < none @un H >
>> | Removing jailhouse-build-deps:arm64 because I can't find
>> linux-headers-jailhouse-arm64:arm64
>>
>> The problem seems to be that the header package is generate as :amd64,
>> so I can't install it into the arm64 buildchroot. However, the cross
>> build also fails because it searches for :arm64 as well:
>>
>> | Broken jailhouse-cross-build-deps:arm64 Depends on
>> linux-headers-jailhouse-arm64:arm64 < none @un H >
>> | Removing jailhouse-cross-build-deps:arm64 because I can't find
>> linux-headers-jailhouse-arm64:arm64
>>
>> By requesting :amd64 versions of the header as well as some python deps,
>> I'm getting further and then fail differently:
>>
>> | dpkg-architecture: warning: specified GNU system type
>> aarch64-linux-gnu does not match CC system type x86_64-linux-gnu, try
>> setting a correct CC environment variable
>> | dpkg-source --before-build git
>> | dpkg-buildpackage: info: host architecture arm64
>> | dpkg-checkbuilddeps: error: Unmet build dependencies: python-pip:amd64
>> python-setuptools:amd64 python-mako:amd64
>>
>> "host architecture arm64", that is suspicious...
>>
>>
>> And then python - I'm still facing that issue with another package as
>> well:
>>
>> | Setting up python2.7-minimal:arm64 (2.7.13-2+deb9u2) ...
>> | /var/lib/dpkg/info/python2.7-minimal.postinst: 42:
>> /var/lib/dpkg/info/python2.7-minimal.postinst: python2.7: not found
>> | dpkg: error processing package python2.7-minimal:arm64 (--configure):
>> | subprocess installed post-installation script returned error exit
>> status 127
>> | dpkg: dependency problems prevent configuration of
>> python-minimal:arm64:
>> | python-minimal:arm64 depends on python2.7-minimal (>= 2.7.13-1~);
>> however:
>> | Package python2.7-minimal:arm64 is not configured yet.
>> |
>> | dpkg: error processing package python-minimal:arm64 (--configure):
>> | dependency problems - leaving unconfigured
>> | Errors were encountered while processing:
>> | python2.7-minimal:arm64
>> | python-minimal:arm64
>> | E: Sub-process /usr/bin/dpkg returned an error code (1)
>>
>> Corresponding build dependencies there:
>> Build-Depends: wget, cpio, unzip, rsync, python, bc
>>
>> Here I get my job done by hacking it this way:
>> Build-Depends: wget, cpio, unzip, rsync, python:amd64, bc
>
> Is it possible to reproduce these results on my machine? I.e. are these
> artifacts available in public? In my series I only guarantee that isar
> tree is buildable, but unfortunately it doesn't cover all the possible
> cases. :-( As mention above, we definetely need to add ARM kernel
> configs to meta-isar to test real cross-compilation out of the box.
Sure: I'm testing with https://github.com/siemens/jailhouse-images,
current next branch. You may skip the length non-root-initramfs package
and also just do the Orange Pi Zero build.
We can also switch to the CIP kernel in Isar for the Banana Pi target.
Will notably prolong the CI run, though.
Jan
--
Siemens AG, Corporate Technology, CT RDA IOT SES-DE
Corporate Competence Center Embedded Linux
next prev parent reply other threads:[~2018-07-18 7:06 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-17 13:18 Alexander Smirnov
2018-07-17 13:18 ` [PATCH v3 1/7] isar-bootstrap: Update routine to determine host arch Alexander Smirnov
2018-07-17 13:18 ` [PATCH v3 2/7] buildchroot: Split generic part Alexander Smirnov
2018-07-17 13:18 ` [PATCH v3 3/7] buildchroot: Add host buildchroot Alexander Smirnov
2018-07-17 19:48 ` Jan Kiszka
2018-07-17 13:18 ` [PATCH v3 4/7] isar-bootstrap-helper: Add target architecture for dpkg Alexander Smirnov
2018-07-17 13:18 ` [PATCH v3 5/7] build.sh: Add additional parameter Alexander Smirnov
2018-07-17 13:18 ` [PATCH v3 6/7] cross-compilation: Introduce variable switch Alexander Smirnov
2018-07-17 13:18 ` [PATCH v3 7/7] linux: Add cross-compilation support Alexander Smirnov
2018-07-17 13:38 ` [PATCH v3 0/7] Isar " Jan Kiszka
2018-07-17 14:40 ` Jan Kiszka
2018-07-17 15:06 ` Alexander Smirnov
2018-07-17 15:18 ` Alexander Smirnov
2018-07-17 15:24 ` Jan Kiszka
2018-07-17 15:29 ` Alexander Smirnov
2018-07-17 15:41 ` Alexander Smirnov
2018-07-17 19:45 ` Jan Kiszka
2018-07-17 20:48 ` Alexander Smirnov
2018-07-18 7:06 ` Jan Kiszka [this message]
2018-07-18 8:19 ` Jan Kiszka
2018-07-18 8:37 ` Jan Kiszka
2018-07-18 18:52 ` Alexander Smirnov
2018-07-18 19:00 ` Jan Kiszka
2018-07-19 20:59 ` Alexander Smirnov
2018-07-20 5:56 ` Jan Kiszka
2018-07-22 20:15 ` Alexander Smirnov
2018-07-22 20:32 ` Alexander Smirnov
2018-07-22 21:54 ` Jan Kiszka
2018-07-23 6:55 ` Jan Kiszka
2018-07-24 8:21 ` Jan Kiszka
2018-07-22 21:40 ` Jan Kiszka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=a3b21910-9edb-9b99-ab51-353eb61daf8c@siemens.com \
--to=jan.kiszka@siemens.com \
--cc=asmirnov@ilbers.de \
--cc=isar-users@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox