Open System Services Porting Guide (G06.29+, H06.06+, J06.03+)
1 Introduction to Porting
This chapter provides an introduction to porting applications to the HP NonStop Open System
Services (OSS) environment; it contains these topics:
• “Overview of Porting” (page 23)
• “Overview of the OSS Environment” (page 28)
Overview of Porting
The porting process is simple:
1. Clean up code; remove architectural dependencies and nonstandard practices.
2. Compile code.
3. Fix problems found at compile time.
4. Fix segment faults and unaligned accesses. (Unaligned accesses are almost always an
indication that logic in the code is incorrect.)
5. Recompile the code and repeat the process, if necessary.
Use the information given in the following subsections when you consider porting an application
to the OSS environment:
• “Porting Requires Good Coding Practices” (page 23)
• “You Should Use Portable Application Templates” (page 23)
• “Porting Is Easier When Standards Are Used” (page 24)
NOTE: See the 64-Bit Support in OSS and Guardian chapter in the Open System Services
Programmer's Guide for the advantages of creating 64-bit applications and converting 32-bit OSS
and Guardian applications to 64-bit OSS applications. Beginning with the H06.24 and J06.13
RVUs, 64-bit OSS processes are supported and access to 64-bit addressable memory is provided,
which greatly increases the available virtual memory for 32-bit processes.
Porting Requires Good Coding Practices
Much of the material in this guide is not specific to any one vendor, nor is it specific to Open
System Services. It is simply good, standard coding practice. Commercial texts that cover similar
ground are available. These texts include:
• The C Programming Language, Second Edition, by Brian W. Kernighan and Dennis M. Ritchie;
Prentice-Hall Software Series, Prentice-Hall, Inc.
• Portable C and UNIX System Programming, by J.E.Lapin; Prentice-Hall Software Series,
Prentice-Hall, Inc.
• C Traps and Pit Falls, by Andrew Koenig; Addison-Wesley Publishing Company
For more guidelines on following good programming practices, refer to the C/C++ Programmer’s
Guide. Additional commercial texts that describe how to write portable applications in C are listed
under “Related Information” (page 18).
You Should Use Portable Application Templates
In general, the more you follow good programming practices, the easier it will be to port your
program to other hardware and software environments. An important programming practice is to
write your C or C++ programs using a template with items included in the source file in the following
order:
• Feature test switches: define the _POSIX_SOURCE macro.
• System headers: those that must be included to define symbols used by a function.
Overview of Porting 23