Open System Services Porting Guide (G06.24+, H06.03+)

Table Of Contents
Migrating Guardian Applications to the OSS
Environment
Open System Services Porting Guide520573-006
8-8
Binding TNS Programs
These preprocessor symbols are set by default when the OSS C compiler is invoked
with the -Wsystype=guardian option. Other symbols can be set by using the
appropriate options in the c89 command line, or the appropriate pragmas in the C or
C++ source code.
Binding TNS Programs
In the Guardian environment, Binder is used to bind the specified object files with any
libraries referenced into an executable program. The Guardian C run-time library
routines are searched for in the $SYSTEM.SYSTEM.CWIDE library file.
The TNS Guardian C run-time library routines that are bound into a Guardian program
by the Binder can be found in /nonnative/usr/lib/libgwc.a. This file is
equivalent to the Guardian file $SYSTEM.SYSTEM.CWIDE. The use of the
-Wsystype=guardian option with the c89 utility automatically sets the default library
to libgwc.a. A shared run-time library (SRL) or dynamic-link library (DLL) cannot be
specified for TNS Guardian programs.
Linking Native Programs
In the OSS and Guardian environments, the native linkers (nld, ld, and eld utilities)
are used to link the specified object files with any libraries referenced into an
executable program. The C run-time library routines are searched for in the shared
run-time libraries (TNS/R native programs) or dynamic-link libraries (TNS/E native
programs) specified in the /usr/lib/libc.obey file or
$SYSTEM.SYSTEM.LIBCOBEY file. The shared run-time libraries and dynamic-link
libraries are common for both OSS and Guardian programs.
Equivalent OSS Commands for Compiling Guardian Programs
All of the compiler options available to a programmer in the Guardian environment are
available to the programmer in the OSS environment using the c89 utility. Table 8-2
lists some of the more common capabilities of the C compiler in the Guardian TNS
environment and how these same capabilities can be achieved in the OSS
environment using the native C compilers to produce Guardian object files or
executable programs.