Re: C UDR library load problem
Posted in 2005
Have you tried it with a C function called something other than "test"?
san wrote:
> Hello, all!
>
> I use IDS 2000 v. 9.20.UC1 on Suse Linux 9.2, kernel 2.6.8-24-default
>
> I have some C UDR that succesfully works in other cases (IDS 9.2 on HP-UX
> 11.x, IDS 9.2 on older LINUX,
> IDS 9.4 on Suse Linux 8.0)
> When I have tried run UDR test on above configuration I had error -9793
> "User Defined Routine (test) module load failed."
> The log messages in online.log file is
>
> 12:23:34 Loading Module </informix/udr/test.so>
> 12:23:34 The C Language Module </informix/udr/test.so> can't load> reason: Cannot find base symbol in library.
> 12:23:34 (-1): ERROR: Loading Module </informix/udr/test.so>>
> The example of C UDR routine test.c:
> #include <mi.h>
>
> void test(user, fparam)
> mi_lvarchar *user;
> MI_FPARAM *fparam;
> {
> MI_CONNECTION *conn;
> conn = mi_open(NULL, NULL, NULL);
> }
>
> Shared library build command:
> gcc -I/informix/incl/public -DMI_SERVBUILD -L/informix/lib/esql -shared
> test.c -o test.so
>
> Registering library sql command:
> CREATE DBA PROCEDURE test (
> VARCHAR(8)
> ) EXTERNAL NAME '/informix/udr/test.so(test)' LANGUAGE C VARIANT;
> GRANT EXECUTE ON test TO PUBLIC;>
> What's problem?
>
> Andrew Svihnushin
> INIST Ltd.
> email: san@inist.ru
>
>