Difference between revisions of "Toolchain update"
(→Upgrading to the new toolchain) |
|||
| Line 47: | Line 47: | ||
== Rebuilding the whole system? == | == Rebuilding the whole system? == | ||
Some people argue that this is necessary to rebuild the whole system (even twice) after a toolchain upgrade. This is never necessary, but users who changed their CFLAGS or CXXFLAGS due to a new available arch or optimization flag are welcome to do so, if they want. However, remember that this is never necessary. | Some people argue that this is necessary to rebuild the whole system (even twice) after a toolchain upgrade. This is never necessary, but users who changed their CFLAGS or CXXFLAGS due to a new available arch or optimization flag are welcome to do so, if they want. However, remember that this is never necessary. | ||
| + | |||
== Case of depclean == | == Case of depclean == | ||
After switching to new gcc, it can be cleaned (accidentally) by emerge ---depclean, it is recommended to save older gcc for failover | After switching to new gcc, it can be cleaned (accidentally) by emerge ---depclean, it is recommended to save older gcc for failover | ||
| Line 53: | Line 54: | ||
</pre> | </pre> | ||
| + | == Troubleshooting == | ||
| + | After the update, if any package fails to start with a shared library missing problem, try to run: | ||
| + | <pre> | ||
| + | # revdep-rebuild | ||
| + | </pre> | ||
[[Category:Portage]] | [[Category:Portage]] | ||
[[Category:HOWTO]] | [[Category:HOWTO]] | ||
[[Category:Featured]] | [[Category:Featured]] | ||
Revision as of 20:08, 13 November 2011
This guide explains how to upgrade the Funtoo toolchain to the new version available. With this toolchain update comes some other core packages bumps that were depending on the new toolchain.
This toolchain update affects the users of the current tree. Stable users should not update to this toolchain yet as many stable packages may not build with it.
Contents |
Current toolchain
Funtoo currently provides the following core package versions:
- sys-devel/gcc-4.4.5
- sys-devel/binutils-2.20.1
- sys-kernel/linux-headers-2.6.32
- sys-libs/glibc-2.11.3
- sys-fs/udev-160-r2
Toolchain update
Those core packages will be updated to the following versions:
- sys-devel/gcc-4.6.2
- sys-devel/binutils-2.21.1-r1
- sys-kernel/linux-headers-2.6.39
- sys-libs/glibc-2.13-r4
- sys-fs/udev-171-r1
Unmasking the packages
Until those packages are unmasked, the users that want to test them must first unmask them:
# install -d /etc/portage/package.unmask # echo "=sys-devel/gcc-4.6.2" >> /etc/portage/package.unmask/toolchain # echo "=sys-devel/binutils-2.21.1-r1" >> /etc/portage/package.unmask/toolchain # echo "=sys-devel/libtool-2.4-r4" >> /etc/portage/package.unmask/toolchain # echo "=sys-kernel/linux-headers-2.6.39" >> /etc/portage/package.unmask/toolchain # echo "=sys-libs/glibc-2.13-r4" >> /etc/portage/package.unmask/toolchain # echo "=sys-fs/udev-171-r1" >> /etc/portage/package.unmask/toolchain
Upgrading to the new toolchain
As the dependencies have been adjusted so the packages are built in the right order, no user manipulation is required. Simply update everything :
# emerge --sync # emerge -uNDav @world
Done!
What about libtool?
libtool is automatically rebuilt during the update process. This avoids any manual steps to be executed after the update.
Rebuilding the whole system?
Some people argue that this is necessary to rebuild the whole system (even twice) after a toolchain upgrade. This is never necessary, but users who changed their CFLAGS or CXXFLAGS due to a new available arch or optimization flag are welcome to do so, if they want. However, remember that this is never necessary.
Case of depclean
After switching to new gcc, it can be cleaned (accidentally) by emerge ---depclean, it is recommended to save older gcc for failover
# emerge -av --depclean --exclude sys-devel/gcc
Troubleshooting
After the update, if any package fails to start with a shared library missing problem, try to run:
# revdep-rebuild