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