| View previous topic :: View next topic |
| Author |
Message |
amne Bodhisattva


Joined: 17 Nov 2002 Posts: 6377 Location: Graz / EU
|
Posted: Sat Dec 03, 2005 3:57 pm Post subject: Re: Help, please! |
|
|
| Lori wrote: |
Any hints how to recover without messing up my system even worse...?
|
http://dev.gentoo.org/~avenj/bins/i686/ has a tbz for gcc-3.3.4-r1.tbz2. Since emerge is broken you should just unpack it with tar. This should provide the missing libs and make emerge work again. If it works, emerge -k gcc 3.3.4-r1 again from the binary package (so portage is aware of it), gcc-config to 3.4.4 and do the upgrade. I hope things should work like that. _________________ Dinosaur week! (Ok, this thread is so last week) |
|
| Back to top |
|
 |
Kosa Tux's lil' helper

Joined: 03 May 2005 Posts: 106 Location: Prague
|
Posted: Sat Dec 03, 2005 4:45 pm Post subject: |
|
|
| Maybe stupid question, but there wasn't any note about recompiling kernel after emerge -e world. I bet I have to do this? |
|
| Back to top |
|
 |
schachti Advocate


Joined: 28 Jul 2003 Posts: 3765 Location: Gifhorn, Germany
|
Posted: Sat Dec 03, 2005 4:47 pm Post subject: |
|
|
Any hints about what's the best way to combine the update from gcc 3.3.6 to 3.4.4 with the update of KDE 3.4.3 to 3.5? If I upgrade to KDE 3.5 first, I have to recompile it with the new gcc, and if I first update gcc according to http://www.gentoo.org/proj/en/base/x86/gcc-upgrading-guide.xml (Safer method), it will recompile KDE 3.4.3 what I do not need to as I want to update to 3.5 afterwards... _________________ Never argue with an idiot. He brings you down to his level, then beats you with experience.
How-To: Daten verschlüsselt auf DVD speichern. |
|
| Back to top |
|
 |
spartak n00b

Joined: 29 Jan 2003 Posts: 21
|
Posted: Sat Dec 03, 2005 4:58 pm Post subject: |
|
|
hi, after following the guide and emerge -e system i error out on cpio with:
| Code: | | undefined refrence to `__builtin_stpcpy` |
so i try to recompile glibc and it errors out with the same:
ctpcpy and mempcpy undefined ref errors can someone please help? |
|
| Back to top |
|
 |
amne Bodhisattva


Joined: 17 Nov 2002 Posts: 6377 Location: Graz / EU
|
Posted: Sat Dec 03, 2005 5:43 pm Post subject: |
|
|
| Kosa wrote: | | Maybe stupid question, but there wasn't any note about recompiling kernel after emerge -e world. I bet I have to do this? |
Actually there is one:
Once kernel modules (e.g. app-emulation/qemu-softmmu) are rebuilt with GCC 3.4, they will not work with your old kernel anymore. Recompiling the kernel with 3.4 solves the problem. _________________ Dinosaur week! (Ok, this thread is so last week) |
|
| Back to top |
|
 |
thomasvk Guru

Joined: 19 Mar 2005 Posts: 599
|
Posted: Sat Dec 03, 2005 5:47 pm Post subject: |
|
|
| schachti wrote: | | Any hints about what's the best way to combine the update from gcc 3.3.6 to 3.4.4 with the update of KDE 3.4.3 to 3.5? If I upgrade to KDE 3.5 first, I have to recompile it with the new gcc, and if I first update gcc according to http://www.gentoo.org/proj/en/base/x86/gcc-upgrading-guide.xml (Safer method), it will recompile KDE 3.4.3 what I do not need to as I want to update to 3.5 afterwards... |
I've been thinking about this. What I'm going to do is first the GCC upgrade and later 3.5. I don't really bother with it recompiling 3.4 again. What I thought about was getting all of the 3.4 packages out of the world file and replace them with the 3.5 ones. That way emerge -e world will compile 3.5 and not 3.4.
But... I have no idea how sane this is and how much it will break anything. |
|
| Back to top |
|
 |
