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