C/C++ Programmer's Guide (G06.27+, H06.03+)
Table Of Contents
- What’s New in This Manual
- About This Guide
- 1 Introduction to HP C and C++ for NonStop Systems
- TNS C Language System
- TNS C++ Language System
- TNS/R Native C and C++ Language System
- TNS/R Native C Compiler
- TNS/R Native C++ Compiler
- TNS/R Native C Run-Time Library
- C++ Run-Time Library and Standard C++ Library
- TNS/R Native Linkers (nld and ld Utilities)
- Inspect Symbolic Debugger
- Visual Inspect Symbolic Debugger
- TNS/R Native Object File Tool (noft Utility)
- NonStop SQL/MP Compiler and NonStop SQL/MX Compiler
- TNS/R Native C and C++ Migration Tool
- Features of TNS/R Native C and C++
- TNS/E Native C and C++ Language System
- TNS/E Native C Compiler
- TNS/E Native C++ Compiler
- TNS/E Native C Run-Time Library
- C++ Run-Time Library and Standard C++ Library
- TNS/E Native Linker (eld Utility)
- Native Inspect Symbolic Debugger
- Visual Inspect Symbolic Debugger
- TNS/E Native Object File Tool (enoft Utility)
- NonStop SQL/MP Compiler and NonStop SQL/MX Compiler
- TNS/E Native C and C++ Migration Tool
- Features of TNS/E Native C and C++
- Writing Portable Programs
- Porting Programs to HP C and C++ for NonStop Systems
- Porting Without Data Alignment Problems
- Guardian and OSS Environment Interoperability
- 2 C and C++ Extensions
- 3 Interfacing to Guardian Procedures and OSS Functions
- 4 Using the C Run-Time Library
- 5 Using the Standard C++ Library
- 6 Accessing Middleware Using HP C and C++ for NonStop Systems
- 7 Mixed-Language Programming for TNS Programs
- 8 Mixed-Language Programming for TNS/R and TNS/E Native Programs
- 9 System-Level Programming
- 10 Converting C-Series TNS Programs to Use the Current TNS Compiler
- 11 Migrating Programs to TNS/R or TNS/E Native Mode
- 12 Preprocessor Directives and Macros
- 13 Compiler Pragmas
- ALLOW_CPLUSPLUS_COMMENTS
- ALLOW_EXTERN_EXPLICIT_INSTANTIATION
- ANSICOMPLY
- ANSISTREAMS
- BUILD_NEUTRAL_LIBRARY
- CALL_SHARED
- CHECK
- COLUMNS
- CPATHEQ
- CPPONLY
- CSADDR
- ELD(arg)
- ENV
- ERRORFILE
- ERRORS
- EXTENSIONS
- EXTERN_DATA
- FIELDALIGN
- FORCE_VTBL
- FORCE_STATIC_TYPEINFO
- FORCE_STATIC_VTBL
- FUNCTION
- HEADERS
- HEAP
- HIGHPIN
- HIGHREQUESTERS
- ICODE
- IEEE_FLOAT
- INLINE
- INLINE_COMPILER_GENERATED_FUNCTIONS
- INLINE_LIMIT
- INLINE_STRING_LITERALS
- INNERLIST
- INSPECT
- KR
- LARGESYM
- LD(arg)
- LINES
- LINKFILE
- LIST
- LMAP
- MAP
- MAPINCLUDE
- MAXALIGN
- MIGRATION_CHECK
- NEST
- NEUTRAL
- NLD(arg)
- NOEXCEPTIONS
- NON_SHARED
- OLDCALLS
- OLIMIT
- ONCE
- OPTFILE
- OPTIMIZE
- OVERFLOW_TRAPS
- PAGE
- POOL_STRING_LITERALS
- POP
- PUSH
- REFALIGNED
- REMARKS
- RUNNABLE
- RUNNAMED
- RVU
- SAVEABEND
- SEARCH
- SECTION
- SHARED
- SQL
- SQLMEM
- SRL
- SRLExportClassMembers
- SRLExports
- SRLName
- SSV
- STDFILES
- STRICT
- SUPPRESS
- SUPPRESS_VTBL
- SYMBOLS
- SYNTAX
- SYSTYPE
- TANDEM_FLOAT
- TRIGRAPH
- VERSION1
- VERSION2
- VERSION3
- WARN
- WIDE
- XMEM
- XVAR
- 14 Compiling, Binding, and Accelerating TNS C Programs
- 15 Compiling, Binding, and Accelerating TNS C++ Programs
- 16 Compiling and Linking TNS/R Native C and C++ Programs
- 17 Compiling and Linking TNS/E Native C and C++ Programs
- 18 Using ETK and Native C/C++ Cross Compiler on the PC
- 19 Running and Debugging C and C++ Programs
- 20 TNS C Compiler Messages
- 21 Native C and C++ Compiler Messages
- 22 Run-Time Messages
- 23 Handling TNS Data Alignment
- A HP C Implementation-Defined Behavior
- Implementation-Defined Behavior of Native C
- G.3.1 Translation
- G.3.2 Environment
- G.3.3 Identifiers
- G.3.4 Characters
- G.3.5 Integers
- G.3.6 Floating Point
- G.3.7 Arrays and Pointers
- G.3.8 Registers
- G.3.9 Structures, Unions, Enumerations, and Bit Fields
- G.3.10 Qualifiers
- G.3.11 Declarators
- G.3.12 Statements
- G.3.13 Preprocessing Directives
- G.3.14 Library Functions
- G.4 Locale Behavior
- G.5 Common Extensions
- Translation Limits for Native C Compilers
- Implementation-Defined Behavior of TNS C
- G.3.1 Translation
- G.3.2 Environment
- G.3.3 Identifiers
- G.3.4 Characters
- G.3.5 Integers
- G.3.6 Floating Point
- G.3.7 Arrays and Pointers
- G.3.8 Registers
- G.3.9 Structures, Unions, Enumerations and Bit Fields
- G.3.10 Qualifiers
- G.3.11 Declarators
- G.3.12 Statements
- G.3.13 Preprocessing Directives
- G.3.14 Library Functions
- G.4 Locale Behavior
- G.5 Common Extensions
- Implementation-Defined Behavior of Native C
- B TNS C++ ImplementationDefined Behavior
- C ASCII Character Set
- D Data Type Correspondence
- E Features and Keywords of Version2NativeC++
- F MIGRATION_CHECK Messages
- Glossary
- Index

