[freebsd] Динамическая линковка...

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Сообщение Konstantin » 18.03.2006 00:21:16

Добрый день.

При создании разделяемой библиотеки на FreePascal (перенос UDF СУБД Firebird под FreeBSD)
возникли некоторые трудности - СУБД не видит экспортируемых функций.
Для тестирования была написана тестовая программа динамически вызывающая одну из функций
из этой библиотеки.
Так вот при загрузке dlopen ругается:

./libudfbtools.so: Undefined symbol "main"

Он, (main) таки undefined - линкуется из FPC-ного STUB-а, но библиотека грузится с
параметром RTLD_LAZY!

lib := dlopen ('./libudfbtools.so', 1);

FireBird-овская библиотека, в которой присутствуют неопределенные функции, грузится
нормально. Далее выяснилось, что если тестовую программу и библиотеку линковать с
параметром "-E" (ld), то всё OK.

Вопрос к знатокам: какой параметр линковщика, при создании динамической библиотеки,
"убирает ругню" rtld? (ну не пересобирать-же Firebird с "LDFLAGS=-E").


С уважением, Константин.
Konstantin
 

Сообщение STAKANOV » 19.03.2006 01:21:23

Так вот при загрузке dlopen ругается:

./libudfbtools.so: Undefined symbol "main"

я функцию заглушку ставил, особо не разбираясь :rolleyes:
Аватара пользователя
STAKANOV
энтузиаст
 
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение Константин » 20.03.2006 00:29:47

Каким образом?
Константин
 

Сообщение STAKANOV » 20.03.2006 11:12:46

Константин писал(а): Каким образом?

Добалял что-то вроде:
Код: Выделить всё
procedure mymain; alias : 'main';
begin
end;


Точно не помню, но по-моему так. Правда я не уверен, что это корректный способ :rolleyes:
Аватара пользователя
STAKANOV
энтузиаст
 
Сообщения: 1069
Зарегистрирован: 14.05.2006 21:26:24
Откуда: Зеленоград

Сообщение Dmitry » 20.03.2006 11:42:58

А у линковщика параметр -lc стоит?
Dmitry
новенький
 
Сообщения: 52
Зарегистрирован: 05.07.2005 08:53:06

Re: [freebsd] Динамическая линковка...

Сообщение depo72 » 28.10.2011 20:01:54

Доброго времени суток.

Времена меняются, а проблемы остаются...
Столкнулся с такой же проблемой. Компилирую библиотеку, кладу в /usr/local/libexec/firebird/udf, но сервер не видит (говорит что "...module name or entrypoint could not be found"). Тестовый пример работает.
OS - FreeBSD 8.2
FPC - 2.7.1
Firebird - 2.5.1
Пните в нужном направлении, пожалуйста.
depo72
незнакомец
 
Сообщения: 6
Зарегистрирован: 30.05.2006 18:09:26


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 10

Рейтинг@Mail.ru
cron