Difference between pages "Toolchain update" and "Help:Editing"

From Funtoo
(Difference between pages)
Jump to: navigation, search
(171-r10 is stable)
 
 
Line 1: Line 1:
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.
+
{{PD Help Page}}
 +
;Editing
 +
:[[Help:Editing pages|Editing pages]]
 +
:[[Help:Starting a new page|Starting a new page]]
 +
:[[Help:Formatting|Formatting]]
 +
:[[Help:Links|Links]]
 +
:[[Help:User page|User pages]]
 +
:[[Help:Talk pages|Talk pages]]
 +
;Advanced Editing
 +
:[[Help:Images|Images]]
 +
:[[Help:Tables|Tables]]
 +
:[[Help:Categories|Categories]]
 +
:[[Help:Templates|Templates]]
 +
:[[Help:Variables|Variables]]
 +
:[[Help:Managing files|Managing files]]
 +
:[[Help:Moving a page|Moving a page]]
 +
:[[Help:Redirects|Redirects]]
 +
:[[Help:Deleting a page|Deleting a page]]
  
{{fancynote|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.}}
+
{{languages|Help:Editing}}
 
+
[[Category:Help|Editing]]
== Current toolchain ==
+
Funtoo currently provides the following core package versions for stable branch:
+
*sys-devel/gcc-4.6.4-r2
+
*sys-devel/binutils-2.22
+
*sys-kernel/linux-headers-3.4-r2
+
*sys-libs/glibc-2.15-r4
+
 
+
== Toolchain update ==
+
Those core packages will be updated to the following versions. These packages now included in current branch
+
*sys-devel/gcc-4.8.1-r3
+
*sys-devel/binutils-2.23.2
+
*sys-kernel/linux-headers-3.7
+
*sys-libs/glibc-2.18
+
 
+
 
+
== Unmasking the packages ==
+
 
+
To unmask the packages, run <tt>emerge --sync</tt>. If you are using the funtoo-current, they should now be unmasked. To perform this manually (no longer necessary,) do this:
+
 
+
<console>
+
# ##i##install -d /etc/portage/package.unmask
+
# ##i##echo ">=sys-devel/gcc-4.8.1" >> /etc/portage/package.unmask/toolchain
+
# ##i##echo "=sys-devel/binutils-2.23.1" >> /etc/portage/package.unmask/toolchain
+
# ##i##echo "=sys-kernel/linux-headers-3.7" >> /etc/portage/package.unmask/toolchain
+
# ##i##echo "=sys-libs/glibc-2.18" >> /etc/portage/package.unmask/toolchain
+
</console>
+
 
+
Easier way is to copy <code>funtoo-toolchain</code> from /usr/portage/profiles/package.mask, assuming that /etc/portage/package.unmask is a directory:
+
<console>
+
# ##i##cp /usr/portage/profiles/package.mask/funtoo-toolchain /etc/portage/package.unmask
+
</console>
+
 
+
== Keywords changes for ''stable'' users ==
+
If ''Stable'' users are not afraid to upgrade their toolchain, they must add the correct keywords too:
+
<console>
+
# ##i##install -d /etc/portage/package.keywords
+
# ##i##echo ">=sys-devel/gcc-4.8.1 **" >> /etc/portage/package.keywords/toolchain
+
# ##i##echo "=sys-devel/binutils-2.23.1 **" >> /etc/portage/package.keywords/toolchain
+
# ##i##echo "=sys-kernel/linux-headers-3.7 **" >> /etc/portage/package.keywords/toolchain
+
# ##i##echo "=sys-libs/glibc-2.18 **" >> /etc/portage/package.keywords/toolchain
+
</console>
+
 
+
== 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. Updating everything should work out of the box, but to ensure that no unwanted package is updated between the toolchain parts, proceed as following:
+
<console>
+
# ##i##emerge --sync
+
# ##i##emerge -1 glibc
+
# ##i##emerge -uNDav @world
+
</console>
+
 
+
Done!
+
 
+
== What about libtool? ==
+
libtool is automatically rebuilt during the update process. This avoids any manual steps to be executed after the update. (This step need verification, libtool no longer auto re-emerged...Oleg)
+
 
+
== 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
+
<console>
+
# ##i##emerge -av --depclean --exclude sys-devel/gcc
+
</console>
+
 
+
== Troubleshooting ==
+
After the update, if any package fails to start with a shared library missing problem, try to run:
+
<console>
+
# ##i##revdep-rebuild
+
</console>
+
Sometime, with toolchain update, system can be damaged. If such issues experienced, follow resurrection guide
+
http://www.funtoo.org/System_resurrection
+
[[Category:HOWTO]]
+

Latest revision as of 17:39, 11 January 2014

PD Important note: When you edit this page, you agree to release your contribution into the public domain. If you don't want this or can't do this because of license restrictions, please don't edit. This page is one of the Public Domain Help Pages, which can be freely copied into fresh wiki installations and/or distributed with MediaWiki software; see Help:Contents for an overview of all pages. See Project:PD help/Copying for instructions. PD
Editing
Editing pages
Starting a new page
Formatting
Links
User pages
Talk pages
Advanced Editing
Images
Tables
Categories
Templates
Variables
Managing files
Moving a page
Redirects
Deleting a page
Language: English