Open System Services Porting Guide (G06.29+, H06.06+, J06.03+)

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 or c99 utility. Table 11 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.
Table 11 Common Guardian Compiler Tasks and How Similar Tasks Are Achieved in the OSS
Environment
OSS c99 Flags to UseOSS Native c89 Flags to UseEquivalent OSS ActionGuardian TNS Environment
Action
Not applicableNot applicableOptimize a program
file
Run Accelerator (G-series)
or Object Code
Accelerator (J-series or
H-series) program
-c-cCompile, but do not
link, specified source
files
Run C compiler without
specifying a RUNNABLE
pragma
(none)(none)Display minimal
information by default
Display detailed
information from the C
compiler, Binder, and
Accelerator (G-series) or
Object Code Accelerator
(J-series or H-series)
-Ooptimization-level-Woptimize=NSpecify an optimization
level
Specify arguments on
Accelerator (G-series) or
Object Code Accelerator
(J-series or H-series)
command line
-Weld=args (TNS/E object
file)
-Wnld=args (TNS/R non-PIC
object file)-Wld=args (TNS/R
Pass an argument string
to the linker
Specify arguments in a
Binder command file
PIC object file)-Weld=args
(TNS/E object file)
-Wansistreams-WansistreamsPass an argument string
to the C compiler
Specify a pragma on the C
compiler command line
142 Migrating Guardian Applications to the OSS Environment