[fpc-pascal] UDF+FREEBSD+FIREBIRD

KES kes-kes at yandex.ru
Fri Nov 14 23:49:33 CET 2008


Здравствуйте, Michael.

Вы писали 15 ноября 2008 г., 0:10:13:



MVC> On Fri, 14 Nov 2008, KES wrote:

>> Здравствуйте, Marc.
>> 
>> Вы писали 13 ноября 2008 г., 21:43:38:
>> 
>> MS> Am Donnerstag, den 13.11.2008, 18:59 +0200 schrieb KES:
>> >> Здравствуйте, Marc.
>> >> 
>> >> Вы писали 12 ноября 2008 г., 23:12:43:
>> 
>> 
>> >> MS> Then I'd say the fault is clearly on the firebird side.
>> >> 
>> >> MS> One last thing I'd try is to use another name (like with ld: using
>> >> MS> -lmine is searching for "libmine.so", not only "mine.so"), if that
>> >> MS> fails, too, it time for one of fpc's developers to comment or the
>> >> MS> firebird people to investigate.
>> >> 
>> >> what do you mean?
>> 
>> MS> Try to give your library another name, preferably not having the string
>> MS> "lib" in it. If the linker gets called it searches "libm" for a request
>> MS> to link to "m". But I do not think that'll help ...
>> 
>> MS> Better would be to push the verbosity of firebirds error messages up
>> MS> (-vv or something like that) and investigate why it does not find the
>> MS> lib.
>> 
>> MS> Best tools for this job are syscall loggers like ktrace/strace/truss/...
>> MS> (look in the ports tree), chances are good to find the problem in their
>> MS> logging output.
>> 
>> MS> Marc
>> 
>> 
>> MS> _______________________________________________
>> MS> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
>> MS> http://lists.freepascal.org/mailman/listinfo/fpc-pascal
>> 
>> 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

-- 
С уважением,
 KES                          mailto:kes-kes at yandex.ru




More information about the fpc-pascal mailing list