Добрый день.
При создании разделяемой библиотеки на 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").
С уважением, Константин.