Re: cfglgo compile problem, help requested
Posted in 1994
RalphB8649 (ralphb8649@aol.com) wrote: : cfgl(won't)go : I am encountering compile problems while trying to create a custom : runner for a 4GL RDS application, and I am hoping that one fo the many : experts in this group can point me in the right direction. : Here is the situation. My client's machine (the target for the : application) is a vanilla SCO runtime box. They do not have a : development system and can't afford to buy one at this time. So, I : have temporarilly loaded their SCO Informix RDS software on another : system which has an ISC (Interactive) 3.3.2 development system, for : the purpose of compiling the 4GL sources and C functions of the : application. : All of the fglpc steps run OK. When I run cfglgo on 4gl's with the : C routines to create the custom runner, however, it fails in the ld steps, : giving me an unreferenced symbol error for "ftime", "first encountered in : [/usr/informix/lib/]libncolor.a". : As the application itself does not call an ftime function, and I can : locate nothing in the ISC C compiler docs regarding ftime, my current : assumption is that ftime is specific to the SCO implementation and : included in the Informix library for that reason. : Any suggestions for how I might get around this problem from someone : who is familiar with the differences between the SCO and ISC : implementations and Informix libraries? : ADthanksVANCE !! : Ralph Barker ralphB8649@AOL.com Well, I don't really call myself an expert on ISC or SCO but maybe I can help. Informix uses ftime() in some of their internal libraries. It isn't a standard C function and so may not be found in libc.a, but there may be compatibility libraries on ISC which have it. I'd try a command something like nm /usr/lib/*.a | egrep ftime to see if anything shows up. (On an AIX 3.1.5 system I once had to add -lbsd to the compiler command line in cfglgo, because of ftime.) Another possibility: You don't really need a C compiler to link the custom runner if you have objects to begin with and the linker and libraries are present on the SCO system (is that what they call their "link kit"?). If you can compile your c functions and fgiusr.c somewhere else, you may be able to link it on SCO with something like: ld /lib/crt0.o fgiusr.o myfunc.o ${FGLGO_LIBS} -o fglgo -lc provided that ld, crt0.o and libc.a exist. The actual names and locations of these files vary from system to system, so I can't give you an exact list. ${FGLGO_LIBS} should be the same set of libraries specified in the $INFORMIXDIR/bin/cfglgo script. Also, I suspect that SCO needs -lcurses because of terminfo support. All this because some UNIX vendors decided to unbundle development systems and make a few extra bucks on it. Geez. Regards, Jeff Sturm