summaryrefslogtreecommitdiffstats
path: root/dev
diff options
context:
space:
mode:
Diffstat (limited to 'dev')
-rw-r--r--dev/mentoring/vals-soc/ma-and-cross-toolchains.mdwn38
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