This manual describes certain aspects of the program development environment for Compaq C on Linux Alpha.
The manual is based on the Compaq Tru64 UNIX
Programmer's Guide,
which describes the complete program development environment for Compaq
C (and other supported languages) on Tru64 UNIX.
For reference, the information
specific to Tru64 UNIX has been retained in this manual and is clearly identified
as such (see
Conventions).
Audience
This manual addresses all programmers who create or maintain Compaq C programs on Linux Alpha.
This manual is also for anyone interested in creating or maintaining
programs on the Tru64 UNIX operating system, in any supported language (with
emphasis on Compaq C).
New and Changed Features
The following major changes and additions have been made to this manual for the Version 6.4 release of Compaq C for Linux Alpha:
Chapter 1
-- The following new data
types have been added:
_Bool,
float _Complex,
double _Complex, and
long double _Complex
(see
Section 1.2.1
and
Section 1.2.2).
A new macro,
_ _STDC_VERSION_ _, has been
added (see
Section 1.3.1).
A note has been added to
Section 1.3.2
about potential name conflicts when using
the new
<math.h>
header file.
Section 1.9,
Inline Assembly Code (ASMs), has been added.
Chapter 2
--
Section 2.10
(pragma optimize
Directive) and
Section 2.13
(pragma unroll
Directive) have been added.
Section 2.1
(pragma assertDirective) has been modified: a new
format
function assertion has been added to
pragma assert
func_attrs.
[Tru64] Several changes have been made in portions of the manual that apply only to Tru64 UNIX systems.
This manual contains 13 chapters and 6 appendixes.
| Chapter 1 | Describes the tools that make up the compiler system and how to use them. Topics covered include compiler commands, preprocessors, compilation options, multilanguage programs, and the archiver. |
| Chapter 2 | Describes the implementation-specific pragmas that the C compiler supports. |
| Chapter 3 | [Tru64] Describes the use, creation, and maintenance of shared libraries and discusses how symbols are resolved. |
| Chapter 4 | [Tru64] Describes how to use
the
dbx
debugger.
It includes information about the
dbx
commands, working with the monitor, setting breakpoints, and
debugging machine code. |
| Chapter 5 | [Tru64] Describes how to use
the
lint
command to produce clean code. |
| Chapter 6 | [Tru64] Describes how to use the Third Degree tool to perform memory access checks and leak detection on an application program. |
| Chapter 7 | [Tru64] Describes how to use various tools and techniques to profile your code, enabling you to find which portions of code are consuming the most execution time. It also describes how to feed profiling data back to the C compiler to provide some automatic optimization of the code. |
| Chapter 8 | [Tru64] Describes how to use prepackaged Atom tools to instrument an application program for various purposes, such as to obtain profiling data or to perform cache-use analysis. It also describes how you can design and create custom Atom tools. |
| Chapter 9 | Describes how to optimize your code using
the optimizer and the
spikepostlink optimizer. |
| Chapter 10 | [Tru64] Describes how to use the features of the C compiler to write a structured exception handler or a termination handler. |
| Chapter 11 | [Tru64] Describes how to develop multithreaded programs. |
| Chapter 12 | [Tru64] Describes some programming considerations associated with using the OpenMP parallel-processing interface. |
| Chapter 13 | [Tru64] Describes how to use the Event Manager utility to post and receive event notifications. |
| Appendix A | [Tru64] Describes how to use 32-bit pointers on a Tru64 UNIX system. |
| Appendix B | [Tru64] Describes how to achieve source code compatibility for C language programs in the System V habitat. |
| Appendix C | [Tru64] Describes how to write dynamically configurable kernel subsystems. |
| Appendix D | [Tru64] Describes the old-style parallel processing pragmas implemented before OpenMP. |
| Appendix E | [Tru64] Describes the routines that handle conversions between the old-style and new-style names of device special files. |
| Appendix F | [Tru64] Describes how to optimize
a program with the
cc
command's
-om
and
-cord
options. |
In addition to this manual, see the following sections for information
pertaining to program development.
For Linux Alpha information, see:
The Linux Alpha web page at
The Linux Documentation Project (LDP) web page at
See the following Tru64 UNIX manuals:
Programming: General
Calling Standard for Alpha Systems
Assembly Language Programmer's Guide
Programming Support Tools
Network Programmer's Guide
Compaq Portable Mathematics Library
Writing Software for the International Market
Kernel Debugging
Ladebug Debugger Manual
Writing Kernel Modules
Alpha Architecture Reference Manual, 2nd Edition
(Butterworth-Hinemann Press, ISBN:1-55558-145-5)
Programming: Realtime
Guide to Realtime Programming
Programming: Streams
Programmer's Guide: STREAMS
Programming: Multithreaded Applications
Guide to the POSIX Threads Library
OpenMP C and C++ Application Programming Interface
specification, available on the Internet from
General User Information
Release Notes
The printed version of the Tru64 UNIX documentation
uses letter icons on the spines of the books to help specific
audiences quickly find the books that meet their needs.
(You can order
the printed documentation from Compaq.)
The following list describes this convention:
[Linux] Related Linux Alpha Information
http://alphalinux.org.
http://www.linuxdoc.org.
[Tru64] Related Tru64 UNIX Documents
http://www.openmp.org/specs/.
Icons on Tru64 UNIX Printed Books
| G | Books for general users |
| S | Books for system and network administrators |
| P | Books for programmers |
| D | Books for device driver writers |
| R | Books for reference page users |
Some books in the documentation help meet the needs of several audiences. For example, the information in some system books is also used by programmers. Keep this in mind when searching for information on specific topics.
The
Documentation Overview
provides
information on all of the books in the Tru64 UNIX documentation set.
Conventions
Marks the beginning of Linux Alpha-specific text, which can consist of anything from a sentence or code fragment to an entire section, chapter or appendix.
In the HTML version of this manual, for display with a Web browser, all Linux Alpha-specific text is color coded dark orchid. Text that is not color coded (black, by default) is common to both Linux Alpha and Tru64 UNIX.
In the PDF version of this manual, for display with Adobe Acrobat, change bars in the margin mark any Linux Alpha-specific or Tru64 UNIX-specific text.
Marks the beginning of Tru64 UNIX-specific text, which can consist of anything from a sentence or code fragment to an entire section, chapter or appendix.
In the HTML version of this manual, for display with a Web browser, all Tru64 UNIX-specific text is color coded royal blue. Text that is not color coded (black, by default) is common to both Linux Alpha and Tru64 UNIX.
In the PDF version of this manual, for display with Adobe Acrobat, change bars in the margin mark any Linux Alpha-specific or Tru64 UNIX-specific text.
%$A percent sign represents the C shell system prompt. A dollar sign represents the system prompt for the Bourne, Korn, and POSIX shells.
#A number sign represents the superuser prompt.
% catBoldface type in interactive examples indicates typed user input.
Italic (slanted) type indicates variable values, placeholders, and function argument names.
In syntax definitions, brackets indicate items that are optional and braces indicate items that are required. Vertical bars separating items inside brackets or braces indicate that you choose one item from among those listed.
coloredtext
In syntax definitions, literal elements are colored green. Variable values, placeholders, and function argument names are colored red. No special colored text is used outside of syntax descriptions.
In syntax definitions, a horizontal ellipsis indicates that the preceding item can be repeated one or more times.
cat(1)A cross-reference to a reference page includes the appropriate section
number in parentheses.
For example,
cat(1)
indicates that you can find information on the
cat
command in Section 1 of the reference pages.
In an example, a key name enclosed in a box indicates that you press that key.
This symbol indicates that you hold down the first named key while pressing the key or mouse button that follows the slash. In examples, this key combination is enclosed in a box (for example, [Ctrl/C] ).