# ПОМОГИТЕ  ...Обновление gcc ..

## Gudvin_11

Обновил gcc ,  emerge - gcc  , после этого ничего не подгружается.

То есть не работает не emerge ни KDE , ничто другое

Пишет 

```
/usr/bin/python: error while loading shared libraries: libstdc++.so.6 : cfnnot open shared object file: No such file or directory
```

Где искать проблему , и вообще как разруливать , Помогите что то вообще мыслей нет

----------

## doonkel

А так

#etc-update

#source /etc/profile

----------

## Gudvin_11

не , ничего не меняет

----------

## doonkel

#fix_libtool_files.sh ?.?.?

где ?.?.? -новая версия gcc

----------

## Gudvin_11

А как узнать какая новая?  Попробую конечно , но вчера что то нон вообще не запускался ..

----------

## Gudvin_11

Нашел , 3.3.5 , что то древняя какая то , как же обновление прошло ? Что савсем запутался ..

----------

## doonkel

Новая, это та которую установили.

#gcc-config -l 

покажите.(-l это эль)

----------

## doonkel

Она не древняя.Это стабильная версия.

----------

## Gudvin_11

Вот что отвечает на это предложение моё 

```
gcc-config -l

/usr/bin/gcc-config: line 497: /etc/env.d/gcc/i686-pc-linux-gnu-3.4.3-20050110: Nosuch file or directory

* /usr/bin/gcc-config: Profile does not exist or invalid setting for /etc/env.d/gcc/i686-pc-linux-gnu-3.4.3-20050110

[1] i386-pc-linux-gnu-3.3.5

[2] i386-pc-linux-gnu-3.3.5-hardened

[3] i386-pc-linux-gnu-3.3.5-hardenednopie

[4] i386-pc-linux-gnu-3.3.5-hardenednossp

[5] i386-pc-linux-gnu-3.4.4

[6] i386-pc-linux-gnu-3.4.4-hardened

[7] i386-pc-linux-gnu-3.4.4-hardenednopie

[8] i386-pc-linux-gnu-3.4.4-hardenednopiessp

[9] i386-pc-linux-gnu-3.4.4-hardenednossp
```

Писал руками , так как с другово компа, может где то и ошибся но в целом так 

Может это что то может подсказать ? И главное не понятно какой используется gcc

----------

## ManJak

Так, задай ей 1 (единицу)

потом fix_libtool

----------

## doonkel

Профиль меняется примерно так

#gcc-config i386-pc-linux-gnu-3.4.4 (но здесь ты должен сам определиться)

либо

#gcc-config номер профиля, который хочешь установить, в соответствии с gcc-config -l

#source /etc/profile

Но лучше покажи вывод 

#emerge-info

У меня такое ощущение, что ты использовал раньше i686

Что менялось в make.config?

----------

## Gudvin_11

```
gcc-config 1

* Switching to i386-pc-linux-gnu-3.3.5 compiler ....

/usr/bin/python: error while  loading shared libraries : libstdc++.so.6: cfnnot open shared object file: No such file or directory

* /usr/bin/gcc-config: Could not get portage CHOST!

/usr/bin/config: line 82: env: command not found 

/usr/bin/python: error while  loading shared libraries : libstdc++.so.6: cfnnot open shared object file: No such file or directory

* /usr/bin/gcc-config: Could not get portage CHOST!

/usr/bin/python: error while  loading shared libraries : libstdc++.so.6: cfnnot open shared object file: No such file or directory

* /usr/bin/gcc-config: Could not get portage CHOST!

/usr/bin/python: error while  loading shared libraries : libstdc++.so.6: cfnnot open shared object file: No such file or directory

* /usr/bin/gcc-config: Could not get portage CHOST!

*if you intend to use the gcc from the new profile in an already

*running shell, please  remember to do:

* # source /etc/profile
```

----------

## Gudvin_11

```
emerge info

/usr/bin/python: error while loading shared libraries: libstdc++.so.6 : cfnnot open shared object file: No such file or directory

```

----------

## doonkel

Не получил ответа

Менялось ли руками что-то в make.conf?

В системе установлен пакет libstdc++ -v3 ?

----------

## Gudvin_11

Да приустановки ситемы make.conf  был преписанЮ ну как бы изменён, но тогда всё собралось и как бы нормально до вчерашнего дня работало и собиралось ...

```
libstdc++ -v3
```

 немогу сказать , сам точно его не ставил , но сейчас скажем 

```
emerge
```

  вообще не работает сылаясь  на 

```
/usr/bin/python: error while loading shared libraries: libstdc++.so.6 : cfnnot open shared object file: No such file or directory 
```

  эту ошибку , может в ней что то не так  ?

----------

## ManJak

Причем, страно:

$ locate libstdc++.so

/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/libstdc++.so.5.0.7

/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/libstdc++.so.5

/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5-20050130/libstdc++.so

/usr/lib/libstdc++.so.2.7.2.8

