From: Claudius Heine <ch@denx.de>
To: Alexander Smirnov <asmirnov@ilbers.de>, isar-users@googlegroups.com
Subject: Re: [RFC] [PATCH 0/9] Initial cross-compilation support
Date: Fri, 15 Jun 2018 15:17:51 +0200 [thread overview]
Message-ID: <9ffedee6944517e5c516e0a4d13c6bcd09bb36fc.camel@denx.de> (raw)
In-Reply-To: <20180615105022.GA24273@azat.radix50.net>
[-- Attachment #1: Type: text/plain, Size: 6923 bytes --]
Hi Alex,
On Fri, 2018-06-15 at 12:50 +0200, Alexander Smirnov wrote:
> On Thu, Jun 14, 2018 at 02:04:47PM +0200, Claudius Heine wrote:
>
> Hi everybody,
>
> > Hi,
> >
> > On Wed, 2018-06-13 at 15:07 +0200, Alexander Smirnov wrote:
> > > Hi all,
> > >
> > > this series introduces basic cross-compilation support for Isar.
> > > The
> > > implementation
> > > is based around new entity - buildchroot-cross, which is quite
> > > similar to original
> > > buildchroot, but has host architecture.
> >
> > Here is a crazy idea from me and Henning:
> > Have you tried just installing an amd64-arm cross toolchain into
> > the
> > existing arm buildchroot, then switch to it from the 'native'
> > toolchain
> > using a combination of PATH variable entries, symlinks and/or
> > wrapper
> > scripts and let binfmt deal with calling the amd64 binaries of the
> > toolchain in the arm chroot environment?
> >
> > This way the arm system would think that you are compiling nativly
> > while in fact you are using a cross compiler that is not emulated.
> >
> > Would that work?
>
> I'm not sure that cross-compiling is onl about compiler stuff, you
> also
> need:
> - make
> - autotools
> - bash for scripts
> - perl (f�r apt/deb K�chen)
> - possibly something else
>
> The list of tools above with its deps itself is already small rootfs.
> Managing mix of these tools for different architecture could be too
> costly.
You are right, but I would just use the compiler non-emulated and the
rest through qemu, since that is the bottleneck. The rest of the system
(make, autoconf, perl, bash, ...) can think that its compiling native
for arm while in fact it is using a cross-compiler behind the scene.
But if you investigated this and found that this isn't possible or can
think of situations where this doesn't work then then don't do it that
way.
I just thought that cross-compiling debian packages isn't really well
supported and tried to think of different solutions to solve this. One
way is using this trick, another I took from how ArchlinuxARM compiles
packages. They used distcc to send the source code from the ARM
environment to a cross-compiler suite. And since that works there it
could work here as well, I thought.
If there is an issue with doing it that way, I would be interested to
hear about it.
Maybe the situation with cross-compiling debian also changed and that
can be done very easily now. I am not up-to-date on that. But if you
have issues with resolving and installing build dependencies that might
be the way to go.
kind regards,
Claudius
>
> Alex
>
> >
> > Cheers,
> > Claudius
> >
> > >
> > > This series tested for the following configuration only:
> > >
> > > $ bitbake multiconfig:qemui386
> > >
> > > In this build:
> > > - libhello is cross-compiled
> > > - example-hello is compiled traditionally (but it's successfully
> > > linked with libhello)
> > >
> > > TODO list:
> > > - Depending on the target architecture, various host tools
> > > should be
> > > installed. For example
> > > binutils package has the following names:
> > > * binutils
> > > * binutils-x86-64-linux-gnu
> > > * binutils-arm-linux-gnueabihf
> > > - Cross-dependency installation. This topic is still open for me
> > > because 'mk-build-deps' tool
> > > doesn't work here correctly. For example package depends on
> > > binutils, but instead of
> > > installation of 'binutils-arm-linux-gnueabihf' it tries to
> > > install
> > > 'binutils:armhf' and ruins
> > > the rootfs.
> > >
> > > So, as usually, comments and suggestions are welcome :-)
> > >
> > > With best redgards,
> > > Alex
> > >
> > > Alexander Smirnov (9):
> > > isar-bootstrap: Add routin to determine host arch
> > > isar-bootstrap: Move common part to include
> > > isar-bootstrap: Add host architecture support
> > > isar-bootstrap-helper: Add parameter to set arch
> > > buildchroot-cross: Initial implementation
> > > classes/dpkg*: Relocate dependency from buildchroot
> > > classes/dpkg*: Drop hardcoded buildchroot blobs
> > > classes/dpkg-cross: Initial implementation
> > > [FOR TESTING] libhello: Switch to cross compilation
> > >
> > > meta-isar/recipes-app/libhello/libhello.bb | 2 +-
> > > meta/classes/dpkg-base.bbclass | 17 +-
> > > meta/classes/dpkg-cross.bbclass | 15 ++
> > > meta/classes/dpkg-raw.bbclass | 7 +-
> > > meta/classes/dpkg.bbclass | 7 +-
> > > meta/classes/image.bbclass | 2 +-
> > > meta/classes/isar-bootstrap-helper.bbclass | 13 +-
> > > meta/conf/isar-bitbake.conf | 1 +
> > > .../isar-bootstrap/isar-bootstrap-host.bb | 44 ++++
> > > .../isar-bootstrap/isar-bootstrap-target.bb | 44 ++++
> > > meta/recipes-core/isar-bootstrap/isar-bootstrap.bb | 259 -----
> > > ----
> > > ------------
> > > .../recipes-core/isar-bootstrap/isar-bootstrap.inc | 223
> > > ++++++++++++++++++
> > > .../buildchroot/buildchroot-cross.bb | 53 +++++
> > > meta/recipes-devtools/buildchroot/buildchroot.bb | 2 +-
> > > .../buildchroot/files/build-cross.sh | 29 +++
> > > 15 files changed, 443 insertions(+), 275 deletions(-)
> > > create mode 100644 meta/classes/dpkg-cross.bbclass
> > > create mode 100644 meta/recipes-core/isar-bootstrap/isar-
> > > bootstrap-
> > > host.bb
> > > create mode 100644 meta/recipes-core/isar-bootstrap/isar-
> > > bootstrap-
> > > target.bb
> > > delete mode 100644 meta/recipes-core/isar-bootstrap/isar-
> > > bootstrap.bb
> > > create mode 100644 meta/recipes-core/isar-bootstrap/isar-
> > > bootstrap.inc
> > > create mode 100644 meta/recipes-
> > > devtools/buildchroot/buildchroot-
> > > cross.bb
> > > create mode 100644 meta/recipes-
> > > devtools/buildchroot/files/build-
> > > cross.sh
> > >
> > > --
> > > 2.1.4
> > >
> >
> > --
> > DENX Software Engineering GmbH, Managing Director: Wolfgang
> > Denk
> > HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell,
> > Germany
> > Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.
> > de
> >
> > PGP key: 6FF2 E59F 00C6 BC28 31D8 64C1 1173 CB19 9808
> > B153
> > Keyserver: hkp://pool.sks-
> > keyservers.net
>
>
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de
PGP key: 6FF2 E59F 00C6 BC28 31D8 64C1 1173 CB19 9808 B153
Keyserver: hkp://pool.sks-keyservers.net
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
prev parent reply other threads:[~2018-06-15 13:18 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-13 13:07 Alexander Smirnov
2018-06-13 13:07 ` [PATCH 1/9] isar-bootstrap: Add routin to determine host arch Alexander Smirnov
2018-06-14 11:23 ` Henning Schild
2018-06-15 11:11 ` Alexander Smirnov
2018-06-15 11:15 ` Jan Kiszka
2018-06-13 13:08 ` [PATCH 2/9] isar-bootstrap: Move common part to include Alexander Smirnov
2018-06-13 13:08 ` [PATCH 3/9] isar-bootstrap: Add host architecture support Alexander Smirnov
2018-06-14 11:27 ` Henning Schild
2018-06-15 11:09 ` Alexander Smirnov
2018-06-13 13:08 ` [PATCH 4/9] isar-bootstrap-helper: Add parameter to set arch Alexander Smirnov
2018-06-13 13:08 ` [PATCH 5/9] buildchroot-cross: Initial implementation Alexander Smirnov
2018-06-14 11:36 ` Henning Schild
2018-06-15 11:16 ` Alexander Smirnov
2018-06-14 15:55 ` Jan Kiszka
2018-06-15 10:56 ` Alexander Smirnov
2018-06-15 11:12 ` Jan Kiszka
2018-06-17 19:28 ` Alexander Smirnov
2018-06-13 13:08 ` [PATCH 6/9] classes/dpkg*: Relocate dependency from buildchroot Alexander Smirnov
2018-06-14 6:44 ` Jan Kiszka
2018-06-15 10:52 ` Alexander Smirnov
2018-06-13 13:08 ` [PATCH 7/9] classes/dpkg*: Drop hardcoded buildchroot blobs Alexander Smirnov
2018-06-13 13:08 ` [PATCH 8/9] classes/dpkg-cross: Initial implementation Alexander Smirnov
2018-06-13 13:08 ` [PATCH 9/9] [FOR TESTING] libhello: Switch to cross compilation Alexander Smirnov
2018-06-13 13:57 ` [RFC] [PATCH 0/9] Initial cross-compilation support Jan Kiszka
2018-06-14 11:20 ` Henning Schild
2018-06-17 19:41 ` Alexander Smirnov
2018-06-18 7:04 ` Henning Schild
2018-06-14 12:01 ` Henning Schild
2018-06-14 12:04 ` Claudius Heine
2018-06-14 12:24 ` Henning Schild
2018-06-14 12:36 ` Claudius Heine
2018-06-14 12:30 ` Jan Kiszka
2018-06-14 12:42 ` Claudius Heine
2018-06-14 12:55 ` Claudius Heine
2018-06-15 10:50 ` Alexander Smirnov
2018-06-15 13:17 ` Claudius Heine [this message]
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=9ffedee6944517e5c516e0a4d13c6bcd09bb36fc.camel@denx.de \
--to=ch@denx.de \
--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