LINUX.ORG.RU

stat64 is referenced by DSO


0

0

И так надо слинковать древний объектник, линковать его положено на либах 2.2 но сейчас век перестройки и надо перенести эту ерунду на либы 2.3.

И так линкуем его на glibc 2.3

получаем ошибку
hidden symbol `stat64' in /usr/lib/libc_nonshared.a(stat64.oS) is referenced by DSO

Немного попгуглив находим что символ stat64 заменен на __xstat64. Поискав в исходниках glibc находим:



#include <sys/stat.h>

int stat64 (const char *file, struct stat64 *buf)
{
return __xstat64 (_STAT_VER, file, buf);
}


компилируем функцию в отдельную библиотеку

gcc -shared -o libstat64.so stat64.c
Пихаем получениую библиотеку в /usr/lib от рута ldconfig


теперь при линковке объекника дописываем -lstat64

Но при линковке получаю ошибку
libstat64.so: undefined reference to `__xstat64@GLIBC_2.2'

Вопрос чем лечить?

Че, братан, ставм Oracle 8.1.7 на третью "федору"?
Не выходит каменный цветок? Тогда попробуй так:

#define __USE_LARGEFILE64

#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

int stat64(const char * file, struct stat * buf) {
    return __xstat(3,file,buf);
}

У меня вроде как помогло.

no-dashi ★★★★★
()

Почему у тебя libstat64 зависит от 2.2, а не от 2.3?

>Вопрос чем лечить?

Собрать libstat64 с помощью 2.3, насколько я понимаю.

anonymous
()
Ответ на: комментарий от anonymous

>Собрать libstat64 с помощью 2.3, насколько я понимаю.

А ему по боку он всеравно ссылается на 2.2..

А вот за

#define __USE_LARGEFILE64
и
return __xstat(3,file,buf);

Большое спасибо, оказывается оно линкуется с стаб либами оракла и оно там найти ссылки на либы 2.2 не может.

А если сделать как написано выше то вызывается функция с glibc 2.0 и все линкуется.

Ок поставил вроде даже работает, в течении недели потестим.

Странно почему никто до сих пор не написал как ставить 8.1.7 на glibc2.3 ?
Ладно время будет напишу...

PS: И весь гимор из за двух функций ((

Aleks_IZA
() автор топика
Ответ на: комментарий от Aleks_IZA

> Странно почему никто до сих пор не написал как ставить 8.1.7 на glibc2.3?

Руки не дошли, уж извини :-) Скоро исправлюсь :-)

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Впрочем, потом опять набежит куча "знатоков" и будет куча воплей :-)

Ну и .уй с ними, повопят и успокоятся!

no-dashi ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.