Cross-compilation of lx_hybrid components

Christian Helmuth christian.helmuth at genode-labs.com
Wed Oct 23 16:04:40 CEST 2019


Hello Roman,

On Wed, Oct 23, 2019 at 14:52:01 CEST, Roman Iten wrote:
> I use base-linux on an arm_v7a target. This works well except for
> lx_hubrid components (for example linux_nic_drv).
> 
> On several places the toolchain, includes and libraries of the host are
> used (see repos/base-linux/lib/import/import-lx_hybrid.mk).
> 
> Do you see a way how I can cross-compile on a Linux x86_64 host for a
> Linux arm_v7a target?

My impulsive reaction to this question is plain: No, I can't imagine
this to work!

But, this is just the result of a long rocky path of adaptions that
ended in a collection of heuristics in import-lx_hybrid.mk and other
places of the build system (and base-linux sources). So theoretically,
it may work like [1] hints and from the top of my head needs work at
the following places.

- For compilation, our code base depends on genode-arm-gcc being used,
  but the heuristics in import-lx_hybrid.mk must be adapted to fit the
  cross-compilation environment (e.g., include paths for headers in
  HOST_INC_DIR).
- Currently we link with 'c++'. This definitely should be
  your-arm-c++.
- The cross-compilation environment must include all needed headers,
  linker scripts, libraries, and tools for the cross target.
- repos/base-linux/src/lib/lx_hybrid (resp.
  repos/base-linux/lib/mk/lx_hybrid.mk) may need ARM-specific
  adaptions.
- general Linux wizardry including the implications of the following
  (for Ubuntu)

  > apt depends gcc-7-arm-linux-gnueabihf
  ...
  Suggests: libgcc1-dbg-armhf-cross
  > apt show libc6-dev-armhf-cross
  ...
  Contains the symlinks, headers, and object files needed to compile
  and link programs which use the standard C library.

[1] https://www.96boards.org/documentation/guides/crosscompile/commandline.html

Unfortunately, I can't help further in this regard.

Greets
-- 
Christian Helmuth
Genode Labs

https://www.genode-labs.com/ · https://genode.org/
https://twitter.com/GenodeLabs · /ˈdʒiː.nəʊd/

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth



More information about the users mailing list