Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > C

cc_bundled(1)

Bundled C Compiler - Limited Functionality
HP-UX 11i Version 3: February 2007
» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

NAME

cc_bundled: cc — bundled C compiler

SYNOPSIS

cc [options] files

DESCRIPTION

cc invokes the HP-UX bundled C compiler. C source code is compiled directly to object code.

The command uses the ecom (Itanium(R)-based systems) or ccom (PA-RISC, Precision Architecture) compiler for preprocessing, syntax and type checking, as well as for code generation.

cc accepts several types of arguments as files:

.c Suffix

Arguments whose names end with .c are understood to be C source files. Each .c file is compiled and the resulting object file is left in a file having the corresponding base name, but suffixed with .o instead of .c. However, if a single C source file is compiled and linked all in one step, the .o file is deleted.

.s Suffix

Arguments whose names end with .s are understood to be assembly source files and are assembled, producing a .o file for each .s file.

.i Suffix

Arguments whose names end with .i are taken to be preprocessed source files. (See the -P option below.) Each object file is left in a file having the corresponding name, but suffixed with .o instead of the .i suffix.

-lx Form

Arguments of the form -lx cause the linker to search the library libx.so (Itanium-based systems) or libx.sl (PA-RISC) or libx.a in an attempt to resolve currently unresolved external references. Because a library is searched when its name is encountered, placement of a -l is significant. If a file contains an unresolved external reference, the library containing the definition must be placed after the file on the command line. See ld(1) for further details.

-l:libx.suffix Form

Arguments of the form -l:libx.suffix cause the linker to search the library libx.so (Itanium-based systems) or libx.sl (PA-RISC) or libx.a (depending on suffix) in an attempt to resolve currently unresolved external references. It is similar to the -l option except the current state of the -Wl,-a option is not important.

Other Suffixes

All other arguments, such as those names ending with .o, .a, or .so are taken to be relocatable object files and are passed to ld (see ld(1)) to be included in the link operation.

Arguments and options can be passed to the compiler through the CCOPTS environment variable as well as on the command line. The compiler reads the value of CCOPTS and divides these options into two sets; those options which appear before a vertical bar (|) delimited by whitespace, and those options which appear after the vertical bar. The first set of options is placed before any of the command-line parameters to cc; the second set of options is placed after the command-line parameters to cc. If the vertical bar is not present, all options are placed before the command-line parameters. For example (in sh(1) notation),

CCOPTS= -v | -lm export CCOPTS cc -p prog.c

is equivalent to

cc -v -p prog.c -lm

When set, the TMPDIR environment variable specifies a directory to be used by the compiler for temporary files, overriding the default directory /var/tmp.

Options

NOTE: for more information about any option, see the HP C Online Help. To invoke the online help, use your HTML browser to use the URL file:/opt/ansic/html/$LANG/guide/index.htm (Itanium-based systems) or file:/opt/ansic/html/guide/$LANG/index.htm (PA-RISC).

The following options are recognized by cc:

-b

Cause the linker, ld, to create a shared library rather than a normal executable file. For details see ld(1), HP-UX Linker and Libraries Online User's Guide and the Programming on HP-UX manual.

-c

Suppress the link edit phase of the compilation, and force an object (.o) file to be produced for each .c or .i file even if only one program is compiled. Object files produced from C programs must be linked before being executed.

-Dname=def

-Dname

Define name to the preprocessor pass (of ctcom), as if by '#define'.

-E

Preprocess named C files and send the result to standard output.

-.suffix

Instead of using standard output for the -E option, place the output from each .c file into a file with the corresponding .suffix.

-Idir

Change the algorithm used by the preprocessor pass for finding include files to also search in directory dir. See the HP C Online Help.

-I-

The directory of the including file is no longer used as the starting point to look up files enclosed with double quotes ( They start at the first -I. Files enclosed with <> are looked up with the paths following -I-.

-lx

Refer to the -lx and -l:libx.suffix explanations (fourth and fifth items) in the DESCRIPTION section.

-L dir

Change the algorithm used by the linker to search for libx.so (Itanium-based systems) or libx.sl (PA-RISC) or libx.a. The -L option causes ld to search in dir before searching in the default locations. This option is effective only if it precedes the -l option on the command line. See ld(1) for details.

-ooutfile

Specify outfile as the name for the linker output file. The default name is a.out. Specifies the name of the shared library when used with -b. Specifies the name of the object file when used with -c.

-P

Preprocess named C files and leave the result in corresponding files suffixed with .i.

-s

Cause the output of the linker to be stripped of symbol table information. See strip(1) for more details. The use of this option prevents the use of a symbolic debugger on the resulting program. Also see ld(1) for additional details.

If -s is specified with any other option, the -s option is ignored, regardless of the order in which the options were specified.

-S

Compile the named C files, and leave the assembly language output in corresponding files suffixed with .s.

-tx,name

Substitute or insert subprocess x with name where x is one or more of a set of identifiers indicating the subprocess(es). This option works in two modes: 1) if x is a single identifier, name represents the full path name of the new subprocess; 2) if x is a set of identifiers, name represents a prefix to which the standard suffixes are concatenated to construct the full path names of the new subprocesses.

