ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [apache-talk] kodeks



In <Pine.BSF.4.21.9912201147130.16151-100000@pipe.aspec.ru> Rustam Yusupov 
(tengen@aspec.ru) wrote:

RY> Привет!

RY> подскажите как быть, темные мы ;-)

RY> есть redhat 6.0, apache 1.3.9 PL29.0, есть такая база - кодекс. ее
RY> можно собрать с апачем.
RY> проблема в том, что видимо сами библиотеки этой базы собраны для redhat
RY> 5... ну и соответственно при сборке не находятся коекакие модули из
RY> стандартной библиотеки

>> <=== src/modules/standard
>> ===> src/modules/kodeks
>> gcc  -DRUSSIAN_APACHR -DAPACHE_1_3 -DLINUX=2 -o kdb kdb.c libkdb.a 
>libkodeks.a -lstdc++ -lm -lcrypt
>> libkdb.a(kdbmain.o): In function `ErrorOutput::ErrorOutput(void)':
>> kdbmain.o(.text+0x45): undefined reference to `__eh_pc'
>> libkdb.a(kdbmain.o): In function `StdOutput::StdOutput(void)':
>> kdbmain.o(.text+0xb1): undefined reference to `__eh_pc'
>> libkdb.a(kdbmain.o): In function `StdOutput::_Write(char *, unsigned int)':
>> kdbmain.o(.text+0x1ac): undefined reference to `__eh_pc'
>> kdbmain.o(.text+0x1cb): undefined reference to `__eh_pc'
>> libkdb.a(kdbmain.o): In function `StdOutput::_Read(char *, unsigned int)':
>> kdbmain.o(.text+0x26c): undefined reference to `__eh_pc'
>> libkdb.a(kdbmain.o)(.text+0x293): more undefined references to `__eh_pc' 
>follow
>> libkodeks.a(membuf.o): In function `NewHandler::NewHandler(void)':
>> membuf.o(.text+0x1079): undefined reference to `set_new_handler'
>> libkodeks.a(membuf.o): In function `UnsortCore<BufferHash::page, 10, 
>0>::Increase(unsigned int)':
>> membuf.o(.UnsortCore<BufferHash::page, 10, 
>0>::gnu.linkonce.t.Increase(unsigned int)+0x164): undefined reference to 
>`__eh_pc'
>> membuf.o(.UnsortCore<BufferHash::page, 10, 
>0>::gnu.linkonce.t.Increase(unsigned int)+0x1eb): undefined reference to 
>`__eh_pc'
>> libkodeks.a(membuf.o): In function `UnsortCore<char [256], 10, 
>0>::Increase(unsigned int)':
>> membuf.o(.UnsortCore<char ()[256], 10, 0>::gnu.linkonce.t.Increase(unsigned 
>int)+0x168): undefined reference to `__eh_pc'
>> membuf.o(.UnsortCore<char ()[256], 10, 0>::gnu.linkonce.t.Increase(unsigned 
>int)+0x1ef): undefined reference to `__eh_pc'
>> libkodeks.a(math.o): In function `MathObj::MathObj(void)':
>> math.o(.text+0x1a6): undefined reference to `__eh_pc'
>> libkodeks.a(math.o)(.text+0x1c1): more undefined references to `__eh_pc' 
>follow
>> collect2: ld returned 1 exit status
>> make[4]: *** [kdb] Error 1

RY> если поискать eh_pc, то он есть в библиотеке libstdc++.so.2.8.0, но его
RY> нет в libstdc++-2-libc6.1-1-2.9.0.so.

Имеено. Стандартная библиотека C++ для gcc 2.7.2.3 несовместима с библиотекой
для gcc 2.8.1, которая несовместима с подобной от egcs 1.0.3, а та несовместима
с библиотекой из egcs 1.1.2, которая несовместима с библиотекой gcc 2.95.2, а
версия от 2.95.2 несовместима с gcc 3.0 (от которого пока есть только beta'ы).
Ну и так далее.

RY> может че надо сказать компилеру? egcs-1.1.2 ....

Единственный способ -- поставить egcs из RedHat 5.2 или (лучше) пересобрать
все (если исходников от библиотеки нет, то я бы даже думать о ее использовании
не стал; хотя дело ваше). Хотя и это может не спасти смертельно раненого кота,
ибо вмешаются различия в glibc... Вообще же совместимости между разными
версиями библиотек в Linux'е, как правило, нет никакой (за исключением, пожалуй,
стандартной C-шной библиотеки) и, соответственно, очень быстро получаем 
ситуацию,
когда библиотеку использовать нельзя (что будет, если использовать в программе
две библиотеки, одна из которых использует, скажем, libjpeg 6a, а
другая -- libjpeg 6b ? правильно -- неработающая программа; и libjpeg с
libstdc++ ни в коем разе не исключения! libungif, libpng, openssl и т.д. и т.п.;
исключением является как раз ситуация совместимости разных версий библиотек).



=============================================================================
=               Apache-Talk@lists.lexa.ru mailing list                      =
Mail "unsubscribe apache-talk" to majordomo@lists.lexa.ru if you want to quit.
=       Archive avaliable at http://www.lexa.ru/apache-talk                 =



 




Copyright © Lexa Software, 1996-2009.