gcc upgrade
was trying this on my rh box using rpm and got into trouble when it came to upgrading the glibc stuff (glibc-common, glibc etc etc).
there's plenty of stuff that depend on glibc. i couldn't get it to upgrade through "rpm -U". "rpm -e" gave me dependencies problems so i forced it with "rpm -e --nodeps". i was able to install the new gcc after that and the compiler worked. but uh, the rest of the stuff that depended on the previous glibc stuff were broken. interestingly, my /etc/ld.so.conf was also wiped clean... i'm wondering... what's the workaround to this? is compiling by hand easier? i've always wondered: how do u compile a new compiler? sounds rather recursive... |
there is a *reason* for dependencies of course... that's the whole point of it. you can't expect things to work if you deny the dependencies. it's not a quick fix, it's a great way to break a system though.
1) remove the newly installed package. 2) reinstall it WITH ALL the dependencies. |
yea i know that. however, i couldn't remove the old glibc stuff nor upgrade it with rpm without doing what i did.
hm. reinstall with all the dependencies as in? does the man pages have some details on this? if not, what's the command like? |
you know what happens when a dependency fails don't you? you get the name of a package or file that is missing. so go to rpmfind.net and get the package that is missing.... it may take a while, but it's the way it's done
|
has anyone complied gcc3.2 packages? I downloaded the core package source( c complier and libraries ) along with the g++ package source. Both bz2balls exploded to the directory gcc-3.2 and a single make command built both the core and g++. gcc is fine, but g++ somehow cant find the standard c++ libraries eventhough they are where they should be. so trying to complie and link a c++ hello world program, it says
/tmp/ccAoTsBq.o: In function `main': /tmp/ccAoTsBq.o(.text+0x13): undefined reference to `cout' /tmp/ccAoTsBq.o(.text+0x20): undefined reference to `ostream::operator<<(char const*)' collect2: ld returned 1 exit status the follwing is the output of g++ -v Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/specs Configured with: ../gcc-3.2/configure --prefix=/usr --exec-prefix=/usr --infodir=/usr/share/info --mandir=/usr/share/man --with-gxx-include-dir=/usr/include/g++-3 Thread model: posix gcc version 3.2 Does anyone know what's happening here? |
oh, maybe I should mention this. I tried to complie the prog with g++ and link it separately.
ld: warning: cannot find entry symbol _start; defaulting to 08048074 hello.o: In function `main': hello.o(.text+0x13): undefined reference to `cout' hello.o(.text+0x20): undefined reference to `ostream::operator<<(char const*)' hello.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0' I read somewhere that this could be caused by 'mixing' complier versions. Any ideas, folks? |
Quote:
well, thanks. think i know what u mean. but wow, like u said, it's gonna take a while. nxny: i think besides the gcc package, there should be a cpp package that you need to upgrade as well. have u done that yet? hm, i'm not sure of any other way (maybe someone can knows a better way), but try a simple C program and see if u can compile and link it. if u can, then most likely u need to get the compatible version of the cpp package (can't remember the version offhand) |
Quote:
I used: ./configure make make install cd .. rm -rf gcc-3.2 |
rm -rf gcc-3.2
so how are you meant to remove the package if you felt like it? |
you can't remove it, but the source build dir is ~500mb
|
i suppose that's to be conceded... but also you could make clean it and tar it back up again.
|
All times are GMT -5. The time now is 10:45 PM. |