/usr/lib/libstdc++.so.2.8.0

/usr/lib/libstdc++.so.2.9.0

/usr/lib/libstdc++.so.2.9

/usr/lib/libstdc++.so.2.8

/usr/lib/libstdc++.so.2.7.2

/opt/doom3/libstdc++.so.5

/opt/OpenOffice.org/program/libstdc++.so.5

/opt/OpenOffice.org/program/libstdc++.so

У меня его нет.

# emerge info

в студию!  :Smile: 

Похоже, что-то надо глубже рыть!

----------

## Gudvin_11

# emerge info  

 выдает ошибку , написал чуть ниже

----------

## ManJak

Совсем дико, но:

Может питона пересобрать попробовать?

emerge dev-lang/python

Хотя, что-то-там натворилось глубже и думаю, что если он "подох",

то гемор будет =)

Да, fix_libtool помог?

----------

## Gudvin_11

Никакой #emerge не пашет 

Выдаёт такую ошибку 

```
/usr/bin/python: error while loading shared libraries: libstdc++.so.6 : cfnnot open shared object file: No such file or directory
```

Вообще то кроме как 

```
emerge gcc python
```

Ничего не делал  .. 

Как без emerge собирать Питона?

----------

## YD

Как поиск? Уже надоело всем одно и то же повторять =/

https://forums.gentoo.org/viewtopic-t-346018-highlight-ldpreload.html - мой пост предпоследний.

https://forums.gentoo.org/viewtopic-t-349232.html

----------

## Gudvin_11

Так он работает через пень колоду поиск  .. 

Вроде фишка прошла с  LD_PRELOAD , но тока потом , что то не пойму пересобирать всю систему надо ?

----------

## YD

Если версию gcc не менял(смысле с 3.3 > 3.4 и т.п.), то нет.

----------

## Gudvin_11

Так поменял ,  сделал обновление 

```
emerge gcc
```

,   перегружаюсь опять тоже самое   то есть  LD_PRELOAD  

постоянно  ставить надо ? Пересобрал python ,  ничего не дает  при любом запуске  практически всего 

```
/usr/bin/python: error while loading shared libraries: libstdc++.so.6 : cfnnot open shared object file: No such file or directory
```

 И что тока  

```
# emerge -e world 
```

 и тока так? А откатиться обратно нельзя ? 

Может дейстительно глупые вопросы задаю , не обесудьте ..

----------

## ManJak

Может это поможет?

https://forums.gentoo.org/viewtopic-t-350794.html

Т.е. попробовать с бутстрэпинга начать и полный 

emerge -e world

Только надо еще подумать

----------

## YD

 *Gudvin_11 wrote:*   

> Так поменял ,  сделал обновление 
> 
> ```
> emerge gcc
> ```
> ...

 

Блин, ты внимательно прочитал те посты? А теперь какие действия ты сделал?

----------

## Gudvin_11

Да и не подному разу читал 

Вот что сделал 

```
/sbin/fix_libtool_files.sh 3.4.3

env-update

source /etc/profile

export LD_PRELOAD="/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.4/libstdc++.so.6"
```

персобрал, вернее обновил  python

прегружаюсь и тоже самое  , то есть на каждый запуск , к примеру 

 emerge  с любыми ключами

 вылезает 

```
/usr/bin/python: error while loading shared libraries: libstdc++.so.6 : cfnnot open shared object file: No such file or directory
```

Чего я не так сделал?

----------

## Gudvin_11

```
#emerge info 

выдает что стоит  gcc-3.4.3-20050110
```

Выходит обновления до 3.4.4 и не было ..

Сдлелал пересборку , пересобирает gcc-3.4.4  ,  вообще  запутался ..

----------

## viy

В системе может одновременно стоять несколько версий gcc. Ты можешь переключаться между ними по мере необходимости с помощью gcc-config.

----------

## YD

А gcc-config почему не сделал? Он у тебя и оставляет в env.d старый gcc.

----------

## Gudvin_11

Дейстительно что то не сделал , наверное пропустил  ..  

Огромное спасибо всем кто ответил на мою проблему, Сам бы не додумкал . 

И вопрос на последок , никак не скажется на системе замена 

gcc-3.4.3-20050110 на gcc-3.4.4 , то есть вот в постах видел совет 

```
# emerge -e world 
```

 стоит это того ? Вообщем то очень не хоцца , но как скажется просто ?

----------

## YD

ИМХО, нет.

----------

## ManJak

 *Gudvin_11 wrote:*   

> Дейстительно что то не сделал , наверное пропустил  ..  
> 
> Огромное спасибо всем кто ответил на мою проблему, Сам бы не додумкал . 
> 
> И вопрос на последок , никак не скажется на системе замена 
> ...

 

Если, все пошло без глюков, то нет  :Very Happy: 

Поздравлям  :Wink: 

----------

## doonkel

Выскажу свое мнение,но только без обид.

