Автор Тема: Проблем с libstdc++  на гентоо  (Прочетена 1284 пъти)

senser

  • Напреднали
  • *****
  • Публикации: 1328
    • Профил
Здравейте,
Пускам темата в секцията за напреднали, защото повече от седмица търся решение (включително и форумите на gentoo) и не мога да открия такова. Ако модераторите преценят нека да я преместят.
Проблема: при последния ъпдейт на системата emerge крашна с грешка (не помня кой пакет точно) от сорта:
Примерен код

undefined reference to `libintl_bindtextdomain


След кратка справка в google  и по форумите проблема се оказа в USE  флага "nls" (NativeLanguageSupport). Прекомпилирах gcc, glibc, binutils, gettext  с USE="-nls" и проблема се реши но се появи нов. Някои от пакетите вкл. libstdc++-v3, (mozilla, ......)  не могат да се ъпдейтнат - грешката по време на инсталация е:
Примерен код

checking whether the C compiler ( /var/tmp/portage/libstdc++-v3-3.3.6/work/build/gcc/xgcc -B/var/tmp/portage/libstdc++-v3-3.3.6/work/build/gcc/ -B/usr/x86_64-pc-linux-gnu/bin/ -B/usr/x86_64-pc-linux-gnu/lib/ -isystem /usr/x86_64-pc-linux-gnu/include -O2 -march=x86-64 -O2 -pipe ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.
make: *** [configure-target-libiberty] Error 1

!!! ERROR: sys-libs/libstdc++-v3-3.3.6 failed.
!!! Function src_compile, Line 232, Exitcode 2
!!! (no error message)
!!! If you need support, post the topmost build error, NOT this status message.


Прекомпилирах абсолютно всичко (цялата система) от началото но без резултат.

Двата лог-а от инсталацията на libstdc++-v3 са пълни с грешки от рода на:
Примерен код

configure:610: checking whether to enable maintainer-specific portions of Makefiles
configure:635: checking for makeinfo
configure:681: checking for perl
configure:721: checking host system type
configure:744: checking build system type
configure:770: checking for ar
configure:802: checking for ranlib
configure:871: checking for gcc
configure:950: checking whether we are using GNU C
configure:959:  /var/tmp/portage/libstdc++-v3-3.3.6/work/build/gcc/xgcc -B/var/tmp/portage/libstdc++-v3-3.3.6/work/build/g$
configure:975: checking whether  /var/tmp/portage/libstdc++-v3-3.3.6/work/build/gcc/xgcc -B/var/tmp/portage/libstdc++-v3-3$
configure:1007: checking whether  /var/tmp/portage/libstdc++-v3-3.3.6/work/build/gcc/xgcc -B/var/tmp/portage/libstdc++-v3-$
configure:1022:  /var/tmp/portage/libstdc++-v3-3.3.6/work/build/gcc/xgcc -B/var/tmp/portage/libstdc++-v3-3.3.6/work/build/$
configure:1023:  /var/tmp/portage/libstdc++-v3-3.3.6/work/build/gcc/xgcc -B/var/tmp/portage/libstdc++-v3-3.3.6/work/build/$
configure:1028: cc -c conftest.c 1>&5
configure:1030: cc -c conftest.c -o conftest.o 1>&5
configure:1031: cc -c conftest.c -o conftest.o 1>&5
configure:1067: checking for POSIXized ISC
configure:1088: checking for working const
configure:1142:  /var/tmp/portage/libstdc++-v3-3.3.6/work/build/gcc/xgcc -B/var/tmp/portage/libstdc++-v3-3.3.6/work/build/$
cc1: error: invalid option `tune=athlon64'
cc1: error: unrecognized option `-fweb'
cc1: error: bad value (athlon64) for -march= switch
cc1: error: bad value (athlon64) for -mcpu= switch
configure: failed program was:
#line 1093 "configure"
#include "confdefs.h"


Примерен код

configure:1374: gcc -E -march=athlon64 -mtune=athlon64 -O2 -pipe -ftracer -frename-registers -fweb -fomit-frame-pointer co$
configure:1370:23: sys/pstat.h: No such file or directory
configure: failed program was:
#line 1369 "configure"
#include "confdefs.h"
#include <sys/pstat.h>
configure:1364: checking for sys/sysmp.h
configure:1374: gcc -E -march=athlon64 -mtune=athlon64 -O2 -pipe -ftracer -frename-registers -fweb -fomit-frame-pointer co$
configure:1370:23: sys/sysmp.h: No such file or directory
configure: failed program was:
#line 1369 "configure"
#include "confdefs.h"
#include <sys/sysmp.h>
configure:1364: checking for sys/sysinfo.h
configure:1374: gcc -E -march=athlon64 -mtune=athlon64 -O2 -pipe -ftracer -frename-registers -fweb -fomit-frame-pointer co$
configure:1364: checking for machine/hal_sysinfo.h
configure:1374: gcc -E -march=athlon64 -mtune=athlon64 -O2 -pipe -ftracer -frename-registers -fweb -fomit-frame-pointer co$
configure:1370:33: machine/hal_sysinfo.h: No such file or directory
configure: failed program was:
#line 1369 "configure"
#include "confdefs.h"
#include <machine/hal_sysinfo.h>
configure:1364: checking for sys/table.h
configure:1374: gcc -E -march=athlon64 -mtune=athlon64 -O2 -pipe -ftracer -frename-registers -fweb -fomit-frame-pointer co$
configure:1370:23: sys/table.h: No such file or directory
configure: failed program was:
#line 1369 "configure"
#include "confdefs.h"
#include <sys/table.h>
configure:1364: checking for sys/sysctl.h
configure:1374: gcc -E -march=athlon64 -mtune=athlon64 -O2 -pipe -ftracer -frename-registers -fweb -fomit-frame-pointer co$
configure:1364: checking for sys/systemcfg.h
configure:1374: gcc -E -march=athlon64 -mtune=athlon64 -O2 -pipe -ftracer -frename-registers -fweb -fomit-frame-pointer co$
configure:1370:27: sys/systemcfg.h: No such file or directory
configure: failed program was:
#line 1369 "configure"


Прилича ми на проблем с хедърните файлове .... но не знам вече  '<img'>

Ето и малко инфо за системата:

Portage 2.0.52-r1 (default-linux/amd64/2005.0, gcc-3.4.4, glibc-2.3.5-r1, 2.6.12-gentoo-r6 x86_64)
=================================================================
System uname: 2.6.12-gentoo-r6 x86_64 AMD Athlon™ 64 Processor 2800+
Gentoo Base System version 1.12.0_pre8
Активен

senser

  • Напреднали
  • *****
  • Публикации: 1328
    • Профил
Проблем с libstdc++  на гентоо
« Отговор #1 -: Sep 18, 2005, 08:08 »
Проблема с libstdc++-v3  го реших след доста ровене и в крайна сметка успях да го компилирам като премахнах "-fweb" флага в CFLAGS в make.conf.

Но проблема с  mozilla,  firefox, ..... си остава - не мога да ги компилирам. Всички опити за инсталация гърмят с грешка:
Примерен код

/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.4/libstdc++.so: undefined reference to `libintl_bindtextdomain'
/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.4/libstdc++.so: undefined reference to `libintl_textdomain'


Дори не мога да прекомпилирам кернела.  make menuconfig свършва със със същата грешка.  Библиотеката libstdc++.so  е част от gcc, но както казах вече неколкократно съм преинсталирал gcc-3.4.4-r1 без успех. Може би проблема е пак в някой от флаговете .....  '<img'>
Активен

ray

  • Напреднали
  • *****
  • Публикации: 1367
    • Профил
Проблем с libstdc++  на гентоо
« Отговор #2 -: Sep 18, 2005, 10:23 »
Здравей,
Най-вероятно проблема ти е в скорошен 'update' на GCC.
Пусни "#gcc-config -l" да се види какви компилатори имаш инсталирани. Пусни тук изхода ако не стане нищо.
После в зависимост от горното пусни "fix_libtool_files.sh" и виж опциите (обикновенно се задава версията на стария/предишния gcc).
Пусни и "revdep-rebuild" да видиш дали някои пакети не се нуждаят от прекомпилация. Вероятно е libstdc++, но недей просто така да прекомпилираш това онова, едва ли ще се получи нещо добро.
Сега проверих и се оказа, че "libstdc++-v3" е най-високо по йерархията (зависи от - binutils,gcc-config, gcc,glibc ...).
Успех. Румен
Активен

senser

  • Напреднали
  • *****
  • Публикации: 1328
    • Профил
Проблем с libstdc++  на гентоо
« Отговор #3 -: Sep 18, 2005, 11:50 »
Цитат (ray @ Сеп. 18 2005,11:23)
Здравей,
Най-вероятно проблема ти е в скорошен 'update' на GCC.
Пусни "#gcc-config -l" да се види какви компилатори имаш инсталирани. Пусни тук изхода ако не стане нищо.
После в зависимост от горното пусни "fix_libtool_files.sh" и виж опциите (обикновенно се задава версията на стария/предишния gcc).
Пусни и "revdep-rebuild" да видиш дали някои пакети не се нуждаят от прекомпилация. Вероятно е libstdc++, но недей просто така да прекомпилираш това онова, едва ли ще се получи нещо добро.
Сега проверих и се оказа, че "libstdc++-v3" е най-високо по йерархията (зависи от - binutils,gcc-config, gcc,glibc ...).
Успех. Румен

Мерси за отговора, но забравих да спомена, че всички тези неща вече съм ги пробвал без резултат. Просто gcc, glibc,binutils, gettext (това са основно пакетите коитоимат кастелство към проблема) си се инсталират и конфигурират без проблем  '<img'> ;


Преди малко намерих решение, но Румен вече беше ме изпреварил. Проблема идва от реда на инсталиране на въпросните пакети. По неясни (дори и за разработчиците) причини инсталацията на  gettext презаписва наново някои от библиотеките, които са част от  glibc, и ако в последствие gcc се компилира с тези библиотеки се получава въпросния проблем.
Решението е след инсталация на тези пакети просто наново да се прекомпилират  glibc & gcc,  при което не се нарушава работата на  gettext (който е критичен за gentoo)  и в същото време  gcc работи без проблем.

Надявам се да съм бил полезен ако някой има подобен проблем.

Поздрави!
Активен