[fpc-pascal] UDF+FREEBSD+FIREBIRD
KES
kes-kes at yandex.ru
Sat Nov 15 16:20:15 CET 2008
Здравствуйте, Michael.
Вы писали 15 ноября 2008 г., 12:23:55:
MVC> On Sat, 15 Nov 2008, KES wrote:
>> Здравствуйте, Michael.
>>
>> Вы писали 15 ноября 2008 г., 2:52:48:
>>
>>
>>
>> MVC> On Sat, 15 Nov 2008, KES wrote:
>>
>> >> Здравствуйте, Michael.
>>
>> MVC> Zdravstvuyte...
>>
>> >> >> I have tryied my example to compile in Delphi. Then I use DLL in
>> >> >> FireBird on Win32. All works fine. So my source file is good
>> >> >> and therefore FreePascal can not compile shared library that can be
>> >> >> recognized by FireBird (((
>> >>
>> >> MVC> Did you specify cdecl as the calling convention for non-windows ?
>> >> MVC> If it works on windows, it almost surely does not work straight out
>> >> MVC> of the box on unices, because the calling convention will be wrong.
>> >>
>> >> MVC> Michael.
>> >>
>> >> This is last my try:
>> >>
>> >> library MyUDF;
>> >>
>> >>
>> >> function somefn: integer; cdecl; export;
>> >> begin
>> >> somefn:= 3;
>> >> end;
>> >>
>> >> exports
>> >> somefn name '_somefn';
>> >> end.
>> >>
>> >> On win32 it works, on FreeBSD does not
>>
>> MVC> I compiled the library, and checked the contents:
>>
>> home: >>objdump -t libmyudf.so
>>
>> MVC> 00004a20 g F .text 00000005 _somefn
>>
>> MVC> So the symbol is present, as you declared it in your library.
>> MVC> That part seems OK.
>>
>> MVC> How do you declare your function in Firebird ?
>> MVC> Does it have the _ ?
>> MVC> and the correct casing ?
>>
>> MVC> Michael.
>>
>> I have tryied with and without _
>>
>> DECLARE EXTERNAL FUNCTION FNTEST
>> RETURNS INTEGER
>> ENTRY_POINT 'somefn'
>> MODULE_NAME 'myudf'
>>
>>
>> DECLARE EXTERNAL FUNCTION FNTEST
>> RETURNS INTEGER
>> ENTRY_POINT '_somefn'
>> MODULE_NAME 'myudf'
MVC> Did you try changing the name myudf to libmyudf.so or libmyudf ?
MVC> I don't think that the 'lib' is prefixed automatically.
MVC> Michael.
Yes I did, Marc Santhoff advice me this on 13 Novemter
--
С уважением,
KES mailto:kes-kes at yandex.ru
More information about the fpc-pascal
mailing list