Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (1) — Plan9 1st Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

2c(1)

2a(1)

2l(1)

db(1)

cpp(1)

mk(1)

nm(1)

pcc(1)

rl(1)

C++(1)

NAME

c++/2c, c++/kc, c++/vc, c++/8c, c++/zc, c++/2l, c++/kl, c++/vl, c++/8l, c++/zl − C++ compilers and loaders

SYNOPSIS

­c++/2c [options] ­name ... 

­c++/8c [options] ­name ... 

­c++/kc [options] ­name ... 

­c++/vc [options] ­name ... 

­c++/zc [options] ­name ... 

­c++/2l [options] ­name ... 

­c++/8l [options] ­name ... 

­c++/kl [options] ­name ... 

­c++/vl [options] ­name ... 

­c++/zl [options] ­name ... 

DESCRIPTION

The c++ compilers, c++/?c, compile the named C++ files into object files for the specified architecture (see 2c(1)). They use cpp(1) as the preprocessor, ­cfront 3.0.1 as the C++ to C translator, and the appropriate C compiler such as 2c. The c++ loaders, C++/?l, load object files using appropriate object loaders (see 2l(1)) and patch, the C++ static constructor initializer. 

The compilers and loaders use C++ and APE (ANSI C/POSIX) include files and libraries. 

Let the first letter of the base name of the compiler or loader be O= 2, 8, k, v, or z. 

The compiler options are:

­-d Don’t expand inline functions. 

-o obj Place output in file ­obj (allowed only if there is just one input file).  Default is to take the last element of the input path name, strip any trailing .c, and append .O.

­-v Print the version number of the compiler and the commands as they are executed.  A second ­-v causes the commands that would be executed to be printed without actually executing them. 

­-w Print warning messages. 

­-x file Take cross compiling information from file.  By default, this information is taken from /sys/lib/c++/O.sz. 

­-A Complain about functions used without a new-style ANSI function prototype. 

­-B Turn off the action of the ­-A flag.  This option is on by default. 

-Dname=def

-Dname Define the ­name to the preprocessor, as if by #define.  If no definition is given, the name is defined as 1. 

­-E Print the preprocessed version of the file on standard output. 

­-F Print the preprocessed and ­cfronted version of the file on standard output. 

-Idir ­#include files whose names do not begin with ­/ are always sought first in the directory of the ­file argument, then in directories named in ­-I options, then in /$objtype/include/c++, /sys/include/c++, /$objtype/include/ape, and /sys/include/ape. 

­-O Perform object code optimization.  This option is on by default. 

­-N Turn off the action of the ­-O flag. 

­-S Print an assembly language version of the object code on standard output. 

-Uname Remove any initial definition of name.

The loader options are:

-o out Place output in file out. Default is O.out. 

EXAMPLE

To produce a MIPS executable ­prog from C++ files main.c, sub.c, and using the task library:

c++/vc main.c sub.c
c++/vl -o prog main.v sub.v m.v -ltask

FILES

­/sys/include/c++ directory for machine-independent ­#include directives. 

­/sys/include/ape directory for machine-independent ­#include directives. 

­/$objtype/include/c++ directory for machine-dependent ­#include directives. 

­/$objtype/include/ape directory for machine-dependent ­#include directives. 

­/$objtype/lib/c++ C++ libraries. 

­/$objtype/lib/ape/libap.a
ANSI C/POSIX library.

/sys/lib/c++/O.sz Cross-compilation information for cfront. 

­/$cputype/bin/c++/cfront
C++ to C translator.

­/$cputype/bin/c++/patch
C++ static constructor initializer.

SEE ALSO

2c(1), 2a(1), 2l(1), db(1) cpp(1), mk(1), nm(1), pcc(1) rl(1),

BUGS

The task library works only for the MIPS and the SPARC; it will not work for the other machines any time soon.  The Interrupt class is not yet supported. 

Plan 9  —  January 03, 1993

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026