View previous topic :: View next topic |
Author |
Message |
Tuxisuau Apprentice
Joined: 04 May 2002 Posts: 213 Location: Catalunya (Europe)
|
Posted: Fri Aug 16, 2002 12:57 am Post subject: GCC 3.2 is here: Now is the time to rebuild everything. How? |
|
|
Well, as you all have seen, the definitive gcc 3.2 is here. As you know, the ABI changed and we have to rebuild EVERYTHING again.
The problem is... how?
By the way, emerge -e world does the thing... but what if a ebuild fails? Starting from scratch?
Well, some Gentoo people made some scripts for that (i've seen them in older posts).
Now it's the time to paste them all here and to try to make the most perfect version.
Nice ideas would be fallback CFLAGS/CPPFLAGS (If a ebuild fails retry with a alternative set of CFLAGS and CPPFLAGS), resuming in the case of failure... etc. _________________ IM me at tuxisuau@jabber.7a69ezine.org |
|
Back to top |
|
|
Dolio l33t
Joined: 17 Jun 2002 Posts: 650
|
Posted: Fri Aug 16, 2002 3:19 am Post subject: |
|
|
Use my program rmerge. It lets you resume emerge -e
You can download a copy at the bug report that I submitted to have it added to the portage tree here.
If you get the latest version, you should be able to dump it into the portage tree and actually emerge it.
However, that's not really necessary. You can just run the script directly from wherever you you put it.
Cheers. _________________ They don't have a good bathroom to do coke in. |
|
Back to top |
|
|
Dolio l33t
Joined: 17 Jun 2002 Posts: 650
|
Posted: Fri Aug 16, 2002 3:32 am Post subject: |
|
|
One thing (for those that don't want to read the whole manual ):
It'd be wise to use the (update: see below) --lock option, which makes it so that you don't 'accidentally' upgrade any packages you don't want to (like upgrading to Gnome2 stuff). If you don't use this option, some stuff won't get recompiled with gcc3 (assuming there's an unwanted upgrade).
Also, you may or may not want to use the --force option. It would let you keep going if one insignificant package failed, but if you failed on an important library, then your stuff would be linked to the non-gcc3 build, so you'd probably have to start again from that point anyway (not a good thing).
Finally, please be sure to let me know of any bugs you encounter. It's worked for me, but I don't recompile my system every day to test it, so it could have bugs. If you let me know of a bug, I'll get it fixed as soon as possible.
P.S: If you really want fallback CFLAGS and CXXFLAGS, I could implement that. However, you'd have to make them pretty least-common-denominator (like dropping down from -O3 + a bunch of other stuff to plain -O1 -mno-mmx -mno-sse ... or something). I'm not sure that's the best way to do things (certain packages might need one flag removed, but collectively they might need many removed), since it'd be difficult to have special CFLAGS tailored to each package with this program. Perhaps a better solution would be to be able to fix the problem yourself, and then resume one package ahead (which would be simple to implement as well), but, of course, that wouldn't be as automated.
Comments are welcome.
(update:) Looking at my own documentation, it appears I was confused. The --lock option is what locks the files to the appropriate versions.
However, those who look at bug 5667 will note that this doesn't always display the proper behavior (if you have both qt2 and qt3, only qt3 will be emerged, and it will be emerged twice). I have written a fix for this, but I want to give it a cursory test before loosing it on the world. _________________ They don't have a good bathroom to do coke in.
Last edited by Dolio on Sat Aug 17, 2002 6:21 am; edited 1 time in total |
|
Back to top |
|
|
rac Bodhisattva
Joined: 30 May 2002 Posts: 6553 Location: Japanifornia
|
Posted: Fri Aug 16, 2002 4:08 am Post subject: |
|
|
This thread has been made sticky in the hopes that it will become the official repository for GCC 3.2 upgrade advice and discussion. Please post here instead of starting separate GCC 3.2 upgrade-related threads, so that everyone will have a single place to look. Thanks. _________________ For every higher wall, there is a taller ladder |
|
Back to top |
|
|
blunted Tux's lil' helper
Joined: 21 Jun 2002 Posts: 89 Location: Winnipeg, MB
|
Posted: Fri Aug 16, 2002 4:56 am Post subject: what should one do for a fresh gcc 3.2 install? |
|
|
would it be best to start an install with a gentoo 1.2 cd and emerge gcc3.2 then continue the install or would it be better to install from a 1.4 cd? |
|
Back to top |
|
|
rommel Veteran
Joined: 19 Apr 2002 Posts: 1145 Location: Williamsburg Virginia
|
Posted: Fri Aug 16, 2002 5:05 am Post subject: |
|
|
damn i am just emerging with 3.1.1.....is 3.2 in the profiles already? |
|
Back to top |
|
|
El_Presidente_Pufferfish Veteran
Joined: 11 Jul 2002 Posts: 1179 Location: Seattle
|
Posted: Fri Aug 16, 2002 5:12 am Post subject: |
|
|
3.2 is in default-x86-2.0 profile i think |
|
Back to top |
|
|
Dolio l33t
Joined: 17 Jun 2002 Posts: 650
|
Posted: Fri Aug 16, 2002 5:15 am Post subject: |
|
|
Well, the best way to go would probably to use a 1.4 CD (if they're available). If you want to use a 1.2 CD, you'd need to change your /etc/make.profile link to point to /usr/portage/profiles/default-x86-2.0/ or changing 'x86' to 'ppc' or 'sparc64' (doesn't seem to be a default-sparc-2.0) before you do any bootstrapping or emerging.
I think that's the only change, but I guess it might not be. The safest way to go is to use a 1.4 stage 1. You should be able to boot from any type of cd, though, as long as you're using the 1.4 tarball. _________________ They don't have a good bathroom to do coke in. |
|
Back to top |
|
|
rommel Veteran
Joined: 19 Apr 2002 Posts: 1145 Location: Williamsburg Virginia
|
Posted: Fri Aug 16, 2002 5:32 am Post subject: |
|
|
lol...crap i guess i know what i am doing tomorrow...i didnt even look for x86-2.0
well i just looked and it still refers to 3.2_pre....thats not the stable release is it? |
|
Back to top |
|
|
Beforegod Bodhisattva
Joined: 10 Apr 2002 Posts: 1494 Location: Frankfurt/Main
|
Posted: Fri Aug 16, 2002 6:11 am Post subject: |
|
|
You shouldn't recompile all or?
I think the only changes where made to the C++ ABI so only c++ Programms should be recompiled.
We can start a list of which packages should be re-emerged so you haven't got to recompile the whole system.
[edit]
My System was compiled with gcc 3.1
[/edit]
Last edited by Beforegod on Fri Aug 16, 2002 7:14 am; edited 1 time in total |
|
Back to top |
|
|
arkane l33t
Joined: 30 Apr 2002 Posts: 918 Location: Phoenix, AZ
|
Posted: Fri Aug 16, 2002 6:57 am Post subject: |
|
|
So in order to use GCC 3.2, in plain english without jumping around subject to subject, what do I have to do?
repoint /etc/make.profile to /usr/portage/profiles/defaul-x86-2.0,
then emerge gcc3 (I just checked, I can't find gcc3.. I can only find gcc 2.95.3.. after an rsync a sec ago)? |
|
Back to top |
|
|
taskara Advocate
Joined: 10 Apr 2002 Posts: 3763 Location: Australia
|
Posted: Fri Aug 16, 2002 7:10 am Post subject: |
|
|
boot from gentoo 1.2 cd
follow instructions but extract 1.4-stage1 iso to /mnt/gentoo.
follow instructions and chroot into your new system.
before you bootstrap, run "emerge rsync"
NOW
run "emerge -e world"
this will download gcc 3.2 (and someother things) and compile them
upon completion, bootstrap and continue as normal.
am I on the right track guys ? |
|
Back to top |
|
|
Russki Tux's lil' helper
Joined: 28 Apr 2002 Posts: 119 Location: Prague, Czech Republic
|
Posted: Fri Aug 16, 2002 9:16 am Post subject: |
|
|
Yesterday I started upgrade from GCC 3.2_pre_r1 to GCC3.2 and this morning when I woke up my system was ready! It took about 6.30 hours to recompile everything, which is about as long as it would take with GCC 3.1 or GCC 3.2_pre.
Note: with GCC3.2_pre_r1 I had many packages broken, many programs wouldn't start (this thread)
It seems to be fixed with GCC3.2.
My question: do I have a system as Gentoo 1.4 is going to be? Or will be there more updates which will need to recompile my system again?
Greetings. _________________ Facts are stupid things.
-Ronald Reagan
[img]http://www.danasoft.com/vipersig.jpg[/img] |
|
Back to top |
|
|
ShoX n00b
Joined: 16 Aug 2002 Posts: 12 Location: Freiburg, Germany
|
Posted: Fri Aug 16, 2002 9:57 am Post subject: |
|
|
So I have been running Gentoo1.2 before, GCC version 2.95.3. I changed the link to default-x86-2.0 and did an emerge gcc which surely installed me the GCC 3.2. As it appears to me now, I do have both versions installed as i find a /usr/bin/gcc-3.2 and everything else, but gcc -v still shows me 2.95.3. What steps do I have to do to make 3.2 my only version installed on the system? Unmerge gcc2.95.3? But which symlinks do I have to create then? I know there were several people asking this question, but I haven't found a suitable answer yet.. |
|
Back to top |
|
|
nono n00b
Joined: 04 Jul 2002 Posts: 26 Location: Dresden, Germany
|
Posted: Fri Aug 16, 2002 10:13 am Post subject: |
|
|
Hi,
it would be helpful, if anybody which has successfully updated his/her system would post here a step-by-step manual, because i'm relatively new to gentoo and i don't want to cause damage on my system...
Thanx a lot,
Nono. |
|
Back to top |
|
|
DaDude n00b
Joined: 07 Aug 2002 Posts: 2
|
Posted: Fri Aug 16, 2002 11:02 am Post subject: |
|
|
ShoX wrote: | What steps do I have to do to make 3.2 my only version installed on the system? Unmerge gcc2.95.3? But which symlinks do I have to create then? I know there were several people asking this question, but I haven't found a suitable answer yet.. |
You have to change the link to the correct GCC version you want to use. The file is "/etc/env.d/05gcc".
Then you have to unmerge the old GCC version (for example with "emerge clean") and do a "emerge -e world" which builds the whole system from the scratch using the new GCC version.
The last step is important because as you may know the new GCC is incompatible with the old one.
The rebuild of your system can take about a day. Of course it depends on your packages installed.
DaDude
BTW @ nono: I updated my system from GCC 3.1 to GCC 3.1.1 with this method and it works.... |
|
Back to top |
|
|
okram n00b
Joined: 06 Aug 2002 Posts: 74 Location: Taipei, Taiwan
|
Posted: Fri Aug 16, 2002 11:45 am Post subject: Rebuild system with gcc-3.2 |
|
|
What I don't quite understand is at what point should you recompile your kernel? As far as I can tell, gentoo doesn't actually recompile the kernel for you -- or have I got that wrong? |
|
Back to top |
|
|
nexus n00b
Joined: 14 Aug 2002 Posts: 13 Location: Hamburg
|
Posted: Fri Aug 16, 2002 3:13 pm Post subject: |
|
|
Hmm, I have the same problem like ShoX. I made emerge gee and it worked fine. gcc3.2 is installed. But emerge clean doesn't uninstall gcc2.95.3.
How can I remove gcc2.95.3 ?
The hint from DaDude doesn't work for me |
|
Back to top |
|
|
jeb-c4 n00b
Joined: 27 Jul 2002 Posts: 35
|
Posted: Fri Aug 16, 2002 3:20 pm Post subject: Optimizations |
|
|
Any tips on what compiler flags to use?
Anything known not to work, or any good ones would be great.
Jeb |
|
Back to top |
|
|
aardvark Guru
Joined: 30 Jun 2002 Posts: 576
|
Posted: Fri Aug 16, 2002 3:23 pm Post subject: |
|
|
I dare not ask, but has anyone bootstrapped (clean install) a gcc3.2 (based on 1.4beta) system yet?
Well I tried a few times now ,with different settings, but it fails in the last phase where it emerges gcc for the last time.
Everytime, it stops at libiberty.la thingy.
Hmm I guess we'll have to wait for the official 1.4 release fot this |
|
Back to top |
|
|
aardvark Guru
Joined: 30 Jun 2002 Posts: 576
|
Posted: Fri Aug 16, 2002 3:25 pm Post subject: |
|
|
nono wrote: | Hi,
it would be helpful, if anybody which has successfully updated his/her system would post here a step-by-step manual, because i'm relatively new to gentoo and i don't want to cause damage on my system...
Thanx a lot,
Nono. |
If you want to run little risk, try an install on another partition!
Furthemore wait for an official gentoo 3.2 release (1.4?) |
|
Back to top |
|
|
aardvark Guru
Joined: 30 Jun 2002 Posts: 576
|
Posted: Fri Aug 16, 2002 3:26 pm Post subject: Re: what should one do for a fresh gcc 3.2 install? |
|
|
blunted wrote: | would it be best to start an install with a gentoo 1.2 cd and emerge gcc3.2 then continue the install or would it be better to install from a 1.4 cd? |
I tried a few times with 1.4 beta, but it fails in my case
See my other post. |
|
Back to top |
|
|
Tuxisuau Apprentice
Joined: 04 May 2002 Posts: 213 Location: Catalunya (Europe)
|
Posted: Fri Aug 16, 2002 5:02 pm Post subject: The thruth moment approaches |
|
|
Well, i cross fingers and i'm going to start that big rmerge. _________________ IM me at tuxisuau@jabber.7a69ezine.org |
|
Back to top |
|
|
IWBCMAN Guru
Joined: 25 Jun 2002 Posts: 474
|
Posted: Fri Aug 16, 2002 5:21 pm Post subject: |
|
|
Dolio,
(and I believe the other co-coder was nicknamed fhelgar (?) -great job!)
your script appears to be working great !
I did a
./rmerge -f | tee rmerge.txt
with the text file I can check which programs failed to comply(ie. w/ nano ctrl-w "aborting")...that way I can go back and compile those (few) with less aggressive optimizations(-msse2 is implemented in 3.2-not in 3.2_pre) ....
at any rate (hin,hint) could you share some of your coding magic with us as to how we can have fall back optimizations.....my life and the life of countless others would profit immeasurably from such a kind gesture on your behalf....
thanks......
addendum...well it worked great for a while and then it started reporting to me that the ebuilds were to big....!!!!!!!!
--------
make[1]: Leaving directory `/var/tmp/portage/bash-2.05a-r2/work/bash-2.05a/doc'
info:
gzipping GNU info file bash.info
strip:
/var/tmp/portage/bash-2.05a-r2/image/bin/bash
>>> Completed installing into /var/tmp/portage/bash-2.05a-r2/image/
/usr/sbin/ebuild.sh: source: /usr/portage/sys-apps/bash/bash-2.05a-r2.ebuild: file is too large
...done!
>>> emerge sys-apps/bash-2.05a-r2 to /
>>> md5 bash-2.05a.tar.gz
>>> Merging sys-apps/bash-2.05a-r2 to /
--- /usr/
--- /usr/bin/
>>> /usr/bin/bashbug
--- /usr/share/
--- /usr/share/man/
--- /usr/share/man/man1/
>>> /usr/share/man/man1/rbash.1.gz
>>> /usr/share/man/man1/bash.1.gz
>>> /usr/share/man/man1/bashbug.1.gz
>>> /usr/share/man/man1/builtins.1.gz
--- /usr/share/info/
>>> /usr/share/info/bash.info.gz
--- /usr/share/doc/
--- /usr/share/doc/bash-2.05a-r2/
>>> /usr/share/doc/bash-2.05a-r2/README.gz
>>> /usr/share/doc/bash-2.05a-r2/NEWS.gz
>>> /usr/share/doc/bash-2.05a-r2/AUTHORS.gz
>>> /usr/share/doc/bash-2.05a-r2/CHANGES.gz
>>> /usr/share/doc/bash-2.05a-r2/COMPAT.gz
>>> /usr/share/doc/bash-2.05a-r2/COPYING.gz
>>> /usr/share/doc/bash-2.05a-r2/Y2K.gz
>>> /usr/share/doc/bash-2.05a-r2/FAQ.gz
>>> /usr/share/doc/bash-2.05a-r2/INTRO.gz
--- /bin/
>>> /bin/bash
>>> /bin/sh -> bash
>>> Safely unmerging already-installed instance...
--- !mtime obj /usr/share/man/man1/rbash.1.gz
--- !mtime obj /usr/share/man/man1/builtins.1.gz
--- !mtime obj /usr/share/man/man1/bashbug.1.gz
--- !mtime obj /usr/share/man/man1/bash.1.gz
--- !mtime obj /usr/share/info/bash.info.gz
--- !mtime obj /usr/share/doc/bash-2.05a-r2/Y2K.gz
--- !mtime obj /usr/share/doc/bash-2.05a-r2/README.gz
--- !mtime obj /usr/share/doc/bash-2.05a-r2/NEWS.gz
--- !mtime obj /usr/share/doc/bash-2.05a-r2/INTRO.gz
--- !mtime obj /usr/share/doc/bash-2.05a-r2/FAQ.gz
--- !mtime obj /usr/share/doc/bash-2.05a-r2/COPYING.gz
--- !mtime obj /usr/share/doc/bash-2.05a-r2/COMPAT.gz
--- !mtime obj /usr/share/doc/bash-2.05a-r2/CHANGES.gz
--- !mtime obj /usr/share/doc/bash-2.05a-r2/AUTHORS.gz
--- !mtime obj /usr/bin/bashbug
--- !mtime obj /bin/bash
--- !empty dir /usr/share/man/man1
--- !empty dir /usr/share/man
--- !empty dir /usr/share/info
--- !empty dir /usr/share/doc/bash-2.05a-r2
--- !empty dir /usr/share/doc
--- !empty dir /usr/share
--- !empty dir /usr/bin
--- !empty dir /usr
--- !empty dir /bin
--- !targe sym /bin/sh
>>> original instance of package unmerged safely.
!!! pkg_postinst() script failed; exiting.
Calculating dependencies \/usr/sbin/ebuild.sh: source: /usr/portage/dev-libs/expat/expat-1.95.4.ebuild: file is too large
...done!
>>> emerge dev-libs/expat-1.95.4 to /
!!! emerge aborting on /usr/portage/dev-libs/expat/expat-1.95.4.ebuild .
Calculating dependencies \/usr/sbin/ebuild.sh: source: /usr/portage/dev-lang/python/python-2.2.1-r2.ebuild: file is too large
...done!
>>> emerge dev-lang/python-2.2.1-r2 to /
!!! emerge aborting on /usr/portage/dev-lang/python/python-2.2.1-r2.ebuild .
Calculating dependencies \/usr/sbin/ebuild.sh: source: /usr/portage/sys-apps/debianutils/debianutils-1.16.ebuild: file is too large
...done!
>>> emerge sys-apps/debianutils-1.16 to /
!!! emerge aborting on /usr/portage/sys-apps/debianutils/debianutils-1.16.ebuild .
Calculating dependencies \/usr/sbin/ebuild.sh: source: /usr/portage/sys-apps/fileutils/fileutils-4.1.8-r2.ebuild: file is too large
...done!
>>> emerge sys-apps/fileutils-4.1.8-r2 to /
!!! emerge aborting on /usr/portage/sys-apps/fileutils/fileutils-4.1.8-r2.ebuild .
Calculating dependencies \/usr/sbin/ebuild.sh: source: /usr/portage/sys-apps/portage/portage-2.0.27.ebuild: file is too large
...done!
|
|
Back to top |
|
|
jackp n00b
Joined: 05 Jun 2002 Posts: 12
|
Posted: Fri Aug 16, 2002 5:28 pm Post subject: upgrade from gcc-3.2_pre necessary? |
|
|
I just recently set up gentoo 1.4beta with gcc-3.2_pre. For the most part things went pretty smoothly. Now, my question is, is there a drastic change between 3.2_pre and 3.2 that requires me to recompile ALL my packages, including my kernel? AFAIU the C++ ABI changed from 3.1.1 to 3.2, so would that be pretty much stabilized now (even with that, that only affects C++ code, so I can track down the C++ packages and recompile those if necessary)? Shouldn't the two compiler versions be compatible with each other at least to generate similar enough binary code such that my old packages would run in a "gcc 3.2 environment"?
Or do you think I should play it safe and do an 'emerge -e world' anyway?
EDIT: I think my first question is better rephrased as: are there significant library incompatibilities between 3.2_pre and 3.2? Will things immediately break after I update? |
|
Back to top |
|
|
|