(You are reading version 1.19 of this guide.)
ABSTRACT: How to recompile your entire system / toolchain with MINIMUM PROCESSING TIME EFFORT.
If you plan to do a major compiler update for your Gentoo box, such as from GCC 3.3 to GCC 3.4, or from GCC 3.3/3.4 to GCC 4, then read on. (This will typically be the case when upgrading your Gentoo installation to the new 2006.1 profile.)
The problem is that in those cases the C++ ABI of the GCC changes, which requires recompiling most of your system.
In other words: You have in fact to recompile your ENTIRE SYSTEM in order to be sure no "undesired" side-effects may arise from your compiler upgrade.
This is especially true when using KDE/QT and other programs/libraries which extensively make use of the C++ language.
And here is the reason for this posting: While I have found many postings how to best recompile your entire Gentoo system in such cases, or how to rebuild your "toolchain" best, I found none of them being optimal.
The problem: Actually all of them require much more time to execute then is really necessary.
Because in my opinion the amazing truth is: It is in fact UNNECESSARY to recompile any package, including the new GCC, more than exactly once when rebuilding your entire system! (For those who cannot believe this, see my argumentation in the related article http://forums.gentoo.org/viewtopic-p-35 ... ml#3548628.)
Using my guide (and the accompanying utility script) presented here, you will be able to rebuild your entire Gentoo system with an absolute minimum of effort.
Compared to other guides which suggest recompiling the entire system up to 6 times "to be sure" (I will prove them wrong - their approach is not safer than my approach presented here, it only takes more time), my approach can save you days or even weeks of processing time!
And as weeks of unnecessary processing time equates days/weeks of unnecessary power consumption as well, this will certainly save you a few bucks on your next electicity bill.
I feel obliged to mention at this point that badpenguin has also written a guide how to recompile your entire system, taking about the same running time. Although not for the faint of heart (because it requires a stage 1 reinstallation of your system), I consider it to be a viable hardcore alternative to my guide. You can find it at http://badpenguins.com/gentoo-build-test/.
OK; let's be short: Here is my guide as of 2006-12-05:
===================
Recompile Entire System Helper
Copy the script from the end of this article and save it to a text file. (Go to the section "HOW TO OBTAIN THE SCRIPT" of this article to get it.) Be sure to follow the instructions below before you use it!
Script version as of $Date: 2006-09-26T04:22:55.640944Z $
Written in 2006 by Guenther Brunthaler
This script will generate another script to be run by you. That other script will then recompile each and every package of your whole current system in the correct order.
This will typically be required on a major GCC upgrade.
IMPORTANT: Do not execute this script before all of the following prerequisites are met:
- Portage tree is up-to-date (emerge --sync)
- Your system is up-to-date (emerge --ask --update --deep --newuse world)
- gentoolkit is available. (The script uses it.) If you are unsure, just do an 'emerge --update gentoolkit' and it will be emerged unless it is already installed.
- OPTIONAL. Review the /var/lib/portage/world list of installed packages and consider unmerging packages you are no longer using. It's a good time cleaning up your packages: The less packages are installed, the faster the recompilation of the entire system will be finished.
- OPTIONAL. Now it might also be a good time to run "emerge --ask --depclean" in order to uninstall packages representing outdated old dependencies no longer used. Be sure to read the manual page for emerge before trying this!
- Run "revdep-rebuild". If there are problems found and fixed, repeat running "revdep-rebuild" until no more problems are reported.
- OPTIONAL. If you want to change your Gentoo system profile to a new one using "eselect profile", it is now also the right time to do it. Also do an env-update after changing the profile. (Be sure your kernel version is supported by the new profile! If necessary, upgrade the kernel, install it, reboot and continue following this guide only after that.)
- Do an "emerge --oneshot --update --newuse gcc". It is quite common that emerge will detect that the current GCC is already up-to-date at this point, and will therefore emerge nothing. (But for the less common situations, this step will prevent troubles later.)
- At this point, the new compiler you want should already be *installed*. (No packages need have to be recompiled with it yet. It also need not be the currently selected default compiler version yet.) As GCC allows multislot installations, it is not a problem in Gentoo to have both your current and a new compiler be installed at the same time. This guide even depends on that fact!
- If all the above conditions are met, and no more packages need to be compiled in order to have an up-to-date system, set the desired new system compiler as the new system default compiler using "gcc-config". (This will make the new GCC 3.4 or GCC 4 the new system compiler.)
- For those who have never used gcc-config before: "gcc-config --list-profiles" displays a list of all GCC versions which are currently installed on your box. The compiler you are currently using is marked with an asterisk. In order to change this "current" compiler to a different one from the list, remember the number between the brackets on the left side of the line which contains the compiler version you want to use. Then use "gcc-config <number>" to change the system default compiler to the list entry <number>, where <number> is the the number you remembered in the previous step.
- Do an "env-update". Then run "gcc-config --get-current-profile". Verify that the new compiler version is really displayed as the current system compiler.
- REBOOT! Many troubles when recompiling the system with a new compiler are due to the fact that the updated environment variables may not have been propagated to all active shell windows which you might be using for command input. A reboot ensures that every process in the system now uses the updated environment variables.
- Are you using ebuilds which install kernel modules? Typical examples are special ALSA drivers, closed source video drivers, virtual machine networking drivers, add-on encryption engines. Not sure? Then better assume this is the case, and do this: Optionally update your kernel first. Then recompile your kernel with the (newly installed) GCC. Or, if you are using genkernel, just re-emerge genkernel. This will eliminate potential build failures later when the kernel module ebuilds will be emerged as part of the system rebuild. For instance, Karsten1973 reported build failures for the nvidia drivers when following an older version of this guide which did not include this point.
- Download my utility script now if not already done. The link can be found at the beginning of this article. A good place where to put the script after downloading may be /usr/local/sbin/. (This is only a suggestion. Any other place will do as well.)
- Run it!
- The script will do nothing dangerous on its own. Not yet. Instead, it will use gentoolkit's services in order to construct a list of packages to be re-emerged when recompiling your entire system, and also determines the correct order in which those packages must be emerged. It also filters out unnecessary or duplicate emerges.
- Then it will construct a shell script which, when run by you, will emerge all the packages in the right order until every package in your system has been recompiled as required.
- The generated script will also allow to be aborted and resumed at any point. That is, you do not need to keep it running for days or weeks. The script remembers the last package successfully emerged, and will skip any packages already recompiled when run again later. This allows incrementally rebuilding your system. You can even shut down your system and continue recompiling the other day!
- Run the generated script to actually start recompiling your entire system.
- Run "revdep-rebuild". If there are problems found and fixed, repeat running "revdep-rebuild" until no more problems are reported. (Thanks go to devsk who identified possible problems when omitting this step.)
- Reboot. (Just to be sure. It's not strictly necessary.)
If my guide served you well, you might perhaps also be interested in my article http://forums.gentoo.org/viewtopic-t-49 ... ight-.html where a promising new approach to prelinking is discussed.
Now some warnings and comments about the above guide. Although not necessary, it may be wise to read them also.
- The script is now tolerant when packages fail to compile. In this case, the failing packages will be skipped and their names will be recorded in a file. Then, after all remaining packages have been recompiled, the script attempts to recompile those failing packages again. This will be repeated until all packages have been recompiled, or until none of the remaining packages could be recompiled successfully. This new feature allows an interruption-free rebuild of the system, without a need for the administrator to periodically monitor the build progress. The idea for this very useful feature was contributed by count_zero. Thanks a lot!
- A different log file containing all of the screen output from the generated script will be created each time it is run. Together with the new interruption-free rebuild behaviour, this effectively turns system rebuilds into long-running batch-jobs.
- The generated script assumes your portage tree will remain in a consistent state during the rebuild process. So please don't do an "emerge --sync" again before your system has been recompiled completely! (This is because the generated script contains specific package version numbers which were extracted at the time the script was generated. If the portage tree was updated before the script finished, package dependencies might change and the assumptions of the script regarding package dependendies might thus become void.)
- In former versions of this guide, I strongly recommended running this script from the text mode interface, without an X-server running. Due to the experiences reported by Lloeki in his posting http://forums.gentoo.org/viewtopic.php? ... 78#3553978, I consider this no longer to be a prerequisite, as you follow the general guidelines from the referenced posting.
- Repeating from that post, those guidelines are: If you are heavily using KDE or other C++ based applications, start all such applications you may ever need during the update before running the script from my guide. Keep those applications running and use them until the update is finished. But don't ever close them, or there are chances you won't be able to start them again until the update is complete! Then, after the update, quit all applications, log out and reboot. (The trick here is that shared libraries which are already loaded will be kept im memory, even if their on-disk files are being replaced by different versions during the update. As long as you don't close those applications, the old versions will remain in memory, and all will remain consistent.)
- The above trick allows you to keep working with your applications using C++ shared libraries during the update, which normally would run you into troubles. If you have a second machine to work on during the update, it may still be better to shut down the X server during the update and keep the machine running in text mode.
- If you don't know how to get to the text mode, here is a short guide: First log out of your X session if necessary, so that you see the X login-widget of your kdm, xdm or gdm. Instead of entering your credentials here, press [Ctrl]+[Alt]+[F1] now. This should switch from the X login screen to the text console where you can log in as root. Then run "/etc/init.d/xdm stop" in order to shut down the X server.
- Although the approach presented in the above guide greatly reduces the amount of time required to rebuild your entire system in comparison to all the other guides I am aware of, rebuilding your system will nevertheless take bloody ages. (At least unless you have a distcc compiler farm at your disposal. Or unless you are a "Bot-Master", controlling thousands of hijacked Windows PCs serving as distcc-slaves...
)
So far for my comments - for now.
Here are the instructions how to get the utility script mentioned in the text of the article above.
- First select the text between (not including) the "---BEGIN SCRIPT---" and "---END SCRIPT---" lines (can be found at the very end of this article text) with the mouse.
- Then copy the selected lines into a text editor, using the mouse or copy/paste.
- Save the copied text to some file, such as "genscript.sh".
- Launch a command shell and go to the directory where you saved the text file.
- Run the command This should decompress the actual script and leave it in the current directory as a file "recompile-entire-system-20060926".
Code: Select all
sh genscript.sh
Final remarks:
I wrote this guide not only as a small contribution to the Gentoo community, but also to the environment.
Yes, to the environment! Thousands and thousands of Gentoo users, all wasting weeks worth of processing power when following inefficient "recompile entire system"-style compiler upgrade guides, will waste an enormous amount of kilowatt hours of electrical power.
This energy not only costs money, but will also have to be produced, where it will contribute to even more pollution of air or water.
And that additional amount of completely unnecessary environmental pollution can easily be avoided by following the above guide... so that's why I wrote it.
Greetings from Vienna/Austria,
Guenther Brunthaler
==============================
Code: Select all
---BEGIN SCRIPT---
#! /bin/bash
# This is file "genscript.sh".
die() { echo "ERROR: $1" >& 2; exit 1; }
echo "Decoding attachment - please standby."
which openssl > /dev/null 2>& 1 || {
emerge --oneshot --update openssl || {
die "I need openssl for base64 decoding!"; } }; {
while read LINE; do test "$LINE" = "exit" && break; done
openssl enc -d -a; } < "$0" > script.ar || {
die "Error in base64-encoded text!"; }
ar -x script.ar || die "Cannot extract archive!"
N="recompile-entire-system-20060926"; md5sum -c $N.bz2.md5 || {
die "Checksum error in extracted bzip2 file!"; }
bunzip2 -f $N.bz2 || die "Corrupted bzip2 archive!"
echo "Script extracted successfully!"
rm script.ar $N.bz2.md5
exit
ITxhcmNoPgovLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA4MCAgICAgICAgYApyZWNvbXBpbGUtZW50aXJlLXN5c3RlbS0yMDA2
MDkyNi5iejIvCnJlY29tcGlsZS1lbnRpcmUtc3lzdGVtLTIwMDYwOTI2LmJ6Mi5t
ZDUvCi8wICAgICAgICAgICAgICAxMTU5MjQ1NDAwICAwICAgICAwICAgICAxMDA3
NTUgIDQ0MjggICAgICBgCkJaaDkxQVkmU1kWFB8ZAAULX4BSeX///7//79//////
/2AS/3tHS7sWlYVI7DsqwG5umjOihrIhOWRUtmUdAykKVLbG5g3YcNNECmTQYjRG
0Jpo0mARqeNFTwUZoYptkiHqGIwGgQARDTVPTIJqfqYp5TR5RoA000AAA0AM1NBw
NNNNBoaGhkaAZAGhoDTRkAADCYgNBISECJqabU9QnhU/RT1HpMjTR6aTTRtQAGg/
VPSGjQbUBwNNNNBoaGhkaAZAGhoDTRkAADCYgNBIkE0BAmI0TAEylPwk1D9U2mSa
GmaTRoPIgehHqaWomCAaCqSbGwGNtsTGmMTBgwbGJpgDGm0MbE29fm/nPWQ9lHG/
ro5F/yfGKvAseigl8leYkAqHMC9lYAPlo/3B6cxuIfudv/T6LWorn3Mw/avQ/nkd
nhtnXUtJIs5q5CQjTcYNpxQbbTf2qqkQY5HHBjGyONsbDjxtZOzcG2zaUevnylrM
b1P9/PvXKDDXejGoTNScvPn+nbuPFO0/L/da3voQZz3PhBDJ7IPFJ0sklmU0Nm7h
Y2sXNdZfszv1cL4MZ0t8Ii7NVVmVpeBX0SvimzNTtZEerzJIEujVCQoCsZAi/OAE
z+3/G7cdmqGPv+IfVV4yok5d6SjfKf4wiU0oK33Y3ard+y8unaWYSa72rwG0Nq60
SZJlWpHP/jvrmYNqCCCTJbjO9ldM0TwB0gsSL1b/hee93Dr8pTVKIimwZ7aVMDCw
p5uJnu2CUSRQEAyR0Ne4GvcnHCFVYxuPZRME3GZhSpVeZk68FuYYbUKeQ+7ojnYV
lEtpn2eUKhh486CObEvTmXCmgPcNp3znCE4V1jSyEv9blHHWLJQDkIkDHLB2dOTf
1cuumHUjcux9uim76W9B1xEAvxa14dT0CRrpXr7u2p/Ltfr7fz686rFA1YafnIlm
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
bS0yMDA2MDkyNi5iejIKCg==
---END SCRIPT---






