Subject | 1.5.2 Classic/Fedora Core 3/ C UDFs |
---|---|
Author | rayholme |
Post date | 2005-03-04T14:05:46Z |
I am having great problems getting a VERY (first used in Interbase
3.x) seasoned UDF library to work with 1.5.2 Classic Firebird. The
engine does recognize that the libary itself is there, but cannot find
functions within it::
Statement failed, SQLCODE = -104
invalid request BLR at offset 2
-function GET_BIT is not defined
-module name or entrypoint could not be found
I recognize that there may be issues between libraries of C++ and C, ...
Does anybody have a working example of compiling and linking a UDF
that works under this release that they can share? Do I have to add
any special wrappers to the C code to make C++ happy?
By the way, I am having the identical problem with MAC OSX.
I am using GCC and here is what the lines use to look like in 1.0.3
gcc -c -fPIC -O0 -Wall -pipe -ansi -g -DLinux udf.c
ld -o SISudf udf.o -shared -lgds
This is the first variant (I have tried MANY combinations including -G
and -Bdynamic with explicit libraries - but never got any better
results). The compile line does not change (-DLinux controls system
library includes and I just don't have great results with optimizers -
unless Ann H. wrote them :] )
ld -o SISudf.so udf.o -shard -lfbclient
The ONLY thing I need out of the last libary is isc_encode_date and
isc_decode_date - so Please don't think I am trying to call the engine
in the UDF.
I have looked at the example code in the release for udflib.c and SEE
ABSOLUTELY nothing that I am not doing. It has to be either compiler
switches (less likely) or linker switches that are causing the
problem. Unfortunately the examples/makefile has gone the way of the
dodo. :{
Ray
3.x) seasoned UDF library to work with 1.5.2 Classic Firebird. The
engine does recognize that the libary itself is there, but cannot find
functions within it::
Statement failed, SQLCODE = -104
invalid request BLR at offset 2
-function GET_BIT is not defined
-module name or entrypoint could not be found
I recognize that there may be issues between libraries of C++ and C, ...
Does anybody have a working example of compiling and linking a UDF
that works under this release that they can share? Do I have to add
any special wrappers to the C code to make C++ happy?
By the way, I am having the identical problem with MAC OSX.
I am using GCC and here is what the lines use to look like in 1.0.3
gcc -c -fPIC -O0 -Wall -pipe -ansi -g -DLinux udf.c
ld -o SISudf udf.o -shared -lgds
This is the first variant (I have tried MANY combinations including -G
and -Bdynamic with explicit libraries - but never got any better
results). The compile line does not change (-DLinux controls system
library includes and I just don't have great results with optimizers -
unless Ann H. wrote them :] )
ld -o SISudf.so udf.o -shard -lfbclient
The ONLY thing I need out of the last libary is isc_encode_date and
isc_decode_date - so Please don't think I am trying to call the engine
in the UDF.
I have looked at the example code in the release for udflib.c and SEE
ABSOLUTELY nothing that I am not doing. It has to be either compiler
switches (less likely) or linker switches that are causing the
problem. Unfortunately the examples/makefile has gone the way of the
dodo. :{
Ray