diff options
-rw-r--r-- | dev/mentoring/vals-soc/ma-and-cross-toolchains.mdwn | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/dev/mentoring/vals-soc/ma-and-cross-toolchains.mdwn b/dev/mentoring/vals-soc/ma-and-cross-toolchains.mdwn new file mode 100644 index 0000000..3cd3121 --- /dev/null +++ b/dev/mentoring/vals-soc/ma-and-cross-toolchains.mdwn @@ -0,0 +1,38 @@ +[[!meta title="Multiarch and cross toolchains"]] + +ProteanOS intends to cross build its packages for ARM and MIPS architectures, +since such systems often lack the RAM and CPU cycles to easily run native builds +of larger packages. Obviously cross toolchains are needed for this. Less +obviously, libraries of foreign architectures need to be installed to satisfy +package build dependencies, often coinstalled alongside their native +architecture versions. To support this, ProteanOS is implementing a "multiarch" +system similar to that of Debian and Ubuntu. Libraries are installed into +architecture-specific locations so that libraries of the same name and different +architectures can be coinstalled without conflicts. Also, the package manager +(opkg) needs to support the (co)installation of foreign-architecture packages +and resolve dependencies across architectures. + +The first part of this project is to make ProteanOS support the installation of +packages of foreign architectures and the multiarch coinstallation of library +and development packages; this work is already in progress. The second part is +to build and test cross GCC binary packages; packaging code to build cross GCC +packages exists but hasn't been enabled and tested. The third part is to design +and implement cross-architecture dependency resolution in opkg. Depending on +the student's time and interest, the project may be extended to include a Perl +package with patches and configurations to support cross building or the +bootstrapping of a ProteanOS cross toolchain (including the C library) for a new +architecture. + + * Mentor: Patrick "P. J." McDermott (pehjota in #proteanos-dev on freenode + IRC, + [mailto:pj+vals-soc-vps@pehjota.net](mailto:pj+vals-soc-vps@pehjota.net)) + * Desirable skills: C, Python, shell command language, makefile syntax, + familiarity with building GCC, Git, the specification and implementation of + multiarch in Debian and Ubuntu + * Project deliverables: Patches to opkg 0.2.x and upstream master branch to + support multiarch coinstallation, foreign architecture selection, and + cross-architecture dependency resolution; tested patches to ProteanOS's + gcc-4.7 package to enable cross compiler binary packages + * Difficulty: High + +Tags: GCC, compilers, toolchains, multiarch, package management, C, packaging |