Title GNAP cross compile support
Student Philipp Riegger
Mentor Jose Alberto Suarez Lopez
Abstract
GNAP (Gentoo Network Appliance) is a toolkit to build small
Gentoo-based distributions for embedded devices or old PCs.

It consists of 3 packages: gnap, gnap-dev and gnap-ext (all in
dev-embedded). Gnap provides the gnap_overlay script, which is used
to build customized images (disk image or cd image). Therefore it
takes a prebuilt GNAP core and "overlays" it with customized
configuration files. Gnap-dev provides gnap_make which can be used
to build customized GNAP cores and extensions for existing GNAP
cores. Gnap-ext provides gnap_remaster, which is used to extend GNAP
cores with extensions. It is easy to get a simple system running
using only the gnap and gnap-ext package and GNAP is also flexible
enough to allow the user to build complex images with all kinds of
special software using gnap-dev.

Unfortunately, all of them are only available for x86 and/or amd64.
It is only possible to build images for x86 compatible systems. This
is a big limitation, since lots of embedded systems are not x86
based, but ppc, arm, mips or mips64. And since GNAP can run off a 16
MB flash drive and is very customizable (a smaller gnap is possible,
a totally different purpose is possible) it is interesting for all
kind of devices. Or it could/would be, at least.

The goal of my project is to integrate cross compilation support in
GNAP, include support to build images on platforms different than
x86/amd64 and to include support and create documentation for at
least one specific embedded board. This probably also includes
cleaning up the codebase, fixing bugs to get gnap working out of the
box (the current gnap in portage needs some love) and maybe
expanding/clarifying existing documentation.