Re: C UDR library load problem
Posted in 2005
Topics: Connectivity: ESQL/C, 4GL & Embedded SQL, Server Administration, Security, Permissions & Auditing, Data Types & Schema Design, Platform-Specific Issues, Versions, Editions & End-of-Life
"san" <san@inist.ru> wrote in message news:d88ulv$2tlt$1@news.rinet.ru...
> 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
>
>
Hum -- I was wondering where that screen went.
OK - what I'd suggest is using nm on the .so file to see what entrypoints
and undefined references are in it. On the surface what you've done looks
ok. Also, what are the options on the file?
"Madison Pruet" <mpruet@comcast.net> wrote in message
news:J8-dnT6WnrhpfzXfRVn-uA@comcast.com...
>
> "san" <san@inist.ru> wrote in message news:d88ulv$2tlt$1@news.rinet.ru...
> > 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
> >
> >
>
>
Thanks to all, I found the solution: <http://groups.google.co.uk/group/comp.databases.informix/search?group=comp.databases.informix&q=Cannot+find+base+symbol+library&qt_g=1&searchnow=Search+this+group>