View previous topic :: View next topic |
Author |
Message |
amne Bodhisattva
Joined: 17 Nov 2002 Posts: 6378 Location: Graz / EU
|
Posted: Fri Dec 02, 2005 10:27 pm Post subject: Gentoo switches to gcc 3.4.4 on x86 |
|
|
As you may have already noticed, 3.4.4 is becoming stable on x86.
Please use this thread for general discussion on this issue. If you have specific problems with the upgrade, please visit Upgrading your system to gcc 3.4(.4) in Portage&Programming. _________________ Dinosaur week! (Ok, this thread is so last week) |
|
Back to top |
|
|
codergeek42 Bodhisattva
Joined: 05 Apr 2004 Posts: 5142 Location: Anaheim, CA (USA)
|
Posted: Fri Dec 02, 2005 11:08 pm Post subject: |
|
|
That's awesome!
(Also to add this thread to my egosearch...) _________________ ~~ Peter: Programmer, Mathematician, STEM & Free Software Advocate, Enlightened Agent, Transhumanist, Fedora contributor
Who am I? :: EFF & FSF |
|
Back to top |
|
|
southsider Guru
Joined: 05 Jul 2004 Posts: 358
|
Posted: Fri Dec 02, 2005 11:35 pm Post subject: |
|
|
Why do I have to recompile my entire system!?
Why does a compiler upgrade "break" stuff!?
Stress! Stress! |
|
Back to top |
|
|
bandreabis Advocate
Joined: 18 Feb 2005 Posts: 2495 Location: イタリアのロディで
|
Posted: Fri Dec 02, 2005 11:41 pm Post subject: |
|
|
upgrades my gcc, is this a good idea or I have to my emerge and follow the guide?
Andrea _________________ Il numero di post non fa di me un esperto! Anzi! |
|
Back to top |
|
|
rhill Retired Dev
Joined: 22 Oct 2004 Posts: 1629 Location: sk.ca
|
Posted: Fri Dec 02, 2005 11:58 pm Post subject: |
|
|
you can build gcc-3.4 as part of your normal update. the new compiler is slotted and won't be used until you run gcc-config to specifically enable it. _________________ by design, by neglect
for a fact or just for effect |
|
Back to top |
|
|
big_gie Apprentice
Joined: 31 Aug 2004 Posts: 158
|
Posted: Sat Dec 03, 2005 1:14 am Post subject: |
|
|
Time to get that cpu some work!
Is it safe to upgrade via a ssh connection? Since I'm not at work right now, I could use the weekend to upgrade. But I won't be able to be next to the machine. What do you think? |
|
Back to top |
|
|
seren Guru
Joined: 27 Aug 2005 Posts: 448 Location: Wisconsin
|
Posted: Sat Dec 03, 2005 1:45 am Post subject: |
|
|
does this mean the stage3 tarballs 2005.1(r1)? will have gcc 3.4.4 rather than 3.3.6? and will their be a new release of the live cd compiled with gcc 3.4.4? if its being marked as stable it should be, at least the stage3 tarballs should have 3.4.4 because now that is stable it will be a pain in the arse to upgrade to 3.4.4.
and for those that want to upgrade do this
Code: | emerge --sync && emerge -u gcc && gcc-config i686-pc-linux-gnu-3.4.4 && source /etc/profile && emerge gcc binutils glibc libstdc++-v3 && emerge -P gcc && emerge -e system && emerge -e world |
should be safe to use ssh make sure gcc-config 6 changes to gcc 3.4.4 you may want to run that code in two sections like this
Code: | emerge --sync && emerge -u gcc && gcc-config i686-pc-linux-gnu-3.4.4 && source /etc/profile |
Code: | emerge gcc binutils glibc libstdc++-v3 && emerge -P gcc && emerge -e system && emerge -e world |
Last edited by seren on Sat Dec 03, 2005 2:21 am; edited 1 time in total |
|
Back to top |
|
|
Halcy0n Developer
Joined: 17 Sep 2003 Posts: 1682 Location: Freehold, NJ
|
Posted: Sat Dec 03, 2005 2:17 am Post subject: |
|
|
seren wrote: | and for those that want to upgrade do this
Code: | emerge --sync && emerge -u gcc && gcc-config i686-pc-linux-gnu-3.4.4 && source /etc/profile && emerge gcc binutils glibc libstdc++-v3 && emerge -P gcc && emerge -e system |
|
Or...they could follow the migration guide we wrote. You don't rebuild all C++ apps against the new library, so things are going to break in fun ways. Atleast you had them merge libstdc++-v3 before pruning GCC and breaking python _________________ Mark Loeser
http://www.halcy0n.com |
|
Back to top |
|
|
seren Guru
Joined: 27 Aug 2005 Posts: 448 Location: Wisconsin
|
Posted: Sat Dec 03, 2005 2:26 am Post subject: |
|
|
Halcy0n wrote: | seren wrote: | and for those that want to upgrade do this
Code: | emerge --sync && emerge -u gcc && gcc-config i686-pc-linux-gnu-3.4.4 && source /etc/profile && emerge gcc binutils glibc libstdc++-v3 && emerge -P gcc && emerge -e system |
|
Or...they could follow the migration guide we wrote. You don't rebuild all C++ apps against the new library, so things are going to break in fun ways. Atleast you had them merge libstdc++-v3 before pruning GCC and breaking python |
fixed it thanks.
the guide does the same. That single line will do the same its up to you i prefer a single line. |
|
Back to top |
|
|
novazur Guru
Joined: 19 Mar 2005 Posts: 461 Location: Martinique
|
Posted: Sat Dec 03, 2005 3:04 am Post subject: |
|
|
Problems started :
Code: | # emerge gcc
# gcc-config i686-pc-linux-gnu-3.4.4
# source /etc/profile
# revdep-rebuild --library libstdc++.so.5 -- -pv |
gave me a long list...
Code: | # revdep-rebuild --library libstdc++.so.5
[...]
emerge --oneshot --nodeps =app-accessibility/festival-1.4.3-r3 =sys-apps/groff-1.19.1-r2 =dev-lang/python-2.4.2 =app-admin/fam-2.7.0-r2 =app-arch/unrar-3.4.3 =app-cdr/dvd+rw-tools-5.21.4.10.8 =app-text/aspell-0.50.5-r4 =app-text/opensp-1.5.1 =app-text/openjade-1.3.2-r1 =app-text/sablotron-1.0.1 =dev-db/mysql-4.1.14 =dev-db/mysql++-1.7.26 =media-libs/tiff-3.7.3 =sys-libs/db-4.2.52_p2 =dev-libs/libpcre-6.3 =dev-php/php-4.4.0-r4 =dev-lang/swig-1.3.21 =dev-libs/libmix-2.05 =dev-libs/libusb-0.1.10a =dev-libs/pwlib-1.8.7 =dev-php/mod_php-4.4.0-r9 =media-libs/lcms-1.13-r1 =media-gfx/graphicsmagick-1.1.6-r1 =media-gfx/graphviz-1.16-r1 =media-gfx/imagemagick-6.2.4.2-r1 =media-libs/faac-1.24 =media-libs/faad2-2.0-r3 =media-video/ffmpeg-0.4.9_p20050226-r5 =net-analyzer/nmap-3.83 =net-dialup/mgetty-1.1.30-r2 =net-im/jit-1.1.6-r3 =net-libs/openh323-1.15.6 =net-im/ohphone-1.4.3_pre20050304 =net-misc/asterisk-1.2.0 =net-misc/gnugk-2.2.2 =net-misc/hylafax-4.2.2 =net-misc/netkit-telnetd-0.17-r6 =net-print/hpijs-1.7.1 =www-misc/htdig-3.1.6-r7
[...] |
start with festival compiling, but very quickly a lot of errors and finishes with :
Code: | /usr/share/speech-tools/include/EST_TNamedEnum.h:153: error: there are no arguments to `initialise' that depend on a template parameter, so a declaration of `initialise' must be available
In file included from /usr/share/speech-tools/include/ling_class/EST_item_aux.h:46,
from /usr/share/speech-tools/include/EST_ling_class.h:52,
from /usr/share/speech-tools/include/EST.h:63,
from ../../../src/include/festival.h:44,
from festival.cc:44:
/usr/share/speech-tools/include/EST_features_aux.h: At global scope:
/usr/share/speech-tools/include/EST_features_aux.h:99: error: `void* pointer(const EST_Val&)' used prior to declaration |
So, i tried emerge --resume, same error.
Tried to skip this one emerge --resume --skipfirst, compiling groff, errors again, but just :
Code: | i686-pc-linux-gnu-g++ -I. -I. -I/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/src/include -I/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/src/include -DHAVE_CONFIG_H -O2 -march=pentium4 -pipe -fomit-frame-pointer -c searchpath.cpp
In file included from /usr/include/math.h:382,
from prime.cpp:1:
/usr/include/bits/mathinline.h: In function `long double __atan2l(long double,
long double)':
/usr/include/bits/mathinline.h:433: error: `__builtin_atan2l' undeclared (first
use this function)
/usr/include/bits/mathinline.h:433: error: (Each undeclared identifier is
reported only once for each function it appears in.)
distcc[14718] ERROR: compile prime.cpp on 192.168.0.1 failed
make[2]: *** [prime.o] Error 1
make[2]: *** Waiting for unfinished jobs.... |
What have I to do please ? |
|
Back to top |
|
|
NightMonkey Guru
Joined: 21 Mar 2003 Posts: 357 Location: Philadelphia, PA
|
Posted: Sat Dec 03, 2005 3:09 am Post subject: |
|
|
Any links to discussions/sites that might detail some compelling advantages to gcc 3.4 vs 3.3? Thanks in advance! _________________
|
|
Back to top |
|
|
allucid Veteran
Joined: 02 Nov 2002 Posts: 1314 Location: atlanta
|
Posted: Sat Dec 03, 2005 5:16 am Post subject: |
|
|
big_gie wrote: | Time to get that cpu some work!
Is it safe to upgrade via a ssh connection? Since I'm not at work right now, I could use the weekend to upgrade. But I won't be able to be next to the machine. What do you think? |
use gnu screen (emerge screen). |
|
Back to top |
|
|
seren Guru
Joined: 27 Aug 2005 Posts: 448 Location: Wisconsin
|
Posted: Sat Dec 03, 2005 5:35 am Post subject: |
|
|
novazur wrote: | Problems started :
What have I to do please ? |
do
and
if gcc 3.4.4 is the only one shown in gcc-config -l and it has a green star by it then do Code: | emerge gcc libstdcc++-v3 binutils glibc && emerge -P gcc && emerge -system && emerge -e world |
if not then make sure gcc 3.4.4 in selected in gcc-config by and then rember the number gcc 3.4.4 is listed as then do Code: | gcc-config (enter number) | after gcc is the selected compiler do Code: | emerge gcc libstdcc++-v3 binutils glibc && emerge -P gcc && emerge -e system && emerge -e world | this will take a while but it works |
|
Back to top |
|
|
tuxp3 n00b
Joined: 28 May 2004 Posts: 61
|
Posted: Sat Dec 03, 2005 5:39 am Post subject: |
|
|
I like the way you are rolling out this update, but I looked over the upgrading guide and noticed a few things to be concerned with.
- No mention that revdep-rebuild will ALWAYS pick up some binary packages and they can be ignored 100%, just a generic warning that some packages, it might be useful to point out the specific type
- revdep-rebuild should be ran a second time without specifing libstdc++, becuase links to libraries that were recompiled should be recompiled. (aka, a program links to a library thats still linked to old libstdc++ should be recompiled so that the package is linked to the recompiled library which is linked to the new libstdc++)
just my $0.02
Tux |
|
Back to top |
|
|
tuxp3 n00b
Joined: 28 May 2004 Posts: 61
|
Posted: Sat Dec 03, 2005 5:45 am Post subject: |
|
|
novazur wrote: |
So, i tried emerge --resume, same error.
Tried to skip this one emerge --resume --skipfirst, compiling groff, errors again, but just :
Code: | i686-pc-linux-gnu-g++ -I. -I. -I/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/src/include -I/var/tmp/portage/groff-1.19.1-r2/work/groff-1.19.1/src/include -DHAVE_CONFIG_H -O2 -march=pentium4 -pipe -fomit-frame-pointer -c searchpath.cpp
In file included from /usr/include/math.h:382,
from prime.cpp:1:
/usr/include/bits/mathinline.h: In function `long double __atan2l(long double,
long double)':
/usr/include/bits/mathinline.h:433: error: `__builtin_atan2l' undeclared (first
use this function)
/usr/include/bits/mathinline.h:433: error: (Each undeclared identifier is
reported only once for each function it appears in.)
distcc[14718] ERROR: compile prime.cpp on 192.168.0.1 failed
make[2]: *** [prime.o] Error 1
make[2]: *** Waiting for unfinished jobs.... |
What have I to do please ? |
it looks like your running emerge with distcc.
distcc requires that you use the same version of gcc on both computers,
to fix this, go on the distcc slave computer and emerge the new compiler (its not nessacary to run the guide at the time due to slotting), then change the active compiler on the slave to be gcc 3.4 (gcc-config) and restart distccd and try the entire process again on the master, or simpiler disable distcc
Distcc with gcc updates could turn out nasty tho.
Tux |
|
Back to top |
|
|
novazur Guru
Joined: 19 Mar 2005 Posts: 461 Location: Martinique
|
Posted: Sat Dec 03, 2005 6:13 am Post subject: |
|
|
Sorry, I was waiting to totaly solve my problem before posting the solution.
For the second error, yeah, of course, I need to disable distcc, or to upgrade the other PC.
For the first one, I had to compil again speech-tools, and after that, festival compiled well.
revdep-rebuild is actualy finishing his job. All seems fine now.
Thanks to HalcyOn and ReJ on IRC channel. |
|
Back to top |
|
|
slycordinator Advocate
Joined: 31 Jan 2004 Posts: 3065 Location: Korea
|
Posted: Sat Dec 03, 2005 8:39 am Post subject: |
|
|
tuxp3 wrote: | - No mention that revdep-rebuild will ALWAYS pick up some binary packages and they can be ignored 100%, just a generic warning that some packages, it might be useful to point out the specific type |
With gentoolkit versions > 0.2.0, you can Edit /etc/make.conf and add SEARCH_DIRS_MASK="/usr/lib/openoffice"
So now if I do revdep-rebuild, openoffice-bin won't be reinstalled.
And it wouldn't be a bad idea to add /opt to that list since most binary packages are installed there.
Though it would be cool if revdep-rebuild ignored all binary packages altogether. |
|
Back to top |
|
|
eelke Guru
Joined: 17 May 2004 Posts: 406 Location: Earth, Netherlands, Friesland
|
Posted: Sat Dec 03, 2005 8:48 am Post subject: |
|
|
Quote: | Any links to discussions/sites that might detail some compelling advantages to gcc 3.4 vs 3.3? Thanks in advance! |
Sure:
http://gcc.gnu.org/gcc-3.4/changes.html
To summarize:
GCC 3.4.x contains improved code generation resulting in more efficient code. Especially the C++ frontend has been improved to be much closer to the ISO standard. This could break compilation of code that isn't standard C++ but did compile with the old GCC. Also many constructs for C and Objective C have been deprecated which means they won't work in the next version. |
|
Back to top |
|
|
thomasvk Guru
Joined: 19 Mar 2005 Posts: 597
|
Posted: Sat Dec 03, 2005 8:57 am Post subject: |
|
|
I wonder, if I weren't a forum crawler (a few friends of mine run Gentoo but never visit the forums), how would I know about the GCC upgrade guide?
EDIT: oh, it's on the front page www.gentoo.org ... nevermind.
Last edited by thomasvk on Sat Dec 03, 2005 11:23 am; edited 1 time in total |
|
Back to top |
|
|
slycordinator Advocate
Joined: 31 Jan 2004 Posts: 3065 Location: Korea
|
Posted: Sat Dec 03, 2005 9:14 am Post subject: |
|
|
It wouldn't be a bad idea to add a link to the upgrade guide at the end of the warnings when installing gcc.
Have an ewarn that says something like "If upgrading from a previous gcc installation go to http://link_to_guide " |
|
Back to top |
|
|
jkt Retired Dev
Joined: 06 Feb 2004 Posts: 1250 Location: Prague, Czech republic, EU
|
Posted: Sat Dec 03, 2005 12:35 pm Post subject: |
|
|
dirtyepic wrote: | you can build gcc-3.4 as part of your normal update. the new compiler is slotted and won't be used until you run gcc-config to specifically enable it. |
well, it was, at least for me - see bug 114341 _________________ cd /local/pub && more beer > /dev/mouth
Česká dokumentace |
|
Back to top |
|
|
bandreabis Advocate
Joined: 18 Feb 2005 Posts: 2495 Location: イタリアのロディで
|
Posted: Sat Dec 03, 2005 12:46 pm Post subject: |
|
|
Code: | gcc-config i686-pc-linux-gnu-3.6.6 |
_________________ Il numero di post non fa di me un esperto! Anzi! |
|
Back to top |
|
|
Dammital Apprentice
Joined: 05 Nov 2004 Posts: 189
|
Posted: Sun Dec 04, 2005 12:16 am Post subject: |
|
|
Should we clear the ccache after emerging gcc? |
|
Back to top |
|
|
/dev/random l33t
Joined: 26 Nov 2004 Posts: 704 Location: Austin, Texas, USA
|
Posted: Sun Dec 04, 2005 4:12 am Post subject: |
|
|
Dammital wrote: | Should we clear the ccache after emerging gcc? |
I didn't and things are going okay so far (package 228 of 1004...doing the emerge -e world method). |
|
Back to top |
|
|
St. Joe Apprentice
Joined: 13 Apr 2005 Posts: 242 Location: USA
|
Posted: Sun Dec 04, 2005 4:42 am Post subject: |
|
|
/dev/random wrote: | Dammital wrote: | Should we clear the ccache after emerging gcc? |
I didn't and things are going okay so far (package 228 of 1004...doing the emerge -e world method). |
Yeah, I did a hybrid of the two methods and all went fine without clearing the ccache.
Nice to see a transition like that go so smoothly. _________________ For every hammer there is a nail.
For every nail there is a thumb. |
|
Back to top |
|
|
|