The switch has been flipped

Well, after ~1.5 months of work, testing, overlaying, etc., I’ve flipped the switch and moved my personal laptop (my main development machine) to 32bit-userland.  It was both easier than I thought, and harder: easier in that it’s possible at all, and with very little work; harder in that there are 19 packages that need to be patched, and 3 (kernel, gcc, kvm) that I have not been able to fix yet.

One thing that surprised me was how many different packages have assembler and attempt to detect the arch and bitness.  Just about every media package, okay that kinda makes sense: they all optimize for media playback etc.; but bind-tools?  xulrunner?  WTF?  Anyway, for now, I’ve just patched them all in an overlay for now; many of them seem to use a similar detection method, so maybe I can do something in the profile to make most of them work.

On the plus side, Gnome has done a great job of hiding all the arch-specific code in glib.  None of the Gnome apps had any problems with 32bit-userland.

So far: less memory consumed.  This is a very good thing, as I was constantly running out before.

Oh, and what, you ask, do I do about those three unfixable packages?  I have a 64bit-userland chroot that I build them in, and binpkg them, and then just install the binpkgs.  Works fine.  Hopefully, I’ll be able to fix those three in the future.  The kernel, in particular, has to work for sparc/mips, so it should be fixable for x86 as well.

2 Responses to “The switch has been flipped”

  1. I think yesterday I did the same thing, but in a simpler way, by starting from Gentoo x86 and cross-compiling a x86_64 kernel through the 64bit toolchain set up by crossdev.

    Today the compilation of openoffice failed, so probably that package needs to be fixed as well. I’ll try to compile the portage version of some of the packages in your overlay to see if they fail too.

  2. That’s an easy way to get a 64bit kernel with a full 32bit userland, and is similar to how the old sparc 32 profile worked. However, that’s not what I have: I have a full 64bit libc and sandbox and so on, so I can compile and run 64bit programs as well as 32bit, as long as I provide the correct libs, of course.
    This is essentially the exact opposite of standard 64bit Gentoo: everything that was 64bit only (except the kernel) is 32bit only, and everything that was both is still both, and everything that needed to be binary install 32bit needs to be binary installed 64bit.

Discussion Area - Leave a Comment