Re: Unresolved symbols in Informix 64 bit
Posted in 2004
Vijay Kumar Rudrappa wrote: > We are doing a migration of Informix 4gl application from 32 bit to > 64 bit version. During compilation time we did not find any warnings or > errors for the below mentioned symbols. But during run-time we find the > below messages displayed. When we compile the SAME source with 32 bit > informix compiler neither of them gets displayed. All these variables are > declared as "extern" in the application. Are we missing something. If so > please let us know ASAP. Thanks in advance. You know all those warnings about not using undocumented internals? This is why you don't do it - things break. OK; I'm partly guilty - I've provided information on occasion that is undocumented. > /usr/lib/pa20_64/dld.sl: Unsatisfied data symbol 'GB' in load module > '/scl3/appl/sis/ipi/lib/libscs.sl' > /usr/lib/pa20_64/dld.sl: Unsatisfied data symbol 'eflastkey' in load module > '/scl3/appl/sis/ipi/lib/libscs.sl' This one should be replaced by an call to fgl_lastkey() or thereabouts; I'm working from rusty memory here. Or the function that contains it may need to be replaced by fgl_getkey() or thereabouts. > /usr/lib/pa20_64/dld.sl: Unsatisfied data symbol 'topwin' in load module > '/scl3/appl/sis/ipi/lib/libscs.sl' > /usr/lib/pa20_64/dld.sl: Unsatisfied data symbol '_Wscreen' in load module > '/scl3/appl/sis/ipi/lib/libscs.sl' > /usr/lib/pa20_64/dld.sl: Unsatisfied data symbol 'curscr' in load module > '/scl3/appl/sis/ipi/lib/libscs.sl' These other symbols are hooks into the I4GL curses library - unless _Wscreen is a window called screen in the I4GL code. For these, you are going to have to do some research. Best would be to eliminate the code that uses them. Failing that, use 'nm -gR $INFORMIXDIR/lib/tools/*.a' or its moral equivalent on HP-UX and see if you can identify the new names for those old symbols. You're still in uncharted waters, but it was only yesterday that I had to do much the same for an I4GL program that finally needed to be recompiled after about 5 years. I amused my colleague by documenting the hacking as I did it. I had to deal with pushptr --> ibm_lib4gl_pushPointer; the mapping is simple enough, but not obvious and even 'grep -i' on the missing symbols is unlikely to return you the answer. Eyeballing is necessary. -- Jonathan Leffler #include <disclaimer.h> Email: jleffler@earthlink.net, jleffler@us.ibm.com Guardian of DBD::Informix v2003.04 -- http://dbi.perl.org/