The x can take one or more of the values:

a

Assembler; standard suffix is as

c

Compiler body; standard suffix is:

ecom (Itanium-based systems), or

ccom (PA-RISC)

l

Linker; standard suffix is ld

p

C preprocessor; standard suffix is cpp

x

All subprocesses.

-Uname

Undefines any name that has been defined prior to the preprocessing stage of compilation.

-v

Enable verbose mode, which produces a step-by-step description of the compilation process on standard error.

-V

Display the version numbers of the current compiler and linker (if the linker is executed).

-w

Suppress warning messages.

-Wx,arg1[,arg2...]

Pass the comma-separated argument(s) to subprocess x, where x can assume one of the values listed under the -t option as well as d (driver program) but not x (all subprocesses). The -W option specification allows additional, implementation-specific options to be recognized by the compiler driver.

Itanium-based Systems Only Options

-z

Do not bind anything to address zero. This ld(1) option allows run-time detection of null pointers. See the note on pointers below. (Itanium-based system only)

+dryrun

Generate subprocess information for a given command line without running the subprocesses. (Itanium-based systems only)

+m[d]

This option outputs the double quoted ("") enclosed include file dependency information in the format for make(1). With +m the output goes to stdout. With +md the output goes to a file with the suffix .d. The directory and prefix of this file is the same as the object file, which can be affected by the -o option.

NOTE: Specify -E to suppress generation of the object file. In this case, no preprocessor output is generated. (Itanium-based systems only).

+M[d]

Same as +m except both <> and enclosed include files are output as dependencies. (Itanium-based systems only).

+p

Disallow all anachronistic constructs. Ordinarily the compiler gives warnings about anachronistic constructs; using the +p option, the compiler will not compile code containing anachronistic constructs. (Itanium-based systems only).

+time

Generate separate timing information for compilation subprocesses. For each subprocess, estimated time is generated in seconds for user processes, system calls, and total processing time. (Itanium-based systems only).

+uc

Treats "plain" char data type as unsigned char. (Overloading and mangling are unchanged.) This option is to help in porting applications from environments where unqualified (plain) char type is treated as unsigned char instead of the default treatment as signed char. Since all unqualified char types in the compilation unit will be affected by this option (including those headers that define external and system interfaces) it is necessary to compile the interfaces used in a single program uniformly.

+w

Warn about all questionable constructs. Without the +w option, the compiler issues warnings only about constructs that are almost certainly problems (Itanium-based systems only).

+Warg1[,arg2,...,argn]

Selectively suppresses any specified warning messages, where arg1 through argn are valid compiler warning message numbers. (Itanium-based systems only).

+Wearg1[,arg2,...,argn]

Selectively interpret any specified warning or future error messages as errors. arg1 through argn are valid compiler message numbers. (Itanium-based systems only).

System Dependent Options

The compiler supports the following additional operating system dependent options.

+DDdata_model

Generate code using either the ILP32 or LP64 data model. Defined values for data_model are:

32

Use the ILP32 data model. The sizes of the int, long and pointer data types are 32-bits.

64

Use the LP64 data model. The size of the int data type is 32-bits, and the sizes of the long and pointer data types are 64-bits. Defines __LP64__ to the preprocessor.

+DSmodel

Use the instruction scheduler tuned to the model specified. If this option is not used, the compiler uses the instruction scheduler for the architecture on which the program is compiled.

Options (other)

Any other options that are not defined will generate a warning to standard error.

Other arguments are taken to be HP C compatible object files, typically produced by an earlier cc run, or perhaps libraries of HP cc compatible routines. These files, together with the results of any compilations specified, are linked (in the order given) to produce an executable program with the name a.out.

Pointers

Accessing the object of a NULL (zero) pointer is technically illegal, but many systems have permitted it in the past. The following is provided to maximize portability of code. If the hardware is able to return zero for reads of location zero (when accessing at least 8- and 16-bit quantities), it must do so unless the -z flag is present. The -z flag requests that SIGSEGV be generated if an access to location zero is attempted. Writes of location zero may be detected as errors even if reads are not. If the hardware cannot assure that location zero acts as if it was initialized to zero or is locked at zero, the hardware should act as if the -z flag is always set.

EXTERNAL INFLUENCES

Environment Variables

LANG determines the language in which messages are displayed.

If LC_CTYPE is not specified in the environment or is set to the empty string, the value of LANG is used as a default for each unspecified or empty variable. If LANG is not specified or is set to the empty string, a default of C (see lang(5)) is used instead of LANG. If any internationalization variable contains an invalid setting, C behaves as if all internationalization variables are set to C. See environ(5).

