[fpc-pascal] UDF+FREEBSD+FIREBIRD

KES kes-kes at yandex.ru
Wed Nov 12 21:55:51 CET 2008


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

Вы писали 12 ноября 2008 г., 22:13:32:

MS> Another observation:

MS> In any case you get the error message:

>> function FNTEST2 is not defined
>> module name or entrypoint could not be found

MS> If the function name is there and written correctly, make sure the
MS> module (= your library) is found. I'm not used to making UDFs, but
MS> somehow the search path and maybe the libraries found there can be
MS> listed similar to using "ldconfig -r" but for the firebird stuff.

MS> Marc

"C" programm 'testudf.c' I have compiled with gcc works fine. Firebird see it and
I can call 'fntest' function

When I compile my 'tkes.pp'. Firebird do not found function I need.

In both cases (C, FPC) libs are located in
/usr/local/libexec/firebird/udf directory and have same premissions

also I have tryed to test my libtkes2.so.

I write test.pp
{$linklib libtkes2.so}

function somefn(): integer; stdcall; external 'libtkes2' name 'somefn';

begin
  Writeln( somefn() );
end.

in this case dynamic library are located and somefn is called

This seems that Firebird does not understand .so module compiled by
FPC

also I have tryed this:
fpc -Cn tkes2.pp
gcc tkes2.o -o libtkes2.so -shared
in this case Firebird also does not see somefn:
DETAILS:
libtkes2.so: ELF 32-bit LSB shared object, Intel 80386, version 1 (FreeBSD), dynamically linked, not stripped
         U FINALIZE$_OBJPAS
         U FPC_INITIALIZEUNITS
000019ac D FPC_RESOURCESTRINGTABLES
0000199c D FPC_THREADVARTABLES
         U INIT$_OBJPAS
         U INIT$_SYSTEM
00001984 D INITFINAL
00000860 T P$TKES2_SOMEFN$$LONGINT
00000874 T P$TKES2_main
00000874 T PASCALMAIN
         U THREADVARLIST_OBJPAS
00001980 D THREADVARLIST_P$TKES2
         U THREADVARLIST_SYSTEM
000019f0 A _DYNAMIC
00001acc A _GLOBAL_OFFSET_TABLE_
         w _Jv_RegisterClasses
00001abc d __CTOR_END__
00001ab8 d __CTOR_LIST__
00001ac4 d __DTOR_END__
00001ac0 d __DTOR_LIST__
000019ec r __FRAME_END__
00001ac8 d __JCR_END__
00001ac8 d __JCR_LIST__
00001ae4 A __bss_start
         w __cxa_finalize@@FBSD_1.0
00000890 t __do_global_ctors_aux
000007c0 t __do_global_dtors_aux
00001970 d __dso_handle
000019b8 D __fpc_valgrind
000019b4 D __heapsize
00000857 t __i686.get_pc_thunk.bx
000019b0 D __stklen
00001ae4 A _edata
00001b00 A _end
000008c4 T _fini
00000788 T _init
00000880 T _somefn
00001af0 b completed.4685
00000820 t frame_dummy
00001974 d p.4683
00000860 T somefn




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




More information about the fpc-pascal mailing list