Problem porting to Sun
Posted in 1997
Topics: Installation, Setup & Upgrades, SQL Development & Query Writing, Connectivity: ESQL/C, 4GL & Embedded SQL, Migration, Import/Export & Data Conversion, Internationalization & Character Sets
Hi, We are in the process of porting our software to a Sun Ultra 1 (OS 5.5.1), and have run into a few problems with compiling the esql/C++ code. The migration is from HPUX (INFORMIX-ESQL Version 7.10.UD1) to Sun Ultra 1 (INFORMIX-ESQL Version 7.23.UC1), so we're not sure if it's "features" of the Sun port or the informix upgrade, or some of both. First problem - compiling library files. Done in one step, we get the following: /bto/sys/informix/bin/esql -c -g -D_SUN_SOURCE -DMOTIF -DXT_CODE -I/local_dev/tn_src/include/ -I/local_dev/tn_src/include/ -I/bto/sys/nav/usr/include/ -I/bto/sys/bscasvcs/include/ -I/usr/local/include/RW_tools -I/bto/sys/tn3270/Hllapi -I/usr/include/X11R5 -I/usr/include/Motif1.2 -I/usr/uimx2.9/include -I/bto/sys/vt100/include -I/bto/sys/informix/incl/esql -I/bto/sys/informix/incl/esql QueryList.ec -o QueryList.o CC: Invalid input file name /bto/sys/informix/lib/esql/checkapi.o, no output generated for this file. Loading libBSqryList.a ... --- We have verified that checkapi.o is there and has read permissions for everybody. We did manage to circument this problem by breaking it out into two steps - esql -e then CC. Is there an easier way to do this? Second problem - linking the execs. We would like to link to the shared libraries, but the compiler insists on linking to the static libraries. So we get complaints about undefined symbols in libos.a & libgls.a: ild: (undefined symbol) gcvchdir -- referenced in the text segment of /bto/sys/informix/lib/esql/libos.a(osdnet.o) ild: (undefined symbol) gl_ext_malloc -- referenced in the text segment of /bto/sys/informix/lib/esql/libgls.a(glsextfn.o) (and many more follow this) OK, so I just fixed this by adding in the link options from "esql -libs". However, I got the impression from the esql/C programmers manual that esql automatically links these libraries in. We are hesitant to specify them in the makefiles because we still have to support the HP compiles, and the libraries have different names. Can someone tell me what the difference is with the lib? and libix?, and what me might be doing wrong to get the static libraries instead of the shared libraries? Thanks, Teresa