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,
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
$ cc TCPIP$IOCTL_ROUTINE.C/prefix=except=ioctl
$ link TCPIP$IOCTL_ROUTINE
Compaq C V6.2-006 on OpenVMS Alpha V7.2-1
And please note that an ioctl call exists in the current C libraries.