Все эти танцы с LD_PRELOAD и т.п связаны с тем,что у Вас в системе не установлен libstdc++ -v3. Прочтите внимательнее howto по переходу на gcc-3.4.x

----------

## YD

Стоит она, в GCC 3.4.3 - это была зависимость, а вот в GCC3.4.4 нет.

+

В libstdc++-v3 libstdc++ version 5, и по идее подходит для перехода с GCC 3.3 на 3.4, чтобы траблов не было.

В GCC3.4 libstdc++ version 6.

----------

## doonkel

Может быть. У меня остался кусок лога от компиляции 3.4.4

u/libstdc++-v3/src/.libs -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/include -isystem /usr/i686-pc-linux-gnu/sys-include -I/var/tmp/portage/gcc-3.4.4/work/gcc-3.4.4/libstdc++-v3/../gcc -I/var/tmp/portage/gcc-3.4.4/work/build/i686-pc-linux-gnu/libstdc++-v3/include/i686-pc-linux-gnu -I/var/tmp/portage/gcc-3.4.4/work/build/i686-pc-linux-gnu/libstdc++-v3/include -I/var/tmp/portage/gcc-3.4.4/work/gcc-3.4.4/libstdc++-v3/libsupc++ -O2 -O2 -march=pentium4 -O2 -march=pentium4 -D_GNU_SOURCE -fno-implicit-templates -prefer-pic -Wall -W -Wwrite-strings -Wcast-qual  -fdiagnostics-show-location=once  -ffunction-sections -fdata-sections  -c -o pure.lo /var/tmp/portage/gcc-3.4.4/work/gcc-3.4.4/libstdc++-v3/libsupc++/pure.cc

/var/tmp/portage/gcc-3.4.4/work/build/gcc/xgcc -shared-libgcc -B/var/tmp/portage/gcc-3.4.4/work/build/gcc/ -nostdinc++ -L/var/tmp/portage/gcc-3.4.4/work/build/i686-pc-linux-gnu/libstdc++-v3/src -L/var/tmp/portage/gcc-3.4.4/work/build/i686-pc-linux-gnu/libstdc++-v3/src/.libs -B/usr/i686-pc-linux-gnu/bin/ -B/usr/i686-pc-linux-gnu/lib/ -isystem /usr/i686-pc-linux-gnu/i

А до этого стоял gcc-3.4.3

----------

## YD

Блина, ещё раз повторю подробнее.

В GCC3.3 libstdc++ ABI были версии 5,

В GCC3.4 libstdc++ ABI стали версии 6,

т.е. они не совместимы.

При переходе с GCC3.3 на GCC3.4.3 или тестовой инсталяции, когда GCC3.4 в Gentoo ~x86, для того, чтобы не делать emerge -eD world при каждом gcc-config, была добавлена libstdc++-v3, в которой была либа ABI версии 5(от GCC3.3). И все пакеты линкованые и с GCC3.3, и с GCC3.4 мирно работали. Сейчас GCC3.4 у многих является основным компилятором, поэтому такие фишки больше не нужны, но если у кого-то всёже система не пересобрана с GCC3.4, тот может поставить libstdc++-v3.

----------

## doonkel

Теперь понял.Доходчиво. Спасибо

----------

## hlroad

 *YD wrote:*   

> Стоит она, в GCC 3.4.3 - это была зависимость, а вот в GCC3.4.4 нет.
> 
> 

 

Да ну ?

-- /usr/portage/sys-devel/gcc/gcc-3.4.4.ebuild --

...

PDEPEND="sys-devel/gcc-config

        !nocxx? ( !mips? ( !ia64? ( !elibc_uclibc? ( !build? ( || ( sys-libs/libstdc++-v3 =sys-devel/gcc-3.3* ) ) ) ) ) )"

...

--

Никуда ничего не делось, однако...

----------

## doonkel

hlroad wrote:

Не хотел затягивать полемику по

данному вопрсу. Иначе пришлось бы много писать. Что для gcc<=2.95 использовалась libstd++ -v2,

потом она была переписана и появилась libstd++ -v3, которая используется всеми компиляторами gcc-3.x.x. и т.д

----------

## YD

 *hlroad wrote:*   

>  *YD wrote:*   Стоит она, в GCC 3.4.3 - это была зависимость, а вот в GCC3.4.4 нет.
> 
>  
> 
> Да ну ?
> ...

 

У меня стоит ещё GCC3.3, поэтому libstdc++-v3 не требуется, т.к. она включена в GCC3.3, а в gcc-3.4.3.VERSION-rX было

```
PDEPEND="sys-devel/gcc-config

        !nocxx? ( !mips? ( !ia64? ( !elibc_uclibc? ( !build? ( sys-libs/libstdc++-v3 ) ) ) ) )"
```

 Теперь ясна муля ? (:

з.ы. ИМХО, совместимость с ABI 5 была оставлена для бинарных пакетов, хотя я могу ошибаться.

----------