spectatorion n00b


Joined: 12 Jul 2003 Posts: 35
|
Posted: Sat Dec 03, 2005 5:55 pm Post subject: gcc 4.x |
|
|
| Will we have to recompile everything again for gcc 4.x when that becomes stable? I am just wondering if the 3.4.y binaries will be compatible with the 4.x binaries. Honestly, this could take me several days and unless there is some massively compelling reason to upgrade right now (besides being cutting edge, something I can live without) I think I'd be better off waiting until 4.x. |
|
| Back to top |
|
 |
Sho n00b

Joined: 26 Sep 2002 Posts: 48
|
Posted: Sat Dec 03, 2005 6:05 pm Post subject: |
|
|
Problem with emerging libstdc++-v3:
| Code: | gcc -DIN_GCC -DHAVE_CONFIG_H -O2 -march=athlon-xp -pipe -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long -DHAVE_CONFIG_H -DGENERATOR_FILE -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long -I. -I.. -I/var/tmp/portage/libstdc++-v3-3.3.4/work/gcc-3.3.4/gcc/fixinc -I/var/tmp/portage/libstdc++-v3-3.3.4/work/gcc-3.3.4/gcc/fixinc/.. -I/var/tmp/portage/libstdc++-v3-3.3.4/work/gcc-3.3.4/gcc/fixinc/../config -I/var/tmp/portage/libstdc++-v3-3.3.4/work/gcc-3.3.4/gcc/fixinc/../../include -o fixincl fixincl.o fixtests.o fixfixes.o server.o procopen.o gnu-regex.o fixlib.o /var/tmp/portage/libstdc++-v3-3.3.4/work/build/gcc/../libiberty/libiberty.a
gnu-regex.o: In function `regerror':
gnu-regex.c:(.text+0x56a6): undefined reference to `__builtin_mempcpy'
collect2: ld returned 1 exit status |
Any ideas? |
|
| Back to top |
|
 |
Sho n00b

