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

Reply via email to