aCC_MAXERR allows you to set the maximum number of errors you want the compiler to report before it terminates compilation. (Itanium-based systems only).

SDKROOT is used as a prefix for all references to tool set components and must be set when you use a non-native development kit or a toolset installed at an alternative location. Some of the toolset components are compiler drivers, Compiler Applications, Preprocessor, Linker, and object file tools.

TARGETROOT is used as a prefix for all references to target set components and must also be set when using a non-native development kit. Some of the target set components are header files, archive libraries, and shared libraries.

International Code Set Support

Single byte and multibyte character code sets are supported.

DIAGNOSTICS

The diagnostics produced by the compiler itself are intended to be self-explanatory. Occasional messages may be produced by the assembler or the link editor.

If any errors occur before cc is completed, a non-zero value is returned. Otherwise, zero is returned.

DEPENDENCIES

If -s is specified along with any of the above options, the -s option is ignored, regardless of the order in which the options were specified.

Refer to the System Dependent Options subsection above for information about operating system dependent options, +DDdata_model for 32-bit or 64-bit data models and +DSmodel for the instruction scheduler.

FILES

file.c

C input file

file.i

previously preprocessed cc input file

file.o

object file

file.so

shared library, created with -b on Itanium-based systems

file.sl

shared library, created with -b on PA-RISC

a.out

linked executable output file

/var/tmp/*

temporary files used by the compiler (Itanium-based systems)

/var/tmp/ctm*

temporary files used by the compiler (PA-RISC systems)

/usr/ccs/bin/cc

C driver

/usr/ccs/bin/cc_bundled

C driver

/usr/ccs/lbin/ecom

C Compiler (Itanium-based systems)

/usr/ccs/lbin/ccom

C Compiler (PA-RISC systems)

/usr/ccs/lbin/cpp

preprocessor, to assemble .s files

/usr/lib/nls/msg/$LANG/ecc.cat

C compiler message catalog (Itanium-based systems)

/usr/lib/nls/msg/$LANG/cc.cat

C compiler message catalog (PA-RISC systems)

/usr/ccs/bin/as

assembler, as(1)

/usr/ccs/bin/ld

link editor, ld(1)

/usr/ccs/lib/crt0.o

Runtime startup (PA-RISC systems)

/usr/include

Standard directory for #include files

Other Libraries

/usr/lib/hpux32/libc.so

standard C library, see HP-UX Reference Section (3). (Itanium-based systems)

/usr/lib/hpux64/libc.so

standard C library, see HP-UX Reference Section (3). (Itanium-based systems)

/usr/lib/libc.a

Standard C library (archive version), see HP-UX Reference Section (3). (PA-RISC)

/usr/lib/libc.sl

Standard C library (shared version), see HP-UX Reference Section (3). (PA-RISC)

/usr/lib/hpux32/libm.a

Math Library (Itanium-based system)

/usr/lib/hpux64/libm.a

Math Library (Itanium-based systems)

/usr/lib/libm.a

Math Library (PA-RISC systems)

/usr/lib/hpux32/libdl.so

Dynamic loader library (Itanium-based systems)

/usr/lib/hpux64/libdld.so

Dynamic loader library (Itanium-based systems)

/usr/lib/libdld.sl

Dynamic loader library (PA-RISC systems)

/usr/lib/hpux32/dld.so

Dynamic loader (Itanium-based systems)

/usr/lib/hpux64/dld.so

Dynamic loader (Itanium-based systems)

/usr/lib/dld.so

Dynamic loader (PA-RISC systems)

SEE ALSO

Online help

The online help can be displayed using a default HTML browser, or you can invoke your own HTML browser with the URL file:/opt/ansic/html/$LANG/guide/index.htm (Itanium-based systems) or file:/opt/ansic/html/guide/$LANG/index.htm (PA-RISC systems)

Other topics available are: Compiler Pragmas, Floating Installation and Implementation Defined aspects of the compiler.

Information is also available on the web at: http://www.hp.com/go/c

Profiling and Debugging Tools

gprof(1)

display call graph profile data

monitor(3C)

prepare execution profile

wdb(1)

C, C++ and Fortran symbolic debugger

gdb(1)

C, C++ and Fortran symbolic debugger

adb(1)

absolute debugger

System Tools

as(1)

translate assembly code to machine code

cpp(1)

invoke the C language preprocessor

cc(1)

C compiler

ld(1)

invoke the link editor

Miscellaneous

strip(1)

strip symbol and line number information from an object file

crt0(3)

execution startup routine

end(3C)

symbol of the last locations in program

exit(2)

termination of a process

Tutorials and Standards Documents

American National Standard for Information Systems - Programming language C, ANS X3.159-1989.

See the HP C Online help.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.