Re: Possible GSoC idea: MIPS N32 ABI Port
On Fri, Mar 1, 2013 at 10:35 AM, Aron Xu <firstname.lastname@example.org> wrote:
> This was a project in GSoC 2009, however the project wasn't completed
> due to various reasons. I'm raising it here again because there are
> interests of doing it around us again.
> Original description from the GSoC2009 project:
> This project first focuses on creating a new MIPS N32 ABI port for
> Debian. Different from O32 and N64, N32 is an address model which has
> most 64-bit capabilities but using 32-bit data structures to save
> space and process time. A second focus will be given on making such a
> “mipsn32el” arch fully optimized for the Loongson 2F CPU which gains
> more and more popularity in subnotebooks/netbooks in many countries.
> Multiarch support is almost landed in Debian, and Multiarch cross
> build is on its way, so we are in a position to make use of such
> technology during bootstrap (still not working that well, though) and
> daily use. A user can run an n64 kernel + mixed n32/n64 userland, so
> that he/she can take advantage of the performance and large memory as
> needed (like i386/amd64 in some degree).
> Aron Xu
Disclaimer: I'm not a Debian developer or even a user.
I am, however, a Gentoo/MIPS developer who completed our n32 port.
There were some annoying bits, like packages that hardcode 'lib', but
overall it's not a difficult task. Other distributions are already
n32, so there's not much if any package porting to do.
The scope of this project would be entirely within Debian, getting
Debian's infrastructure going for n32. I don't personally think that's
a SoC project, but I don't know. Maybe a Debian/n32 port involves lots
of work I don't know about, but for Gentoo it was mostly recompile a
bunch of stuff and fix things that break. IIRC, I was *terribly*
unimpressed with the 2009 Port Debian to N32 project. It was just a
recompile everything and see what breaks endeavor, which is what other
people have done with much more success (see: Gentoo, Parabola).
As far as an 'mipsn32el' port for Loongson 2F hardware goes: what does
this entail? Recompiling everything with -march=loongson2f? Gentoo
(and I think Parabola?) already do this. Besides questionable
usefulness, since the hardware is sort of obsoleted by new Loongson 3A
hardware, the actual work to do involves getting code upstream that
Lemote was too lazy to upstream. This is a whole other project by
itself, again, of questionable usefulness and too nebulous to be a SoC
If you do this project, a suggestion: Ship gcc as an n64 binary. n32
has a virtual memory limit of 2G, so a n32 gcc binary would be unable
to build large projects like webkit.