Duct Tape++ X-Rated KCC Options
Man Page  

 

KAI C++ is implemented as a shell script (the actual KCC command) and a configuration file (usually called KCC.config*) which adapt the actions of several components to suit the local conditions on the host platform.  Most of the components are executable programs found in the KCC_BASE/bin/ directory of a KAI C++ installation.  These are activated as needed to carry out various phases of the compilation process.  Each phase runs one or more components denoted by an abstract component name.

KCC Components
component Typical Filename Purpose
drv driver Controls KCC process
fe ??? C or C++ front end
fe_cc2c kfront C++ to C front end
fe_c cc Native C compiler
fe_opp kdebug object postprocessor
pl edg_prelink template instantiation
pl_nm nm inspect object files
ln_prefix purify executes the ln_exe command line
ln_exe cc link executables
ln_dy ld link shared libraries
ln_exe2 kpatch postprocess linked objects
ln_extra patch obsolete postprocessor for SGI shared libraries.
ln_ksplit ksplit KCC 3.2 template splitting
ln_ar ar make archive libraries
decode edg_decode name-demangling editor
cc cc abbrev: fe_c + ln_exe
ln cc abbrev: ln_exe + ln_dy
Since the general outline of the compilation process does not vary much across Unix platforms, the top level algorithm is implemented by a universal driver.  Variations are achieved under the direction of driver options listed in the configuration file, actively computed by the KCC script, or (beware!) supplied on the KCC command line.  The actions of the subcomponents are varied by careful construction of their command lines, using the driver's meta-language for arranging command line contents.  In general, the order of options in the KCC or driver command line is preserved as those options pass through to the active subcomponents. 
Use of the following options is not supported by Kuck & Associates, Inc.

Unsupported KCC Option Rating Summary
--relocate_dir directory X Establish directory as the value of the variable __RELOCATE__ which is substituted in certain other option arguments (wherever noted below by the subscript notation argumentrel).
--option_file file X Read in shell-style tokens from filerel as additional options to the driver.  A token beginning with '#' introduces a comment for the remainder of that line.  No shell "globbing" and almost no escape sequence processing is done on option_file tokens. Quotes may be used to prevent a token from being broken by whitespace, or from introducing commentary.  Within quotes, the delimiting quote character is written as \' or \", and a string ending with \ can be written as ...\\'.  Note that the KCC script does not examine or edit options passed via --option_file.
--COMPP_component  program X Establish programrel as the executable file for component.
--COMPDO_component  sequence X Adds sequence to the beginning of the command line for component, breaking it into individual argument words at contiguous whitespace.
--COMPO_component  option X Adds option as a single word to the end of the command line for component.
--driver_name  name R Specify the string used in error reports to identify the reporting entity. Defaults to the last level of filename of the driver (drv) component. 
--dryrun X Disable execution of all components, but produce -v style verbose output. 
--[no_]echo R [Reset or] Set the echo option in the shell that is interpreting the KCC script.
--[no_]verbose R [Reset or] Set the verbose option in the shell that is interpreting the KCC script.
--ddebug n R Set the debug output level of the driver to n.
--[no_]decode PG [Disable or] Enable the editing of stderr and stdout streams from various components to replace external linker symbols by their C++ pseudonyms. --no_decode also causes the -m option to be passed to the pl component.
--CCIMstyle X
Select the algorithm used to cycle through multiple source files passed on the command line:
Style p
enable the --parallel_build n option and fork off up to n CIM processes.
Style 1
is a serial loop.
--[no_]process_object X [Skip or] Run the fe_opp object postprocessing phase on each .o file produced by a fe_c compilation.
--CIMstyle X
Select an algorithm to compile -c:
Style 1
runs an fe and, if --process_object is set, postprocesses the .o with fe_opp.
Style 2c
provides KCC's two part compilation step using fe_cc2c followed by fe_c, and fe_opp if requested.
--[no_]prelink R [Skip or] Run the PIM prelinking phase.
--PIMstyle X
Select the algorithm that prelinks C++:
Style 1 
EDG 2.35 interface.
Style 2 
EDG 2.38 + KAI interface. 
Style munch
runs --PIM2 with a -M option to request production of C source code to initialize the _ctors[] array; compiles that with fe_c and adds the resulting .o file to the front of the ln_exe argument list. 
--LIMstyle X
Select the algorithm used to "link" the final executable or library:
Style 1
runs ln_exe (via ln_prefix if it exists).
Style 2
runs ln_exe as above and also postprocesses the executable output file with ln_exe2.
Style dy
runs ln_dy for dynamic linking.
Style dysgi (obsolete)
runs ln_dy and postprocesses its shared library output file with ln_extra.
The algorithms above may use a platform- specific method to pass long object file lists when necessary. 
Style st
runs ln_ar, several times if more than --COMPDO_ln_ar_MaxArgs #files are added to the archive.
Style st_rm
removes an existing archive of the same name before running --LIMst.

Use of the above options is not supported by Kuck & Associates, Inc.


Copyright © 1998-1999. All rights reserved. No Technical Support

This file last updated on 9 December 1998.