Two or three days ago, I realized I have been awhile that I didn’t have any 32-bit programs on my harddisk. I don’t run WINE, Adobe AIR, etc. So, I decided to go to the no-multilib profile, though I knew I would not get any real benefit from it. How so? First, multilib profile enables your Gentoo to be able to run 32-bit program, it would give your the 32-bit library, such as glibc. I didn’t have any 32-bit programs on my system, I have no need to have the 32-bit library. And how many free space I can get from switching to no-multilib? Less than 90MB (/lib32 + /usr/lib32), that’s why I said I wouldn’t get any benefit. However, I still want to go for it.

I am not sure if I would need to run a 32-bit program someday soon, it’s not a problem because I have another computer. If you only have one, stay with multilib.

The only benefit I can see is when you need to re-emerge glibc or some libraries, using no-mulitlib would cut the compilation time into half since you no longer need the 32-bit library anymore. You should have known you wouldn’t re-emerge glibc in monthly basis. So averaging the compilation time shows that it’s not really a time-consumption. Again, I still want to go for it.

I did some searches, it turned out that process is relatively simple. There are two threads in mailing list mentioned about the steps, Moving to no-multilib profile and Difference between multilib & no-multilib stages. You might also want to read this wiki page, it’s a little bit of old, but it has some useful information before you make a decision. Also this post (Dis)advantages of multilib in forums should give you some thoughts.

1   What I did?

First, use eselect to switch to no-multilib profile. Un-emerged the grub and emerged grub-static, grub-install to install the statically linking binary version of grub, then reboot to make sure it works.

grub is 32-bit only, we will need a pre-compiled binary package since we would no longer be able to compile 32-bit program and grub-static is the one for that.

After that, re-emerged gcc, sandbox, and glibc, lastly.

I also disabled the following kernel configuration:


Executable file formats / Emulations
[ ] IA32 Emulation

You will need to turn IA32_EMULATION back on for installing new version of grub.

Note

The grub mentioned here was Grub 0.97, also known as GRUB Legacy, which was 32-bit only. In October, 2013, I updated it to 2.00, which can be 64-bit, I am no longer need that special process if it got updated. (2015-07-23T22:33:34Z)

I rebooted again, but I found out udev didn’t work. I did notice—before I recompiled kernel — that /lib has gone and kernel modules install did create it again. According to this post, I moved the kernel modules to /lib64/modules and made a symbolic link, that resolved the problem. Maybe I should just move lib64 to lib?

Warning

Firstly, you may want to backup before you do the switch if you have no much experience of Gentoo and/or Linux. Make sure you have an installation disc or a livecd to fix the mess you might make. Secondly, all the sources say it’s not easy to do in reverse way. If you want to go backward, re-installing is the most easiest way for that.