Compiling, Binding, and Accelerating TNS C
Programs
HP C/C++ Programmer’s Guide for NonStop Systems—429301-010
14-8
Binding a C Module
For more details on selecting the correct model-dependent library file, see
Specifying Library Files on page 14-8.
The model-dependent-library-file file name must be fully qualified. The
files are located in $SYSTEM.SYSTEM by default.
SELECT RUNNABLE OBJECT ON
directs Binder to create an executable object file (a program file) when it builds the
object file.
SELECT LIST * OFF
disables generation of load maps and cross-reference listings.
SET HEAP value PAGES
specifies the heap size of the program.
BUILD program-file
directs Binder to build a program file using the files and options specified in the
preceding commands. program-file is the name of the program file that Binder
builds.
Specifying Library Files
To resolve references to external routines, Binder uses different model-dependent
library files that depend on your program’s execution environment, data model, and
memory model. Table 14-2 shows you how to select the correct library files for your
programs.
Table 14-2. Model-Dependent Library Files
Execution Environment
Data
Model
Memory
Model Library Files
Guardian module 16-bit Small CSMALL
Guardian module 16-bit Large CLARGE
Guardian module 32-bit Large CWIDE
Guardian module using fault-tolerant
programming extensions
32-bit Large CWIDE and
CNONSTOP
G-series OSS TNS module 32-bit Large COSS