On 19/10/2010 19:45, Jarry wrote:
> Hi,
> I just tried to upgrade gcc (stable amd64, from 4.4.3-r2
> to 4.4.4-r2) following the procedure recommended in Gentoo
> GCC Upgrade Guide:
>
> emerge -uav gcc
>
> At the end of compilation, I got these strange messages:
> ================================================== ==
>
> in '/etc/env.d/gcc/'
> !
> * Running 'fix_libtool_files.sh 4.4.3'
> * Scanning libtool files for hardcoded gcc library paths...
> cat: ld.so.conf.d/*.conf: No such file or directory
> :0: assertion failed: (gcc -dumpversion) | getline NEWVER)
>>>> Original instance of package unmerged safely.
> * Switching native-compiler to x86_64-pc-linux-gnu-4.4.4 ...
> * gcc-config: Active gcc profile is invalid!
> * Your gcc has a bug with GCC_SPECS.
> * Please re-emerge gcc.
> * http://bugs.gentoo.org/68395
>
>>>> Regenerating /etc/ld.so.cache... [ ok ]
>
> * If you intend to use the gcc from the new profile in an already
> * running shell, please remember to do:
>
>
> * If you have issues with packages unable to locate libstdc++.la,
> * then try running 'fix_libtool_files.sh' on the old gcc versions.
> * You might want to review the GCC upgrade guide when moving between
> * major versions (like 4.2 to 4.3):
> * http://www.gentoo.org/doc/en/gcc-upgrading.xml
>
>>>> Regenerating /etc/ld.so.cache...
>>>> Recording sys-devel/gcc in "world" favorites file...
>>>> Auto-cleaning packages...
>>>> No outdated packages were found on your system.
>
> * Regenerating GNU info directory index...
> * Processed 7 info files.
> ================================================== ==
>
> What does that "invalid profile" mean, and how can I fix it?
Well... it means that the active gcc profile is invalid
You can have several gcc versions installed on your system for a given
target arch; each version has an associated profile and you can choose
the active one (i.e. which version is run when you type "gcc") by using
gcc-config.
When you do a regular (i.e. -multislot) gcc upgrade, the active profile
must be changed from the old version to the new one; the ebuild should
take care of this for you but sometimes it chokes in the process.
First you have some warnings about the old profile being broken -- which
is expected as you just uninstalled the old gcc version:
> * gcc-config: Could not locate 'x86_64-pc-linux-gnu-4.4.3'
[...]
> * gcc-config: Active gcc profile is invalid!
> gcc-config: error: could not run/locate 'gcc'
Then the new profile is correctly selected:
> * Switching native-compiler to x86_64-pc-linux-gnu-4.4.4 ...
It's not clear to me whether the following warnings (let alone the whole
"your gcc is broken" scary thing) are caused by the new profile being
actually broken or -- more likely -- by the problems encountered when
trying to do something with the old profile.
Try a simple "gcc -v" in a new shell. If it works, you are fine.
If it does not work, try again after doing "gcc-config 1".
If it still does not work, well, you're in for lots of fun.
HTH,
andrea