[comp.databases] Ingres Question : Linking in C code

adler@coil.caltech.edu (Bo Adler) (08/11/90)

I have a big program that I inherited, which is written mostly in the
OSL/QUEL language.  Parts of it are written in C, and this is where I'm
having trouble...

When I compile the application in abf, I get 97 undefined symbols.  All
of the undefined symbols appear to come from the Run-Time Library, and
the error always says something like
   %LINE-UNDFSM  Undefined symbol (fill in your favorite symbol here, like
                                   SYS$PARSE, or something)
        in module (C$SOCKHANDLE, C$VAXCIO, etc) file SYS_COMMON:
                                   [SYSLIB]VAXCRTL.OLB;2

Digging around through the manuals, and in the code, I discovered a
"myabf.opt" linker options file.  In it, was the single line
       SYS$LIBRARY:VAXCRTL/LIBRARY

So I set up the ING_ABFOPT1 logical to point to the full file specification
of "myabf.opt", and tried compiling again.

This resulted in a substantial improvement... only LIB$FIND_IMAGE_SYMBOL
was undefined, and it was only referenced in C$SOCKHANDLE of VAXCRTL.OLB.
My next thought was to try including the Run-Time Libraries explicitly,
which eliminated my undefined symbol problem, but caused a huge mess
of %LINK-MULDEF multiple definition of symbol errors.  From the looks
of the output, just about every symbol (with the exception of LIB$FIND_
IMAGE_SYMBOL) had duplicate definitions.

For the curious: I'm running VMS 5.3, VAX C 3.1, and INGRES 5.0 (vax.vms 5.0)

Has anybody else encountered this problem?  Anybody know of a solution?
I haven't been able to decide if this is a linker problem, or an ingres
problem, and I'm stumped on what else I could try.

Thanks in advance for any help!
-B. Thomas Adler
  adler@csvax.caltech.edu
  adler@citiago.bitnet