Joined: 26 Sep 2002 Posts: 48
|
Posted: Sat Dec 03, 2005 6:29 pm Post subject: |
|
|
After a reboot, the above failure has been mysteriously replaced by this one:
| Code: | gcc -c -march=athlon-xp -O2 -pipe -DIN_GCC -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wtraditional -pedantic -Wno-long-long -DHAVE_CONFIG_H -DGENERATOR_FILE -I. -I. -I/var/tmp/portage/libstdc++-v3-3.3.4/work/gcc-3.3.4/gcc -I/var/tmp/portage/libstdc++-v3-3.3.4/work/gcc-3.3.4/gcc/. -I/var/tmp/portage/libstdc++-v3-3.3.4/work/gcc-3.3.4/gcc/config -I/var/tmp/portage/libstdc++-v3-3.3.4/work/gcc-3.3.4/gcc/../include /var/tmp/portage/libstdc++-v3-3.3.4/work/gcc-3.3.4/gcc/read-rtl.c -o read-rtl.o
gengtype-yacc.o: In function `yyparse':
gengtype-yacc.c:(.text+0x985): undefined reference to `__builtin_stpcpy'
gengtype-yacc.c:(.text+0x9b6): undefined reference to `__builtin_stpcpy'
gengtype-yacc.c:(.text+0xb2b): undefined reference to `__builtin_stpcpy'
gengtype-yacc.c:(.text+0xb40): undefined reference to `__builtin_stpcpy'
collect2: ld returned 1 exit status |
|
|
| Back to top |
|
 |
spartak n00b

Joined: 29 Jan 2003 Posts: 21
|
Posted: Sat Dec 03, 2005 6:34 pm Post subject: |
|
|
| spartak wrote: | hi, after following the guide and emerge -e system i error out on cpio with:
| Code: | | undefined refrence to `__builtin_stpcpy` |
so i try to recompile glibc and it errors out with the same:
ctpcpy and mempcpy undefined ref errors can someone please help? |
fixed by removing distcc out of my FEATURES var in make.conf |
|
| Back to top |
|
 |
Luc484 Veteran


Joined: 26 Mar 2005 Posts: 1035 Location: Italy
|
Posted: Sat Dec 03, 2005 6:38 pm Post subject: |
|
|
| Sorry for the stupid question, but this is the first time I'm doing such things. I was running step by step the migration guide, and did emerge -e -a world (already made the other steps). I found out a list of 779 packages, but the output says he wants to emerge new packages. I mean that each package was precedeed by [ebuild N ]. Is it correct? Shouldn't it be [ebuild R ]? I ran it anyway only some minutes ago, but now I have the doubt. Is it correct? |
|
| Back to top |
|
 |
thomasvk Guru

Joined: 19 Mar 2005 Posts: 599
|
Posted: Sat Dec 03, 2005 6:40 pm Post subject: |
|
|
emerge -e pretends that the packages aren't installed yet, to get everything. That's why it's N and not R (see man emerge ) |
|
| Back to top |
|
 |
mahatma n00b

Joined: 01 Sep 2005 Posts: 5
|
Posted: Sat Dec 03, 2005 6:47 pm Post subject: Installing from stage1 2005.1-r1 |
|
|
| Are need something more then usual bootstrap.sh + "emerge -e system" for new snapshot (gcc 3.4.4) and stage1 from 2005.1-r1? |
|
| Back to top |
|
 |
Luc484 Veteran


Joined: 26 Mar 2005 Posts: 1035 Location: Italy
|
Posted: Sat Dec 03, 2005 6:48 pm Post subject: |
|
|
| Quote: | emerge -e pretends that the packages aren't installed yet, to get everything. That's why it's N and not R (see man emerge ) |
Thanks for the answer. I already saw that, but the doubt came out anyway. The strange thing I can't explain is that the same command told me two or three times that some packages it wanted to emerge required another package that was marked by ~x86. So I solved adding those packages to package.keywords. But, having not done any sync, shouldn't any of my packages be already in that file, since I actually have it installed in the system? |
|
| Back to top |
|
 |
Sho n00b

Joined: 26 Sep 2002 Posts: 48
|
Posted: Sat Dec 03, 2005 7:03 pm Post subject: |
|
|
| spartak wrote: |
fixed by removing distcc out of my FEATURES var in make.conf |
Indeed, removing distcc and ccache from my FEATURES remedied what problems I had with llibstdc++.
I suggest a warning be added to the migration guide. |
|
| Back to top |
|
 |
hamburger n00b

Joined: 03 Dec 2005 Posts: 1
|
Posted: Sat Dec 03, 2005 8:11 pm Post subject: unmerging gcc 3.3.x / shortcut to new compiler options |
|
|
For me, the main reason to migrate to gcc 3.4.x is to take advantage of the new march=pentium-m.
Obviously I don't like to recompile all packages twice (first time as described in the migration guide, second time after changing CFLAGS) so I'am tempted to do the following:
# emerge -uav gcc
# gcc-config i686-pc-linux-gnu-3.4.4
# source /etc/profile
# emerge -1 sys-libs/libstdc++-v3
# emerge -aC =sys-devel/gcc-3.3*
<change CFLAGS>
# emerge -e system
# emerge -e world
As I understood, this way I'am taking the risk, that some applications won't run during the re-emerge or after a possible error during the re-emerge.
I'am I right ?
Are there any other risks/objections ? |
|
| Back to top |
|
 |
amne Bodhisattva


Joined: 17 Nov 2002 Posts: 6377 Location: Graz / EU
|
Posted: Sat Dec 03, 2005 8:27 pm Post subject: Re: unmerging gcc 3.3.x / shortcut to new compiler options |
|
|
| hamburger wrote: |
As I understood, this way I'am taking the risk, that some applications won't run during the re-emerge or after a possible error during the re-emerge.
|
Gcc 3.3.6 gets recompiled as a dependency of gcc 3.4.4 during emerge -e system/world. If you provide libstdc++v3 before that like you do, it should work, even if you don't unmerge gcc 3.3.6 (because it's no longer a dependency then). _________________ Dinosaur week! (Ok, this thread is so last week) |
|
| Back to top |
|
 |
VStrider Apprentice


Joined: 27 Jun 2005 Posts: 244 Location: 1 to Rule All way, Moria Gate, Middle Earth, SAU 70N
|
Posted: Sat Dec 03, 2005 8:56 pm Post subject: |
|
|
| amne wrote: | There were some problems with gcc-config switching back to 3.3.x when running emerge -e system/world, so the guide wa s changed to emerge libstdc++v3 before that (it doesn't get merged then at all, hence no switching around). Changes will go live in a few minutes.
About the initial paragraph saying nothing happens, it will most likely be changed soon.
|
Yeah, I caught that and hit ^C after 3.3.6 emerged, switched back to 3.4.4 and resumed emerge.
I should be ok now, yes? |
|
| Back to top |
|
 |
ProTech Tux's lil' helper


Joined: 30 Dec 2003 Posts: 88 Location: Hungary
|
Posted: Sat Dec 03, 2005 10:01 pm Post subject: Re: gcc 4.x |
|
|
| spectatorion wrote: | | Will we have to recompile everything again for gcc 4.x when that becomes stable? I am just wondering if the 3.4.y binaries will be compatible with the 4.x binaries. Honestly, this could take me several days and unless there is some massively compelling reason to upgrade right now (besides being cutting edge, something I can live without) I think I'd be better off waiting until 4.x. |
I think GCC 4.0 is binary compatible with GCC 3.4. So you don't have to reemerge everything to upgrade to GCC 4.0. I don't think GCC 4.0 will be stable soon (maybe 2006 christmas .
I usually recompile my whole system at the begining of January. So this GCC upgrade is scheduled for this time.
Currently I doing a fresh install on a laptop, it looks good for now. I don't like this new stage3 install thing. I have to migrate the system from 3.3.6 to 3.4.4 in a fresh install. Stage1 is not working if you change the CHOST to i686 (I know it's cosmetic..). I have to recompile the gcc two times anyway to get it pentium-m optimized. I really hate to sort out witch packages to rebuilt and witch are not if an emerge -e world fails (gcc 3.3.6 with pentium-m CFLAG, pango with doc USE falg). |
|
| Back to top |
|
 |
amne Bodhisattva


Joined: 17 Nov 2002 Posts: 6377 Location: Graz / EU
|
Posted: Sat Dec 03, 2005 10:02 pm Post subject: |
|
|
| VStrider wrote: |
Yeah, I caught that and hit ^C after 3.3.6 emerged, switched back to 3.4.4 and resumed emerge.
I should be ok now, yes? |
I think so, yes. The bug is fixed and will hit rsync mirrors pretty soon. _________________ Dinosaur week! (Ok, this thread is so last week) |
|
| Back to top |
|
 |
LXj Tux's lil' helper


Joined: 03 Dec 2005 Posts: 107
|
Posted: Sat Dec 03, 2005 10:21 pm Post subject: |
|
|
| schachti wrote: | | Any hints about what's the best way to combine the update from gcc 3.3.6 to 3.4.4 with the update of KDE 3.4.3 to 3.5? If I upgrade to KDE 3.5 first, I have to recompile it with the new gcc, and if I first update gcc according to http://www.gentoo.org/proj/en/base/x86/gcc-upgrading-guide.xml (Safer method), it will recompile KDE 3.4.3 what I do not need to as I want to update to 3.5 afterwards... |
For all those guys who don't want to compile something more than once
1)
| Code: |
LX ~ # cat >/usr/local/bin/get-packages
#!/bin/bash
emerge -p $* | colrm 1 16 | grep "[a-zA-Z\-]*/[0-9a-zA-Z\-]*" | sed "s/\[.*//" | sed "s/.*/=\0/"
^D
LX ~ # chmod +x /usr/local/bin/get-packages
LX ~ # /usr/local/bin/get-packages -e system > system
LX ~ # /usr/local/bin/get-packages -e world | grep -vFf system | grep -v "kde-base" >world
|
Skip "| grep -v "kde-base"" if you are going to remerge KDE!
2)Edit system & world if you want not to remerge some packages
3) | Code: | | emerge -1O `cat system world` | -- instead of | Code: | | emerge -e system && emerge -e world |
4) Unmerge old gcc, emerge kde-meta |
|
| Back to top |
|
 |
Akaihiryuu l33t


Joined: 08 May 2003 Posts: 679 Location: Columbus, OH
|
Posted: Sat Dec 03, 2005 11:12 pm Post subject: |
|
|
I have a question about this, right after the gcc 3.4 emege:
Warning: Do not set any GCC 3.4-specific CFLAGS such as -march=pentium-m at this time. Doing so could cause failures in your compiles. You can set these flags after you remove gcc-3.3, which will not recognize them.
So you have to emerge -e system, emerge -e world BEFORE you set cflags like -march=pentium-m? Does this mean that if you want to set something like that, you have to set it after that and then emerge -e system ; emerge -e world AGAIN after that? I'd really rather not do that if it's not necessary. Why isn't it safe to set GCC 3.4 CFLAGS right after you switch to gcc-3.4 with gcc-config? |
|
| Back to top |
|
 |
Paapaa l33t


Joined: 14 Aug 2005 Posts: 955 Location: Finland
|
Posted: Sat Dec 03, 2005 11:27 pm Post subject: |
|
|
| Akaihiryuu wrote: | I have a question about this, right after the gcc 3.4 emege:
Warning: Do not set any GCC 3.4-specific CFLAGS such as -march=pentium-m at this time. Doing so could cause failures in your compiles. You can set these flags after you remove gcc-3.3, which will not recognize them.
So you have to emerge -e system, emerge -e world BEFORE you set cflags like -march=pentium-m? Does this mean that if you want to set something like that, you have to set it after that and then emerge -e system ; emerge -e world AGAIN after that? I'd really rather not do that if it's not necessary. Why isn't it safe to set GCC 3.4 CFLAGS right after you switch to gcc-3.4 with gcc-config? |
I'm guessing, but it should be safe to change CFLAGS after the first "emerge -e system" just before "emerge -e world". After changing cflags you then have to "emerge -e system" again. And finally "emerge -e world".
I guess the problem is that the whole toolchain should be built with gcc-3.4.4 before it is 100% complete. Before the first "emerge -e system" gcc-3.4.4 is built with gcc.3.3 so it is not complete. That causes the warning. But I'm just guessing. |
|
| Back to top |
|
 |
Akaihiryuu l33t


Joined: 08 May 2003 Posts: 679 Location: Columbus, OH
|
Posted: Sat Dec 03, 2005 11:29 pm Post subject: |
|
|
Okay, that makes sense. emerge -e system should recompile any packages that are necessary to fully utilize GCC 3.4. I'll give that a shot. Still compiling gcc-3.4.4 right now. Will update this message when I know if that works or not. It's my server, so hopefully I don't mess it up, or I'll have some mad roommates when they can't get online. ;P
Last edited by Akaihiryuu on Sat Dec 03, 2005 11:33 pm; edited 1 time in total |
|
| Back to top |
|
 |
amne Bodhisattva


Joined: 17 Nov 2002 Posts: 6377 Location: Graz / EU
|
Posted: Sat Dec 03, 2005 11:29 pm Post subject: |
|
|
The problem was that emerge -e world also built gcc 3.3.6, which failed. As the guide has been changed and libstdc++v3 gets installed before emerge -e it should no longer build 3.3.6 anyway, so it should be possible. Can't guarantee it though.
edit: On second thought emerge -e world may still rebuild gcc 3.3.6, which could cause trouble. Personally i'd be interested if it works for you, but if you want things to be safe changing CFLAGS after the updated still is recommended. _________________ Dinosaur week! (Ok, this thread is so last week)
Last edited by amne on Sat Dec 03, 2005 11:39 pm; edited 1 time in total |
|
| Back to top |
|
 |
|