Tuesday, 28 July 2009

gcc-4.4.1 is out!

Hot&fresh! ;] Unfortunately I haven't saved the output while updating my systems but this is very straightforward. This guide will also be helpful as well as this post that might describe different approach to updating your whole system ;].

If you are already using the testing branch of the overlay your default compiler should be gcc-4.4.0. Simply update the git repository by running 'git pull' in your overlay folder (/usr/local/toolchain-overlay). If you're not using the overlay yet - read here ;) Anyway...running 'emerge -av gcc' should show gcc-4.4.1-r1 being pulled in from overlay - go for it! ;]

Once your gcc is updated, at the end of installation process, you will probably get something like this:

* gcc-config: Active gcc profile is invalid!

You'll have to tell your system which compiler it needs to use:

# gcc-config -l
[1] x86_64-pc-linux-gnu-4.3.3
[2] x86_64-pc-linux-gnu-4.3.3-nofortify
[3] x86_64-pc-linux-gnu-4.3.3-nopie
[4] x86_64-pc-linux-gnu-4.3.3-nossp_all
[5] x86_64-pc-linux-gnu-4.3.3-vanilla
[6] x86_64-pc-linux-gnu-4.4.1
[7] x86_64-pc-linux-gnu-4.4.1-hardenednopie
[8] x86_64-pc-linux-gnu-4.4.1-hardenednossp
[9] x86_64-pc-linux-gnu-4.4.1-vanilla


# gcc-config 6
# env-update && source /etc/profile

So Ladies & Gentlemen- here it is!

# gcc -v
Using built-in specs.
Target: x86_64-pc-linux-gnu
Configured with: /var/tmp/portage/sys-devel/gcc-4.4.1-r1/work/gcc-4.4.1/configure --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/4.4.1 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.1/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.4.1 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.4.1/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/4.4.1/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/4.4.1/include/g++-v4 --host=x86_64-pc-linux-gnu --build=x86_64-pc-linux-gnu --disable-altivec --disable-fixed-point --without-ppl --without-cloog --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --enable-secureplt --disable-multilib --enable-libmudflap --disable-libssp --enable-espf --disable-libgomp --enable-cld --disable-libgcj --enable-languages=c,c++ --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --with-bugurl=http://bugs.gentoo.org/ --with-pkgversion='Gentoo Hardened 4.4.1-r1 p1.0, espf-0.3.1'
Thread model: posix
gcc version 4.4.1 (Gentoo Hardened 4.4.1-r1 p1.0, espf-0.3.1)

You can run 'fix_libtool_files.sh' just in case: ;)

# fix_libtool_files.sh 4.4.0
* Scanning libtool files for hardcoded gcc library paths...
* [1/7] Scanning /lib ...
* [2/7] Scanning /usr/lib ...
* [3/7] Scanning /lib64 ...
* [4/7] Scanning /usr/lib64 ...
* [5/7] Scanning /usr/local/lib ...
* [6/7] Scanning /usr/local/lib64 ...
* [7/7] Scanning /usr/x86_64-pc-linux-gnu/lib ...

And then - recompile rest of your toolchain - apparently it should be enough to simply compile binutils with glibc and then re-emerge the world:

# emerge -av binutils glibc && emerge -eav world

...but I like to keep my cpu busy:

# emerge -av binutils gcc glibc

...and it's an easy one from there:

# emerge -eav system && emerge -eav world

Regardless of approach chosen - it's a tea time...! ;) Enjoy!

No comments:

Post a Comment

Have your say: