HP OpenVMS Systems

ask the wizard
Content starts here

C Compilation? VAX C? (TCPIP$EXAMPLES)

» close window

The Question is:

I am trying to compile a program using TCPIP 5.0a and VAX C.  (Compaq C will
 not compile the program, even in VAX C compatibility mode.)    I am getting
 undefined symbol errors on all of the TCPIP socket routines (connect,
 gethostbyname, socket,etc).
The TCPIP examples in TCPIP$EXAMPLES reference a library call
 SYS$LIBRARY:TCPIP$IPC.OLB.  This library does not exist on my system.  (The
 older  UCX 4.2 does have a UCX$IPC.OLB, but TCPIP 5.0a does not.)
Here is the options file I am using for linking.:
tcpip$library:tcpip$lib.olb/lib  (included just because I could not find
I have searched through manuals, newsgroups, FAQs, etc. to no avail.  It seems
 to me that support of VAX C was dropped with TCPIP 5.0a.  Is this true?

The Answer is :

  Support for the VAX C compiler ended many years ago; the most recent
  version of the VAX C compiler (V3.2) was released back in early 1991.
  The VAX C compiler was not included in any Y2K investigations, nor has
  it been tested on any recent OpenVMS VAX releases -- the last OpenVMS
  VAX release where the VAX C compiler was typically expected to be in
  common use was circa OpenVMS VAX V5.5-2.
  The references to the object libraries in the comments of those
  TCP/IP programming examples clearly refers to their use in conjunction
  with VAX C, and the text further appears to be an erroneous (direct)
  translation of the older VAX C and UCX programming environments.
  (The OpenVMS Wizard has passed this problem report along to the
  TCP/IP Engineering team.)
  The OpenVMS Wizard encourages the use of the provided shareable
  images, and the use of the Compaq C build directions in the comments.
  The unspecified undefined symbol errors -- please remember to provide
  the full and unedited text of the error message(s) reported -- will
  typically result from a failure to include the necessary header files
  for the routine(s) in use during the source compilation, or (when a
  similar set of errors arises during the LINK operation), from a failure
  to use the appropriate /PREFIX setting on the source compilation.
  Information on the use of /PREFIX is included in the OpenVMS FAQ.
  An example of a build of one of the TCP/IP Services modules -- as the
  following module expressly and deliberately contains an ioctl routine,
  the function is explicitly excluded from the symbol prefixing that is
  normally performed:
    $ cc TCPIP$IOCTL_ROUTINE.C/prefix=except=ioctl
    $ cc/vers
    Compaq C V6.2-006 on OpenVMS Alpha V7.2-1
  And please note that an ioctl call exists in the current C libraries.

answer written or last revised on ( 2-AUG-2000 )

» close window