tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[GSoC] Project Idea: full cross compilation support for pkgsrc



Greetings,

I'm a student, and I'm interested in this year's Google Summer of
Code. I have a pkgsrc related idea in mind that's not currently listed
on the Ideas Page[1]; I'm writing to see if there is interest in it
(i.e. a potential mentor), and to ensure I that I fully understand the
tasks and potential problems. The idea is to add support for full
cross compilation in pkgsrc. When I write "full cross compilation" I
mean being able to go from one OS/Architecture combination to another.
For example, on a Linux/amd64 system I would like to be able to cross
bulkbuild packages as well as a binary bootstrap kit for NetBSD/evbarm
using a cross toolchain and distribution compiled from build.sh. I
think that this would be a really useful project. It would benefit
embedded developers as it would enable them to build packages on a
fast/powerful development machine for a small system (beagleboard,
raspberry pi, etc). It would also greatly speed up bulk building for
slow platforms.

I did some research and found prior discussions[2][3] as well as some
guides[4][5]. From what I've seen, it looks like the following areas
need work: mk/ infrastructure, bootstrap script, dependencies, and
packages which don't support cross compilation out of the box. From
the mailing list posts, it looks like there are just a few changes
needed to support cross compilation in mk/. The bootstrap script needs
some work (${machine_arch}, ${opsys}, and others need to be
configurable, more flexibility in paths, etc). Updating the
dependencies in individual packages will be much more labour intensive
as it will need to be determined if each one is needed on the build
platform (example: a tool like gsed), on the host platform (example: a
library like zlib or a tool needed at runtime), or both (a tool with a
library such as flex with libfl). There will also be the job of
updating packages with simple or exotic build systems which don't
support cross compilation out of the box. Additionally, testing
reports and documentation would be part of the deliverables. Am I
missing anything else that would be involved in a project like this?
Is it appropriate for a summer project (not too much nor too little
work)?

Thanks for reading,
Thomas

[1] http://wiki.netbsd.org/projects/gsoc/
[2] http://mail-index.netbsd.org/tech-pkg/2013/03/26/msg010967.html
[3] http://mail-index.netbsd.org/tech-pkg/2011/11/18/msg007996.html
[4] 
http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/doc/HOWTO-crosscompile?rev=1.2&content-type=text/x-cvsweb-markup&only_with_tag=MAIN
[5] 
http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/doc/HOWTO-crosscompile-xorg?rev=1.5&content-type=text/x-cvsweb-markup&only_with_tag=MAIN


Home | Main Index | Thread Index | Old Index