The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Проблема: линковка статических библиотек redhat73 в FreeBSD"
Отправлено Diego, 09-Авг-07 12:17 
Проблема: линковка статических библиотек redhat73 в FreeBSD.

Доброго времени суток, господа! :)

Опишу коротко, может быть кто-то сталкивался или в курсе как данная проблема решается, заранее спасибо за внимание.

Есть необходимость пересобрать программный комплекс, поставляющийся под RedHat 7.3, d в операционной среде FreeBSD (FreeBSD 6.2-RELEASE FreeBSD 6.2-RELEASE #0: Fri Jan 12 11:05:30 UTC 2007     root@dessler.cse.buffalo.edu:/usr/obj/usr/src/sys/SMP  i386)
поскольку в режиме совместимости некоторые бинарники работают некорректно. Комплекс поставляется с исходными кодами, но работает с библиотеками стороннего разработчика, которые  включены в дистрибутив только в прекомпилированном в виде статических библиотек (.a)

При линковке данных библиотек линкер выдает следующее:

gcc -v -nostdlib -lc -lgcc -I... -o test test.c ... -lPGSTK -lc -lgcc
Reading specs from /usr/local/lib/gcc-lib/i386-portbld-freebsd6.2/2.8.1/specs
gcc driver version 2.8.1 executing gcc version 2.96
/usr/local/lib/gcc-lib/i386-portbld-freebsd6.2/2.8.1/cpp -lang-c -v -I. -I... -iprefix i386-portbld-freebsd6.2/2.8.1/ -undef -D__GNUC__=2 -D__GNUC_MINOR__=96 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__tune_i386__ test.c /tmp/ccl5bfNW.i
Using builtin specs.
gcc version 2.96 20000731 (Red Hat Linux 7.3 2.96-110)
cpp0 -lang-c -v -I... -iprefix i386-redhat-linux/2.96/ -D__NO_INLINE__ -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__tune_i386__ -D__GNUC__=2 -D__GNUC_MINOR__=96 -D__ELF__ -Dunix -Dlinux -D__ELF__ -D__unix__ -D__linux__ -D__unix -D__linux -Asystem(posix) -Acpu(i386) -Amachine(i386) -Di386 -D__i386 -D__i386__ -D__tune_i386__ -iprefix i386-portbld-freebsd6.2/2.8.1/ test.c -o /tmp/ccl5bfNW.i
GNU CPP version 2.96 20000731 (Red Hat Linux 7.3 2.96-110) (cpplib) (i386 Linux/ELF)
#include "..." search starts here:
#include <...> search starts here:
.
... (список опущен)
End of search list.
/usr/local/lib/gcc-lib/i386-portbld-freebsd6.2/2.8.1/cc1 /tmp/ccl5bfNW.i -quiet -dumpbase test.c -version -o /tmp/ccl5bfNW.s
GNU C version 2.96 20000731 (Red Hat Linux 7.3 2.96-110) (i386-redhat-linux) compiled by GNU C version 2.96 20000731 (Red Hat Linux 7.3 2.96-110).
as -V -Qy -o /tmp/ccl5bfNW1.o /tmp/ccl5bfNW.s
GNU assembler version 2.11.93.0.2 (i386-redhat-linux) using BFD version 2.11.93.0.2 20020207
/usr/local/lib/gcc-lib/i386-portbld-freebsd6.2/2.8.1/collect2 -m elf_i386_fbsd -dynamic-linker /lib/ld-linux.so.2 -o test -L/data/seadas/hdf/TOOLKIT/lib/linux -L -L/usr/local/lib/gcc-lib/i386-portbld-freebsd6.2/2.8.1 -L/usr/local/lib -lc -lgcc /tmp/ccl5bfNW1.o -lPGSTK -lc -lgcc /usr/local/lib/libhdf5.a /usr/local/lib/libmfhdf.a /usr/local/lib/libdf.a /usr/local/lib/libz.a /usr/local/lib/libjpeg.a /usr/local/lib/libsz.a
/usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000008048b60
.../libPGSTK.a(IO0_GetHeader)(.text+0x17d): In function `PGS_IO_L0_GetHeader':
: undefined reference to `__errno_location'
...libPGSTK.a(IO0_GetHeader)(.text+0x25d): In function `PGS_IO_L0_GetHeader':
: undefined reference to `__strtol_internal'
... и тому подобное...
: undefined reference to `stderr'

По именам референсов видно, что проблема при линковке библиотеки libgcc.

Здесь в качестве эксперимента были задействованы libgcc и libc вместе с libgcc.a libc.a и динамическими .so из дистрибутива RedHat, никаких отличий от линковки библиотек FreeBSD нет, как это ни странно. Проверено, что линкер берет именно те библиотеки, которые нужно. Казалось бы, все референсы должны быть определены, так как в редхатовских библиотеках они присутствуют.

Вот поэтому и вопрос: в чем еще может быть проблема? :)

 

Ваше сообщение
Имя*:
EMail:
Для отправки новых сообщений в текущей нити на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру