Open System Services Porting Guide (G06.24+, H06.03+)
Table Of Contents
- What’s New in This Manual
- About This Manual
- 1 Introduction to Porting
- 2 The Development Environment
- 3 Useful Porting Tools
- 4 Interoperating Between User Environments
- Purpose of Interoperability
- The OSS User Environment
- OSS Commands for the Guardian User
- Guardian Commands for the UNIX User
- OSS Pathname and Guardian Filename Conversions
- Running the OSS Shell and Commands From TACL
- Running Guardian Commands From the OSS Shell
- Running OSS Processes With Guardian Attributes
- Using OSS Commands to Manage Guardian Objects
- 5 Interoperating Between Programming Environments
- 6 OSS Porting Considerations
- 7 Porting UNIX Applications to the OSS Environment
- 8 Migrating Guardian Applications to the OSS Environment
- General Migration Guidelines
- C Compiler Issues for Guardian Programs
- Using New and Extended Guardian Procedures
- Using OSS Functions in a Guardian Program
- Interoperating With OSS Programs
- Starting an OSS Program From the Guardian Environment
- C Compiler Considerations for OSS Programs
- Porting a Guardian Program to the OSS Environment
- How Arguments Are Passed to the C or C++ Program
- Differences in the Two Run-Time Environments
- Which Run-Time Routines Are Available
- Use of Common Run-Time Environment (CRE) Functions
- Replacing Guardian Procedure Calls With Equivalent OSS Functions
- Which IPC Mechanisms Can Be Used
- Interactions Between Guardian and OSS Functions
- 9 Porting From Specific UNIX Systems
- 10 Native Migration Overview
- 11 Porting or Migrating Sockets Applications
- 12 Porting Threaded Applications
- A Equivalent OSS and UNIX Commands for Guardian Users
- B Equivalent Guardian Commands for OSS and UNIX Users
- C Equivalent Inspect Debugging Commands for dbx Commands
- D Equivalent Native Inspect Debugging Commands for dbx Commands
- E Standard POSIX Threads Functions: Differences Between the Previous and Current Standards
- Glossary
- Index
Porting From Specific UNIX Systems
Open System Services Porting Guide—520573-006
9-7
C Compilation on a Workstation
C Compilation on a Workstation
Many C compilers are available from workstation vendors, from public domain software
suppliers, and from third-party software vendors. The C compilers and utilities
discussed in the following paragraphs are used only as examples. Some of these may
not exist on the platforms available to you.
The C compilers discussed in the following subsections are commonly available on
UNIX workstations:
•
Sun C Compiler on page 9-7
•
GNU C Compiler on page 9-8
Sun C Compiler
The Sun C compiler (an optional product on many Sun workstations) is fully ISO/ANSI
C compliant and runs on SunOS as well as Solaris. It supports the following:
•
These ISO/ANSI C predefined macro names:
__STDC__
__TIME__
__DATE__
__LINE__
These macros are also available with the HP C compiler. Program behavior
dependent on these macros should be portable.
•
These preprocessor-defined macros:
sparc
sun
sun4
unix
These macros are not available with the HP C compiler. The equivalent behavior
can be created by using #ifdef in your header files.
•
Both ISO/ANSI C and Common C (also called Kernighan and Ritchie C) code,
using the following flags:
-Xa Used for ISO/ANSI C plus Common C compatibility extensions, with
semantic changes required by ISO/ANSI C to ensure that the code strictly
complies with ISO/ANSI C conventions.
-Xc Used for maximum conformance to ISO/ANSI C, with Common C
compatibility extensions.
-Xt Used for ISO/ANSI C plus Common C compatibility extensions, without
semantic changes required by ISO/ANSI C.