Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: 4.2.0-pre-2



On [03/03/04 14:00 +0000], Peter Stephenson wrote:
> I've uploaded 4.2.0-pre-2 to ftp.zsh.org with some minor fixes.
> 
> Problems which came up were.
> 
> - Apparently failed to compile on a Fedora system without ncurses-devel.
> I don't know if termcap was also missing, but if it was that would
> explain it.  I don't think we need to do anything.
> 
> - AIX is weird.  That's not really a zsh problem, but it failed to
> compile owing to an error in init.c.  There was also an awk
> problem in AIX 5 which wasn't due to zsh, but I've tried to work around
> it.  I don't know if it works yet.
> 
> - In some configurations, linking against libpcre.so was a bad idea
> because it wasn't available at boot.  You now need to --enable-pcre.
> Clint has a better fix for future versions.
> 
> When there are no more compilation problems I will release it.
> 

Tried again on AIX 5.2 after compiling up gawk. Seem to have gotten further,
and seems to have a sane sigcount.h file. The error seems to be similar to
those highlighted here (http://www.zsh.org/mla/users/2002/msg00247.html),
however, removing "cap" from config.modules, and running 'make prep' then
'make' didn't seem to do the trick.

	cd . && /bin/sh ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
Updated `zsh.mdh'.
Updated `termcap.mdh'.
Updated `terminfo.mdh'.
Updated `cap.mdh'.
Updated `clone.mdh'.
Updated `datetime.mdh'.
Updated `example.mdh'.
Updated `files.mdh'.
Updated `langinfo.mdh'.
Updated `mapfile.mdh'.
Updated `mathfunc.mdh'.
Updated `parameter.mdh'.
Updated `socket.mdh'.
Updated `stat.mdh'.
Updated `system.mdh'.
Updated `tcp.mdh'.
Updated `zftp.mdh'.
Updated `zprof.mdh'.
Updated `zpty.mdh'.
Updated `zselect.mdh'.
Updated `zle.mdh'.
Updated `complete.mdh'.
Updated `zutil.mdh'.
Updated `rlimits.mdh'.
Updated `sched.mdh'.
Updated `compctl.mdh'.
Updated `complist.mdh'.
Updated `computil.mdh'.
Updated `deltochar.mdh'.
Updated `zleparameter.mdh'.
	rm -f stamp-modobjs.tmp
Updated `zsh.mdh'.
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o builtin.o builtin.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o compat.o compat.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o cond.o cond.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o exec.o exec.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o glob.o glob.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o hashtable.o hashtable.c
"/usr/include/rpcsvc/ypclnt.h", line 99.31: 1506-310 (I) The type "struct dom_binding" was introduced in a parameter list, and will go out of scope at the end of the function declaration or definition.
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o hist.o hist.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o init.o init.c
    1265  1500-010: (W) WARNING in zsh_main: Infinite loop.  Program may not stop.
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o input.o input.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o jobs.o jobs.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o lex.o lex.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o linklist.o linklist.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o loop.o loop.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o math.o math.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o mem.o mem.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o module.o module.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o options.o options.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o params.o params.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o parse.o parse.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o pattern.o pattern.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o prompt.o prompt.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o signals.o signals.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o signames.o signames.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o string.o string.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o subst.o subst.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o text.o text.c
	/usr/vac/bin/cc -qlanglvl=ansi -c -I.  -DHAVE_CONFIG_H -O  -o utils.o utils.c
"utils.c", line 3896.15: 1506-277 (S) Syntax error: possible missing ';' or ','?
"utils.c", line 3896.9: 1506-045 (S) Undeclared identifier cap_t.
"utils.c", line 3897.12: 1506-045 (S) Undeclared identifier caps.
"utils.c", line 3900.30: 1506-275 (S) Unexpected text val encountered.
"utils.c", line 3900.13: 1506-045 (S) Undeclared identifier cap_flag_value_t.
"utils.c", line 3901.25: 1506-275 (S) Unexpected text n encountered.
"utils.c", line 3901.13: 1506-045 (S) Undeclared identifier cap_value_t.
"utils.c", line 3902.17: 1506-045 (S) Undeclared identifier n.
"utils.c", line 3902.63: 1506-045 (S) Undeclared identifier val.
"utils.c", line 3902.47: 1506-045 (S) Undeclared identifier CAP_EFFECTIVE.
make: The error code from the last command is 1.


Stop.
make: The error code from the last command is 2.


Stop.
make: The error code from the last command is 1.


Stop.


Any help will be greatly appreciated.

Cheers,

			--ibraheem
-- 
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by configure, which was
generated by GNU Autoconf 2.57.  Invocation command line was

  $ ./configure --prefix=/home/ibraheem/utils/zsh/AIX/

## --------- ##
## Platform. ##
## --------- ##

hostname = md000002s
uname -m = 00541F5A4C00
uname -r = 2
uname -s = AIX
uname -v = 5

/usr/bin/uname -p = powerpc
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
hostinfo               = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = 5.2.0.0
/bin/universe          = unknown

PATH: /home/ibraheem/utils/gawk/AIX/bin/
PATH: /home/ibraheem/utils/python/AIX/bin
PATH: /home/ibraheem/utils
PATH: .
PATH: /bin
PATH: /usr/bin
PATH: /usr/sbin
PATH: /usr/atria/bin
PATH: /export/tools/bin
PATH: /export/cc_Tools/solaris-5.6-sparc/SUNWForte_6.2/SUNWspro/bin
PATH: /export/tools/solaris-5.6-sparc/Purifyplus_2002a.06.00/releases/purify.sol.2002a.06.00
PATH: /export/tools/solaris-5.6-sparc/Purifyplus_2002a.06.00/releases/quantify.sol.2002a.06.00
PATH: /export/tools/bin
PATH: /usr/vac/bin
PATH: /usr/sbin
PATH: /usr/devel/bin
PATH: /usr/bin/X11
PATH: /usr/bin


## ----------- ##
## Core tests. ##
## ----------- ##

configure:1338: checking build system type
configure:1356: result: powerpc-ibm-aix5.2.0.0
configure:1364: checking host system type
configure:1378: result: powerpc-ibm-aix5.2.0.0
configure:1837: checking for gcc
configure:1863: result: /usr/vac/bin/cc
configure:2107: checking for C compiler version
configure:2110: /usr/vac/bin/cc --version </dev/null >&5
/usr/vac/bin/cc: 1501-216 command option -version is not recognized - passed to ld
  C for AIX Compiler, Version 6

  Usage:
     xlc [ option | inputfile ]...
     cc [ option | inputfile ]...
     c89 [ option | inputfile ]...
     xlc128 [ option | inputfile ]...
     cc128 [ option | inputfile ]...
     xlc_r [ option | inputfile ]...
     cc_r [ option | inputfile ]...
     xlc_r4 [ option | inputfile ]...
     cc_r4 [ option | inputfile ]...
     xlc_r7 [ option | inputfile ]...
     cc_r7 [ option | inputfile ]...

  Description:
     The xlC and related commands compile C and C++ source files.
     They also processes assembler source files and object files. Unless the
     -c option is specified, xlC calls the linkage editor to produce a
     single object file. Input files may be any of the following:
       1. file name with .c suffix: C source file
       2. file name with .i suffix: preprocessed C or C++ source file
       3. file name with .o suffix: object file for ld command
       4. file name with .s suffix: assembler source file
       5. file name with .so suffix: shared object file

  Options:
     Options can be flag options or keyword options:

       1. Flag options:

        -#        Display language processing commands but do
                  not invoke them; output goes to stdout.
        -bdynamic, -bstatic
                  Determines which types of library files are searched by
                  the linkage editor.
        -brtl     Tells the linkage editor to accept both .so and .a
                  library file types.
        -B<prefix>
                  Construct alternate compiler/assembler/linkage editor
                  program names. <prefix> is added to the beginning of
                  the standard program names.
        -c        Do not send object files to the linkage editor.
        -C        Write comments to output when doing preprocessing,
                  used with -E and -P.
        -D<name>[=<def>]
                  Define <name> as in #define directive. If <def> is
                  not specified, 1 is assumed.
        -E        Preprocess but do not compile; output goes to stdout
        -f<filename>
                  Passes to the linkage editor the filename of a file
                  containing a list of input files to be processed.
        -F<x>[:<stanza>]
                  Use alternate configuration file <x> with optional
                  <stanza>. If <stanza> is not specified, the assumed stanza
                  is the name of the command used to invoke the compiler.
        -g        Produce information for the debugger.
        -G        Tells the linkage editor to create a dynamic library.
        -I<dir>   Search in directory <dir> for include files that
                  do not start with an absolute path.
        -l<key>   Search the specified library file,
                  where <key> selects the file lib<key>.a.
        -L<dir>   Search in directory <dir> for files specified by -l<key>.
        -ma       Generate inline calls to the "alloca" function as if
                  "#pragma alloca" directives were in the source file.
        -M        Generate information to be included in a "make"
                  description file; output goes to .u file.
        -o<name>  Name the executable file <name> instead of a.out.
                  When used with the -c option and one source file,
                  name the object file <name> instead of filename.o.
                  If <name> is the name of a directory, files generated by
                  the compiler will be placed into that directory.
        -O        Optimize generated code.
        -O2       Same as -O.
        -O3       Perform some memory and compile time intensive
                  optimizations in addition to those executed with -O2.
                  The -O3 specific optimizations have the potential to
                  alter the semantics of a user's program.
                  The compiler guards against these optimizations at -O2
                  and the option -qstrict is provided at -O3 to turn off
                  these aggressive optimizations.
        -O4       Equivalent to -O3 -qipa with automatic generation of
                  architecture and tuning option ideal for that platform.
        -O5       Equivalent to -O3 -qipa=level=2 with automatic
                  generation of architecture and tuning option ideal for
                  that platform.
        -p        Generate profiling support code.  Same as -qprofile=p.
        -pg       Generate profiling support code including BSD
                  profiling support.  Same as -qprofile=pg.
        -P        Preprocess but do not compile; output goes to .i file.
        -Q<x>, -qinline<x>
                  Inline all appropriate functions where x can be
                  one of the following:
                    !       Not inline any function (equivalent to -qnoinline)
                    =<lc>   Inline if number of source statement in
                            function is less than the number specified
                            in <lc>.
                    -<nm>   Not inline function listed by names in <nm>
                    +<nm>   Attempt to inline function listed by names
                            in <nm>.
        -r        Produce the output file without linking any library.
        -S        Produce a .s file for any source file processed by the
                  compiler.
        -t<x>     Apply prefix from the -B option to the specified program <x>,
                  where x can be one or more of the following:
                    a = assembler
                    b = compiler backend
                    c = compiler frontend
                    i = compiler inliner
                    I = inter-procedural analysis - compile phase
                    l = linkage editor
                    L = inter-procedural analysis - link phase.
                    p = preprocessor
        -U<name>  Undefine name as in #undef directive.
        -v        Displays language processing commands as they
                  are invoked by xlc; output goes to stdout.
        -V        Displays commands as they are invoked by xlC;
                  output goes to stdout.
        -w        Suppress informational, language-level, and
                  warning messages.
        -W<x,y>   Give the options <y> to the compiler program <x>
                  where x can be one or more of the following:
                    <a,b,c,f,I,l,L,p>
        -y<x>     Specify compile-time rounding of constant floating-point
                  expressions, where <x> can be one of the following:
                    m = round toward minus infinity
                    n = round to nearest
                    p = round toward positive infinity
                    z = round toward zero.

       2. Keyword options:

          Keyword options are specified in one of the following ways:

          -q<option>
          -q<option>=<parameter>
          -q<option>=<parameter>:<parameter>

          where <option> is an option name and <parameter> is a
          parameter value.
          Keyword options with no parameters represent switches
          that may be either on or off. The keyword by itself turns
          the switch on, and the keyword preceded by the letters NO
          turns the switch off. For example, -qLIST tells the
          compiler to produce a listing and -qNOLIST tells the
          compiler not to produce a listing. If an option that
          represents a switch is set more than once, the compiler
          uses the last setting.

          Keyword option and parameter names may appear in either
          UPPER CASE or lower case letters in the xlc command.


          Options without parameters:

          32          Selects 32-bit compiler mode.
          64          Selects 64-bit compiler mode.
          ansialias   Use type-based aliasing during optimization.
          compact     Reduce code size where possible, at the expense
                      of execution speed.  Code size is reduced by
                      inhibiting optimizations that replicate or expand
                      code inline.
          cpluscmt    Permit "//" to introduce a comment that lasts
                      until the end of the current source line, as in C++.
          dbcs        String literals and comments can contain DBCS
                      characters (same as mbcs option).
          dbxextra    Generate symbol table information for unreferenced
                      variables. By default such information is not generated
                      thus reducing the size of the executable compiled with
                      the "-g" option.  Same as -qsymtab=unref.
          digraph     Allow special digraph
          dollar      Allow '$' as an identifier character
          dpcl        Generates symbols for tools based on the Dynamic
                      Probe Class Library (DPCL)
          extchk      Perform external name type-checking and function
                      call checking.
          fdpr        Collect information about programs for use with
                      the AIX fdpr (Feedback Directed Program Restructuring)
                      performance-tuning utility.
          flttrap     Generate instructions to trap floating-point
                      exceptions.
          fold        Specifies that constant floating-point expressions
                      are to be evaluated at compile time.
          fullpath    Specifies the path information stored for files when
                      you use "-g" and the symbolic debugger.
          funcsect    Place instructions for each function in a separate csect.
          heapdebug   Enables debug versions of memory management functions.
          hot         Determines whether or not to perform high-order
                      transformations on loops during optimization.
          idirfirst   Specify the search order for files included with
                      the #include "file_name" directive.  Use -qidirfirst
                      with the -Idirectory option.  If -qidirfirst option
                      is specified, the directories specified by the
                      -Idirectory option are searched before the directory
                      where the current file resides.
          ignerrno    Tell the optimizer that the program will never
                      refer to or set errno.  This allows additional
                      optimizations.
          inlglue     Generate fast external linkage by inlining the
                      code (pointer glue code) necessary at calls
                      via a function pointer and calls to external
                      procedures.
          largepage   Take advantage of 16M pages, which will allow for
                      reduced TLB entries and allow hardware prefetching
                      to be done more efficiently.
          ldbl128     Increase long double size from 64 to 128 bits.
          libansi     Assumes that all functions with the name of an
                      ANSI C library functions are in fact the system functions.
          linedebug   Generates abbreviated line number and source file name
                      information for the debugger.
          list        Produce an object listing; output goes to .lst file.
          listopt     Display the settings of all options; output goes
                      to .lst file.
          longdouble  Increase long double size from 64 to 128 bits.
          longlit     Changes implicit type selection for integer constants in
                      64-bit mode.
          longlong    Allow long long integers.
          macpstr     Allow '\p' as the first character of a string constant
                      which will be replaced by the length in bytes.
          makedep     Creates an output file that contains targets suitable for
                      inclusion in a description file for the AIX make command.
          mbcs        String literals and comments can contain DBCS
                      characters (same as dbcs option).
          mkshrobj    Create a shared object from generated object files.
          noprint     Direct listing to /dev/null.
          nostdinc    Specify which files are included with the #include
                      "file_name" and #include <file_name> directives.
                      If -qnostdinc is specified, the /usr/include directory
                      is not searched.
          optimize    Same as O and O2. Perform optimization that is the
                      mix between speed and size.  (If -qnooptimize is
                      specified, it is equivalent to -qoptimize=0.)
          pascal      Accept and ignore the keyword 'pascal' as a
                      type modifier.
          pdf1, pdf2  Perform aggressive optimizations with profile
                      directed feedback.
          phsinfo     Produce compiler phase information; output goes to
                      stdout.
          proto       Assert that procedure call points agree
                      with their declarations even if the procedure has
                      not been prototyped. This allows the caller to
                      pass floating point arguments in floating point
                      registers instead of general purpose registers.
          report      Adds information to the listing file on the loop
                      transformations that have been carried out.
                      This option requires either -qhot or -qsmp
                      in order to have effect.
          ro          Put string literals in read only area.
          roconst     Put constant values in read only area.
          showinc     Include the source of all included files in the
                      source listing, if the SOURCE option is in effect.
          smallstack  Reduce the size of the stack frame, allowing better use
                      of a limited stack size.
          source      Produce a source listing; output goes to .lst file.
          srcmsg      Reconstruct source lines in error along with the
                      diagnostic messages in the stderr file.
          statsym     Adds user-defined, nonexternal names that have a
                      persistent storage class, such as initialized and
                      uninitialized static variables, to the name list
                      (the symbol table of xcoff objects).  Same as
                      -qsymtab=static.
          strict      Turns off aggressive optimizations which have the
                      potential to alter the semantics of a user's program.
                      This option also sets -qfloat=nofltint:norsqrt.
          strict_induction
                      Turns off induction variable optimizations
                      that have the potential to alter the semantics of a
                      user's program. The default is "nostrict_induction" at
                      -O2 or higher and "strict_induction" otherwise.
                      "nostrict_induction" is recomended if your program does
                      not have overflows or wrap arounds of loop induction
                      variables.
          syntaxonly  Causes the compiler to perform syntax checking without
                      generating an object file.
          threaded    Indicates to the compiler that the program will execute
                      in multi-threaded environment.
          tocmerge    Read from the file specified in -bImportfile linker
                      option and merge the address information to access
                      ranges of external addresses using a single Table Of
                      Content entry.
          upconv      Preserves the unsigned specification when performing
                      integral promotions.
          warn64      Enables checking for possible long-to-integer or
                      pointer-to-integer truncation.
          unwind      Enables stack unwinding.  The optimization prologue
                      tailoring reduces the number of saves and restores
                      of non-volatile registers, but is enabled only when
                      stack unwinding is disabled.
          xcall       Generate code to static routines within a compilation
                      unit as if they were external routines.
          xref        Produce a cross-reference listing containing
                      only referenced names.



          Options with parameters:
          aggrcopy=[no]overlap
                      Asserts whether source and destination of aggregate
                      assignments overlap.
          alias=<option>
                      Specifies the aliasing assertion to be applied to
                      your compilation unit.
                      The available options are:
                      addr    Variables are disjoint from pointers
                              unless their address is taken.
                      allp    Pointers are never aliased.
                      ansi    Pointers can only point to an object of the
                              same type. Require -O option.
                      typ     Pointers to different types are never aliased.
          align=<algnopt>
                      bit_packed
                              Similar to packed, except bit-fields are
                              packed as tightly as possible.
                      full    The compiler uses the RISC System/6000
                              alignment rules. This is the same as power.
                      mac68k  The compiler uses the Macintosh**
                              alignment rules.
                      natural The compiler maps structure members to
                              their natural boundaries.
                      packed  The compiler uses the packed alignment rules.
                      power   The compiler uses the RISC System/6000
                              alignment rules.
                      twobyte The compiler uses the Macintosh alignment rules.
                              The mac68k option is the same as twobyte.
          arch=<option>
                      Specifies the architecture on which the executable
                      program will be run.
                      The available options are:
                      com     Produce an object that contains instructions
                              that will run on all the POWER and PowerPC
                              hardware platforms.
                      pwr     Produce an object that contains instructions
                              that will run on the POWER hardware
                              platform.
                      pwr2    Produce an object that contains instructions
                              that will run on the POWER2 hardware
                              platform.
                      pwrx    Same as pwr2.
                      ppc     Produce an object that contains instructions
                              that will run on any of the 32-bit PowerPC
                              hardware platforms.
                      ppcgr   Produce an object that contains optional
                              graphics instructions for PowerPC processors.
                      pwr2s   Produce an object that contains instructions
                              that will run on a pwr2s chip.
                      p2sc    Produce an object that contains instructions
                              that will run on a p2sc chip.
                      601     Produce an object that contains instructions
                              that will run on a 601 chip.
                      602     Produce an object that contains instructions
                              that will run on a 602 chip.
                      603     Produce an object that contains instructions
                              that will run on a 603 chip.
                      604     Produce an object that contains instructions
                              that will run on a 604 chip.
                      403     Produce an object that contains instructions
                              that will run on a 403 chip.
                      rs64a   Produce an object that contains instructions
                              that will run on a rs64a chip.
                      rs64b   Produce an object that contains instructions
                              that will run on a rs64b chip.
                      rs64c   Produce an object that contains instructions
                              that will run on a rs64c chip.
                      pwr3    Produce an object that contains instructions
                              that will run on a POWER3 chip.
                      pwr4    Produce an object that contains instructions
                              that will run on a POWER4 chip.
                      The default is -qarch=com.  If the -qarch option is
                      specified without the -qtune=<option>, the compiler
                      uses the default -qtune value for the specified
                      architecture. Refer to online documentation to find
                      actual default setting of -qtune  for a given -qarch.
          assert=<option>
                      Specifies the aliasing assertion to be applied to
                      your compilation unit.
                      The available options are:
                      typ     Pointers to different types are never aliased.
                      allp    Pointers are never aliased.
                      addr    Variables are disjoint from pointers
                              unless their address is taken.
          attr        Produce an attribute listing containing only
                      referenced names; output goes to .lst file.
          attr=full   Produce an attribute listing containing all names,
                      whether referenced or not; output goes to .lst file.
          bitfields=signed
          bitfields=unsigned
                      Specify whether bitfields will be signed or unsigned.
          cache=<suboption>:<suboption>...
                      Describe the cache configuration for a specific target
                      execution machine. See online documentation for details.
          chars=signed
          chars=unsigned
                      Specify whether the data type char will be signed
                      or unsigned.
          check=<option>
                      Generate code to check for run-time checks.
                      bounds  Runtime checking of addresses when
                              subscripting within an object of known size.
                      divzero Runtime checking of integer division.
                              A trap will occur if an attempt is made to
                              divide by zero.
                      nullptr Runtime checking of addresses
                              contained in pointer variables used to
                              reference storage.
                      all     Switches on all the above suboptions.
          dataimported=<name1>:<name2>: ...
                      Specify which data items are imported.  If no names are
                      specified, all data items are assumed to be imported.
                      This is the default.
          datalocal=<name1>:<name2>: ...
                      Specify which data items are local.  If no names are
                      specified, all data items are assumed to be local.
          enum=<enumopt>
                      Specify whether minimum-sized enumerated types will be
                      produced or not. <enumopt> can be either small, int,
                      1, 2, 4 or 8.
                      small denotes that either one, two, four or eight (valid
                      in 64-bit mode only) bytes of storage will be allocated
                      for enum variables based on the range of the enum
                      constants.
                      int is the default, and causes enum variables to be
                      treated as though they were of type signed int
                      depending on the range of the enum constants.
                      1 will cause enum variables to be packed into 1 byte.
                      2 will cause enum variables to be packed into 2 bytes.
                      4 will cause enum variables to be packed into 4 bytes.
                      8 will cause enum variables to be packed into 8 bytes.
                        (enum=8 is valid in 64-bit mode only)
          flag=<sev1>
                      Specify severity level of diagnostics to be reported
                      in source listing and stderr; the severity level
                      is one of <i,w,e,s,u>.
          flag=<sev1>:<sev2>
                      Specify severity level of diagnostics to be reported
                      in source listing (<sev1>), and stderr (<sev2>);
                      the severity levels are one of <i,w,e,s,u>.
          float=<opt1>:<opt2>:...:<optN>
                      The available options are:
                      emulate Function calls are emitted in place of
                              PowerPC floating-point instructions.
                              Use this option only in a single-threaded
                              stand-alone environment, targeting the
                              PowerPC 403 processor.
                              Do not use this suboption with any of the
                              following:
                              o  -qarch=pwr, -qarch=pwr2, -qarch=pwrx
                              o  -qlongdouble, -qldbl128
                              o  128-bit long double invocation commands
                      fltint  Specify whether range checking of floating
                              point to integer conversions is done.
                              Default at -O2: -qfloat=nofltint.
                              Default at -O3: -qfloat=fltint.
                      hsflt   Never round single-precision expressions,
                              and don't perform range checking for
                              floating-point to integer conversions.
                      hssngl  Round single-precision expressions only
                              when the results are stored into float memory
                              locations.
                      nans    Detect conversion of single-precision NaNS to
                              double precision call checking.
                      nomaf   Suppress generation of multiply-add
                              instructions.
                      nofold  Suppress compile-time evaluation of constant
                              floating-point expressions.
                      rndsngl Ensure strict adherence to IEEE standard.
                              all operations on single-precision values
                              produce results that remain in single
                              precision.
                      rrm     Specify run-time rounding mode. Compile with
                              this option if the run-time rounding mode
                              is round toward minus infinity, round toward
                              positive infinity, or not known.
                      rsqrt   Specify whether a division by the result of a
                              square root can be replaced with a multiply
                              by the reciprocal of the square root.
                              Default at -O2: -qfloat=norsqrt.
                              Default at -O3: -qfloat=rsqrt.
                      spnans  Generate extra instructions to detect signaling
                              NaN on conversion from single precision to
                              double precision.  Obsolete; use the equivalent
                              -qfloat=nans option.
          flttrap=<opt1>:<opt2>:...:<optN>
                      Generate instructions to detect and trap floating-point.
                      The available options are:  overflow, underflow,
                      zerodivide, invalid, inexact, enable, imprecise.
          halt=<sev>  Stop compiler after first phase if severity of errors
                      detected equals or exceeds <sev>; the severity
                      level is one of i, w, e, s, u.
          genproto=<parmnames>
                      Produces ANSI prototypes from K&R function definitions.
          hot=<suboption>
                      Determines whether or not to perform high-order
                      transformations on loops and array language during
                      optimization, and whether or not to pad array dimensions
                      and data objects to avoid cache misses. Suboptions
                      include:
                        arraypad   - The compiler will pad any arrays where it
                                     infers there may be a benefit.  Make sure
                                     that you have not used equivalence
                                     association for any arrays in files
                                     compiled with this option as the compiler
                                     does not perform any checking before
                                     padding arrays.
                        arraypad=n - The compiler will pad every array in the
                                     code.  The pad amount must be a positive
                                     integer value.
                        novector   - The compiler will avoid replacing code by
                                     calls to vector library routines.
                        vector     - Allows the compiler to optimize by
                                     replacing code with calls to vector
                                     library routines.
          ignprag=<option>
                      The available options are:
                      disjoint
                              Ignore pragma disjoint.
                      isolated
                              Ignore pragma isolated_call.
                      omp     Ignore OpenMP parallel processing pragmas.
                      ibm     Ignore IBM parallel processing pragmas.
                      all     Ignore all the above pragmas.
          info
          info=all
                      Produce additional lint-like messages.  For C, it turns
                      on all diagnostic messages for all groups.  For C++, it
                      turns on all diagnostic messages for all groups, except
                      ppt.
          info=<group>
                      Produce additional lint-like messages based on <group>.
                      c99     Code that might behave differently between
                              C89 and C99 language levels
                      cls     Possible problems with generation of classes
                      cmp     Possible redundancies in unsigned comparisons
                      cnd     Possible redundancies or problems in conditional
                              expressions
                      cns     Operations involving constants.
                      cnv     Conversions
                      dcl     Consistency of declarations
                      eff     Statements with no effect
                      enu     Consistency of enum variables
                      ext     Unused external definitions
                      gen     General diagnostic messages
                      gnr     Generation of temporary variables
                      got     Use of goto statements
                      ini     Possible problems with initialization
                      inl     Functions not inlined
                      lan     Language level effects
                      obs     Obsolete features
                      ord     Unspecified order of evaluation
                      par     Unused parameters
                      por     Nonportable language constructs
                      ppc     Possible problems with using the preprocessor
                      ppt     Trace of preprocessor actions
                      private Lists shared variables made private to a
                              parallel loop.
                      pro     Missing function prototypes
                      rea     Code that cannot be reached
                      reduction
                              Lists all variables that are recognized as
                              reduction variables inside a parallel loop.
                      ret     Consistency of return statements
                      trd     Possible truncation or loss of data or precision
                      tru     Variable names truncated by the compiler
                      trx     Hexadecimal floating-point constants that cannot
                              be represented exactly in its evaluation format
                      uni     Unitialized variables
                      use     Unused auto and static variables
          initauto=<hh>
                      Initialialize automatic storage to <hh>. <hh> is a
                      hexadecimal value.  This generates extra code and
                      should only be used for error determination.
          inline[=<x>]
                      This is functionally equivalent to the -Q option.
          ipa=<subopt1>[=<val1>][:<subopt2>[=<val2>][:...:<suboptN>[=<valN>]]]
                      Enhances -O optimization by doing detailed analysis
                      across procedures.  One of -O, -O2, or -O3 is required
                      when using -qipa.  Regular expressions are supported
                      when specifying <procedure_names> on the -qipa=exits,
                      -qipa=inline, -qipa=lowfreq, -qipa=noinline, -qipa=pure,
                      -qipa=safe and -qipa=unknown suboptions.
                      Suboptions include:
                        exits=<procedure_names>
                                   - Specifies a selected set of procedures
                                     which always end the program.
                        inline=<inline-options>
                          The "ipa=inline=" command can take a colon-separated
                          list of inline options, which are as follows:
                            inline={auto|noauto}
                                        - Specifies whether or not to
                                          automatically inline expansion.
                            inline=<procedure_names>
                                        - Specifies a comma-separated list of
                                          procedures to try to inline.
                            inline=limit=<num>
                                        - Changes the size limits that deter-
                                          mine how much inline expansion to do.
                                          <num> is the optimizer's approximation
                                          of the number of bytes of code which
                                          will be generated.
                            inline=threshold=<num>
                                        - Specifies the upper size limit on
                                          procedures to inline.  <num> is
                                          defined as for inline=limit.
                        isolated=<procedure_names>
                                   - Specifies a comma-separated list of
                                     procedures not compiled with -qipa and
                                     that do not directly refer to any global
                                     variable.
                        level=<level>
                                   - Determines the amount of IPA analysis
                                     and optimization performed:
                                       0 = Does only minimal interprocedural
                                           analysis and optimization.
                                       1 = Turns on inlining, limited alias
                                           analysis, and limited call-site
                                           tailoring.
                                       2 = Full interprocedural data flow and
                                           alias analysis.
                        list=[filename|short|long]
                                   - Specifies an output listing file name
                                     during the link phase, in the event that
                                     an object listing has been requested
                                     using the -qlist option.  The default
                                     name is "a.lst".  The suboptions short and
                                     long determine which listing sections will
                                     be included.
                        lowfreq=<procedure_names>
                                   - Specifies a comma-separated list of
                                     procedures that are likely to be
                                     called infrequently during the course
                                     of a typical program run.
                        missing={unknown|safe|isolated|pure}
                                   - Specifies the default assumption for
                                     procedures not compiled with -qipa.
                        noinline=<procedure_names>
                                   - Specifies a comma-separated list of
                                     procedures which are not to be inlined.
                        noobject   - Speeds up compilation, but the object
                                     files cannot be used in non-IPA
                                     compilations.  This option is ignored if
                                     -S has been specified.
                        partition={small|medium|large}
                                   - Specifies the size of program sections
                                     that are analyzed together.  Larger
                                     partitions may produce better analysis but
                                     require more storage.
                        pure=<procedure_names>
                                   - Specifies a comma-separated list of
                                     procedures not compiled with -qipa and
                                     that are "isolated", "safe", and do not
                                     modify any data objects that are visible
                                     to the caller.
                        safe=<procedure_names>
                                   - Specifies a comma-separated list of
                                     procedures not compiled with -qipa and
                                     that do not call any other part of the
                                     program.
                        stdexits   - Specifies that compiler-defined exit
                                     routines can be optimized as with the
                                     "exits" suboption.  The procedures are
                                     abort, exit, _exit, and _assert.
                        nothreads    Single threaded invocation of the compiler
                                     backend.
                        threads      Compiler decides the number of threads
                                     used to invoke the compiler backend.
                        threads=<n>  Up to 'n' threads can be used to invoke
                                     the compiler backend.
                        unknown=<procedure_names>
                                   - Specifies a comma-separated list of
                                     procedures not compiled with -qipa and
                                     that may update global variables and
                                     dummy arguments and call other parts of
                                     the program compiled with -qipa.
                        The following options are intended for use by the
                        link-time phase of -qipa:
                        -qlibansi  - Assumes that all functions with the name
                                     of an ANSI C defined library function are,
                                     in fact, the library functions.
                                     -qnolibansi is the default.
                        -qlibessl  - Assumes that all functions with the name
                                     of an ESSL defined library functions are,
                                     in fact, the library functions.
                                     -qnolibessl is the default.
                        -qlibposix - Assumes that all functions with the name
                                     of a POSIX 1003.1 defined library function
                                     are, in fact, the system functions.
                                     -qnolibposix is the default.
          isolated_call=<name1>:<name2>: ...
                      Specify that the calls to the functions listed have no
                      side effects. <name1> and <name2> are function names.
                      The user may specify as many function names as
                      necessary.
          keyword=<keywords>
                      Enables the use of specific keywords.
          langlvl={<langlvl>|<feature>}[:<langlvl>|<feature>]...
                      Specify language level and/or features to be enabled
                      during compilation.
                      <langlvl>
                              can be extc89, stdc89, extc99, stdc99,
                              ansi, saal2, saa, extended, or classic.
                      <feature>
                              can be:
                              [no]ucs   enables or disables support for
                                        universal character names.
          maxerr=<num>[:<sev>]
                      Instructs the compiler to halt compilation when <num>
                      errors of <sev> or greater severity is reached.  The
                      default for <sev> is current value of the -qhalt option.
          maxmem=<num>
                      Limit the amount of memory used by space intensive
                      optimizations to <num>.  <num> specified in kilobytes.
          optimize=<level>
                      Enables different levels of optimization.
                      2       Same as -O and -qoptimize.
                      3       Same as -O3. Aggressive optimization.
                      4       Same as -O4. Internally generates -O3 -qipa
                              with automatic architecture and tuning option
                              generation.
                      5       Same as -O5. Internally generates -O3
                              -qipa=level=2 with automatic architecture and
                              tuning option generation.
          procimported=<name1>:<name2>: ...
                      Specify which functions are imported.  If no filenames
                      are specified, all invoked functions are assumed to be
                      defined outside the current file.  The last explicit
                      specification for a function takes precedence.
          proclocal=<name1>:<name2>: ...
                      Specify which functions are local.
                      If no filenames are specified, all invoked functions
                      are assumed to be defined within the current file.
                      The last explicit specification for a function takes
                      precedence.
          procunknown=<name1>:<name2>: ...
                      Specify which functions are unknown to be local or
                      imported.  If no filenames are specified, all functions
                      called are assumed to be unknown. This is the default
                      when no user options are specified. The last explicit
                      specification for a function takes precedence.
          profile=<option>
                      Sets up the object files produced by the compiler for
                      profiling.
                      The available options are:
                      ibm     Generate profiling support code for use with the
                              Performance Analysis tool in VisualAge C++.
                      p       Generate profiling support code.  Same as -p.
                      pg      Generate profiling support code including BSD
                              profiling support.  Same as -pq.
          smp[=suboption[:suboption] [ ... ]]
                      Controls acceptance of OpenMP directives and
                      automatic parallelization.  The auto and omp suboptions
                      are opposites. i.e. -qsmp=omp means strict adherance
                      to the OpenMP standard with no automatic parallelization.
                      [no]auto
                              Enables or disables automatic parallelization.
                      [no]explicit
                              Enables or disables explicit parallelization.
                      [no]opt
                              Turns off the implied optimization to allow
                              simpler debugging.
                      schedule=<sched_type>[=n]
                              Specifies what kind of scheduling algorithms
                              and chunking are used for loops to which no
                              other scheduling algorithm has been explicitly
                              assigned in the source code.
                              Valid options for <sched_type> are:
                                         * dynamic[=n]
                                         * guided[=n]
                                         * static[=n]
                                         * affinity[=n]
                                         * runtime
                              For more information, see online documentation.
                      [no]nested_par
                              Enables or disables parallelization of nested
                              parallel constructs.
                      [no]rec_locks
                              Specifies whether recursive or regular locks
                              should be used to implement critical sections.
                      [no]omp Enables or disables strict OpenMP mode.
          spill=<size>
                      Specify the size of the register allocation spill area.
          suppress=<msg_num>:<msg_num>...
                      Suppress compiler messages.
          nosuppress
                      Don't suppress compiler messages.
          symtab=<options>
                      Controls symbol table.
                      The available options are:
                      unref   Specifies that all typedef declarations, struct,
                              union, and enum type definitions are included
                              for processing by the debugger.  Same as
                              -qdbxextra.
                      static  Adds user-defined, nonexternal names that have a
                              persistent storage class, such as initialized
                              and uninitialized static variables, to the name
                              list (the symbol table of xcoff objects).  Same
                              as -qstatsym.
          tabsize=<size>
                      Changes the length of tabs in your source file.
          tbtable=<option>
                      Generate a traceback table for each function and
                      place it in the text segment at the end of the
                      function code.
                      The available options are:
                      none    No traceback table is generated.
                      full    A full traceback table is generated.
                              This is the default with -g specified.
                      small   A traceback table is generated with no name or
                              parameter information.
                              This is the default when -g is NOT specified.
          tune=<option>
                      Specifies the architecture system for which the
                      executable program is optimized.
                      The available options are:
                      403     Produce an object optimized for all the
                              PowerPC 403 processors.
                              Use -qfloat=emulate to emulate the floating-point
                              instructions omitted by the 403 processor.
                      601     Produce an object optimized for all the
                              PowerPC 601 processors.
                      602     Produce an object optimized for all the
                              PowerPC 602 processors.
                      603     Produce an object optimized for all the
                              PowerPC 603 processors.
                      604     Produce an object optimized for all the
                              PowerPC 604 processors.
                      p2sc    Produce an object optimized for all the
                              p2sc processors.
                      pwr     Produce an object optimized for the POWER
                              hardware platform.
                      pwr2    Produce an object optimized for the
                              POWER2 hardware platform.
                      pwr2s   Produce an object optimized for the
                              POWER2 hardware platform, avoiding certain
                              quadruple-precision instructions that would
                              slow program performance.
                      pwrx    Same as pwr2.
                      rs64a   Produce an object optimized for the rs64a
                              processor.
                      rs64b   Produce an object optimized for the rs64b
                              processor.
                      rs64c   Produce an object optimized for the rs64c
                              processor.
                      pwr3    Produce an object optimized for the POWER3
                              processor.
                      pwr4    Produce an object optimized for the POWER4
                              processor.
          unroll={yes|no|auto}
                      yes     Hint for the compiler to try to unroll loops.
                      no      Force the compiler not to unroll any loops.
                      auto    Let the compiler decide whether to unroll loops.
          unroll      same as unroll=yes
          nounroll    same as unroll=no
          xref=full   Produce a cross-reference listing containing all names,
                      whether referenced or not; output goes to .lst file.

  Environment Variables
     1.OBJECT_MODE changes the compilation-mode behavior, unless overridden by
                   configuration file or command-line options

        Setting

         not set   32-bit compiler mode.
          32       32-bit compiler mode.
          64       64-bit compiler mode.
         32_64     Fatal error and stop, unless an explicit configuration
                   file or command-line compiler-mode setting exists.
        any other  Fatal error and stop, unless an explicit configuration
                   file or command-line compiler-mode setting exists.

  For a detailed description of each option, please refer to the online
  documentation.
configure:2113: $? = 249
configure:2115: /usr/vac/bin/cc -v </dev/null >&5
exec: /usr/bin/pg(/usr/bin/pg,/usr/vac/exe/default_msg/vac.help,NULL) 
  C for AIX Compiler, Version 6

  Usage:
     xlc [ option | inputfile ]...
     cc [ option | inputfile ]...
     c89 [ option | inputfile ]...
     xlc128 [ option | inputfile ]...
     cc128 [ option | inputfile ]...
     xlc_r [ option | inputfile ]...
     cc_r [ option | inputfile ]...
     xlc_r4 [ option | inputfile ]...
     cc_r4 [ option | inputfile ]...
     xlc_r7 [ option | inputfile ]...
     cc_r7 [ option | inputfile ]...

  Description:
     The xlC and related commands compile C and C++ source files.
     They also processes assembler source files and object files. Unless the
     -c option is specified, xlC calls the linkage editor to produce a
     single object file. Input files may be any of the following:
       1. file name with .c suffix: C source file
       2. file name with .i suffix: preprocessed C or C++ source file
       3. file name with .o suffix: object file for ld command
       4. file name with .s suffix: assembler source file
       5. file name with .so suffix: shared object file

  Options:
     Options can be flag options or keyword options:

       1. Flag options:

        -#        Display language processing commands but do
                  not invoke them; output goes to stdout.
        -bdynamic, -bstatic
                  Determines which types of library files are searched by
                  the linkage editor.
        -brtl     Tells the linkage editor to accept both .so and .a
                  library file types.
        -B<prefix>
                  Construct alternate compiler/assembler/linkage editor
                  program names. <prefix> is added to the beginning of
                  the standard program names.
        -c        Do not send object files to the linkage editor.
        -C        Write comments to output when doing preprocessing,
                  used with -E and -P.
        -D<name>[=<def>]
                  Define <name> as in #define directive. If <def> is
                  not specified, 1 is assumed.
        -E        Preprocess but do not compile; output goes to stdout
        -f<filename>
                  Passes to the linkage editor the filename of a file
                  containing a list of input files to be processed.
        -F<x>[:<stanza>]
                  Use alternate configuration file <x> with optional
                  <stanza>. If <stanza> is not specified, the assumed stanza
                  is the name of the command used to invoke the compiler.
        -g        Produce information for the debugger.
        -G        Tells the linkage editor to create a dynamic library.
        -I<dir>   Search in directory <dir> for include files that
                  do not start with an absolute path.
        -l<key>   Search the specified library file,
                  where <key> selects the file lib<key>.a.
        -L<dir>   Search in directory <dir> for files specified by -l<key>.
        -ma       Generate inline calls to the "alloca" function as if
                  "#pragma alloca" directives were in the source file.
        -M        Generate information to be included in a "make"
                  description file; output goes to .u file.
        -o<name>  Name the executable file <name> instead of a.out.
                  When used with the -c option and one source file,
                  name the object file <name> instead of filename.o.
                  If <name> is the name of a directory, files generated by
                  the compiler will be placed into that directory.
        -O        Optimize generated code.
        -O2       Same as -O.
        -O3       Perform some memory and compile time intensive
                  optimizations in addition to those executed with -O2.
                  The -O3 specific optimizations have the potential to
                  alter the semantics of a user's program.
                  The compiler guards against these optimizations at -O2
                  and the option -qstrict is provided at -O3 to turn off
                  these aggressive optimizations.
        -O4       Equivalent to -O3 -qipa with automatic generation of
                  architecture and tuning option ideal for that platform.
        -O5       Equivalent to -O3 -qipa=level=2 with automatic
                  generation of architecture and tuning option ideal for
                  that platform.
        -p        Generate profiling support code.  Same as -qprofile=p.
        -pg       Generate profiling support code including BSD
                  profiling support.  Same as -qprofile=pg.
        -P        Preprocess but do not compile; output goes to .i file.
        -Q<x>, -qinline<x>
                  Inline all appropriate functions where x can be
                  one of the following:
                    !       Not inline any function (equivalent to -qnoinline)
                    =<lc>   Inline if number of source statement in
                            function is less than the number specified
                            in <lc>.
                    -<nm>   Not inline function listed by names in <nm>
                    +<nm>   Attempt to inline function listed by names
                            in <nm>.
        -r        Produce the output file without linking any library.
        -S        Produce a .s file for any source file processed by the
                  compiler.
        -t<x>     Apply prefix from the -B option to the specified program <x>,
                  where x can be one or more of the following:
                    a = assembler
                    b = compiler backend
                    c = compiler frontend
                    i = compiler inliner
                    I = inter-procedural analysis - compile phase
                    l = linkage editor
                    L = inter-procedural analysis - link phase.
                    p = preprocessor
        -U<name>  Undefine name as in #undef directive.
        -v        Displays language processing commands as they
                  are invoked by xlc; output goes to stdout.
        -V        Displays commands as they are invoked by xlC;
                  output goes to stdout.
        -w        Suppress informational, language-level, and
                  warning messages.
        -W<x,y>   Give the options <y> to the compiler program <x>
                  where x can be one or more of the following:
                    <a,b,c,f,I,l,L,p>
        -y<x>     Specify compile-time rounding of constant floating-point
                  expressions, where <x> can be one of the following:
                    m = round toward minus infinity
                    n = round to nearest
                    p = round toward positive infinity
                    z = round toward zero.

       2. Keyword options:

          Keyword options are specified in one of the following ways:

          -q<option>
          -q<option>=<parameter>
          -q<option>=<parameter>:<parameter>

          where <option> is an option name and <parameter> is a
          parameter value.
          Keyword options with no parameters represent switches
          that may be either on or off. The keyword by itself turns
          the switch on, and the keyword preceded by the letters NO
          turns the switch off. For example, -qLIST tells the
          compiler to produce a listing and -qNOLIST tells the
          compiler not to produce a listing. If an option that
          represents a switch is set more than once, the compiler
          uses the last setting.

          Keyword option and parameter names may appear in either
          UPPER CASE or lower case letters in the xlc command.


          Options without parameters:

          32          Selects 32-bit compiler mode.
          64          Selects 64-bit compiler mode.
          ansialias   Use type-based aliasing during optimization.
          compact     Reduce code size where possible, at the expense
                      of execution speed.  Code size is reduced by
                      inhibiting optimizations that replicate or expand
                      code inline.
          cpluscmt    Permit "//" to introduce a comment that lasts
                      until the end of the current source line, as in C++.
          dbcs        String literals and comments can contain DBCS
                      characters (same as mbcs option).
          dbxextra    Generate symbol table information for unreferenced
                      variables. By default such information is not generated
                      thus reducing the size of the executable compiled with
                      the "-g" option.  Same as -qsymtab=unref.
          digraph     Allow special digraph
          dollar      Allow '$' as an identifier character
          dpcl        Generates symbols for tools based on the Dynamic
                      Probe Class Library (DPCL)
          extchk      Perform external name type-checking and function
                      call checking.
          fdpr        Collect information about programs for use with
                      the AIX fdpr (Feedback Directed Program Restructuring)
                      performance-tuning utility.
          flttrap     Generate instructions to trap floating-point
                      exceptions.
          fold        Specifies that constant floating-point expressions
                      are to be evaluated at compile time.
          fullpath    Specifies the path information stored for files when
                      you use "-g" and the symbolic debugger.
          funcsect    Place instructions for each function in a separate csect.
          heapdebug   Enables debug versions of memory management functions.
          hot         Determines whether or not to perform high-order
                      transformations on loops during optimization.
          idirfirst   Specify the search order for files included with
                      the #include "file_name" directive.  Use -qidirfirst
                      with the -Idirectory option.  If -qidirfirst option
                      is specified, the directories specified by the
                      -Idirectory option are searched before the directory
                      where the current file resides.
          ignerrno    Tell the optimizer that the program will never
                      refer to or set errno.  This allows additional
                      optimizations.
          inlglue     Generate fast external linkage by inlining the
                      code (pointer glue code) necessary at calls
                      via a function pointer and calls to external
                      procedures.
          largepage   Take advantage of 16M pages, which will allow for
                      reduced TLB entries and allow hardware prefetching
                      to be done more efficiently.
          ldbl128     Increase long double size from 64 to 128 bits.
          libansi     Assumes that all functions with the name of an
                      ANSI C library functions are in fact the system functions.
          linedebug   Generates abbreviated line number and source file name
                      information for the debugger.
          list        Produce an object listing; output goes to .lst file.
          listopt     Display the settings of all options; output goes
                      to .lst file.
          longdouble  Increase long double size from 64 to 128 bits.
          longlit     Changes implicit type selection for integer constants in
                      64-bit mode.
          longlong    Allow long long integers.
          macpstr     Allow '\p' as the first character of a string constant
                      which will be replaced by the length in bytes.
          makedep     Creates an output file that contains targets suitable for
                      inclusion in a description file for the AIX make command.
          mbcs        String literals and comments can contain DBCS
                      characters (same as dbcs option).
          mkshrobj    Create a shared object from generated object files.
          noprint     Direct listing to /dev/null.
          nostdinc    Specify which files are included with the #include
                      "file_name" and #include <file_name> directives.
                      If -qnostdinc is specified, the /usr/include directory
                      is not searched.
          optimize    Same as O and O2. Perform optimization that is the
                      mix between speed and size.  (If -qnooptimize is
                      specified, it is equivalent to -qoptimize=0.)
          pascal      Accept and ignore the keyword 'pascal' as a
                      type modifier.
          pdf1, pdf2  Perform aggressive optimizations with profile
                      directed feedback.
          phsinfo     Produce compiler phase information; output goes to
                      stdout.
          proto       Assert that procedure call points agree
                      with their declarations even if the procedure has
                      not been prototyped. This allows the caller to
                      pass floating point arguments in floating point
                      registers instead of general purpose registers.
          report      Adds information to the listing file on the loop
                      transformations that have been carried out.
                      This option requires either -qhot or -qsmp
                      in order to have effect.
          ro          Put string literals in read only area.
          roconst     Put constant values in read only area.
          showinc     Include the source of all included files in the
                      source listing, if the SOURCE option is in effect.
          smallstack  Reduce the size of the stack frame, allowing better use
                      of a limited stack size.
          source      Produce a source listing; output goes to .lst file.
          srcmsg      Reconstruct source lines in error along with the
                      diagnostic messages in the stderr file.
          statsym     Adds user-defined, nonexternal names that have a
                      persistent storage class, such as initialized and
                      uninitialized static variables, to the name list
                      (the symbol table of xcoff objects).  Same as
                      -qsymtab=static.
          strict      Turns off aggressive optimizations which have the
                      potential to alter the semantics of a user's program.
                      This option also sets -qfloat=nofltint:norsqrt.
          strict_induction
                      Turns off induction variable optimizations
                      that have the potential to alter the semantics of a
                      user's program. The default is "nostrict_induction" at
                      -O2 or higher and "strict_induction" otherwise.
                      "nostrict_induction" is recomended if your program does
                      not have overflows or wrap arounds of loop induction
                      variables.
          syntaxonly  Causes the compiler to perform syntax checking without
                      generating an object file.
          threaded    Indicates to the compiler that the program will execute
                      in multi-threaded environment.
          tocmerge    Read from the file specified in -bImportfile linker
                      option and merge the address information to access
                      ranges of external addresses using a single Table Of
                      Content entry.
          upconv      Preserves the unsigned specification when performing
                      integral promotions.
          warn64      Enables checking for possible long-to-integer or
                      pointer-to-integer truncation.
          unwind      Enables stack unwinding.  The optimization prologue
                      tailoring reduces the number of saves and restores
                      of non-volatile registers, but is enabled only when
                      stack unwinding is disabled.
          xcall       Generate code to static routines within a compilation
                      unit as if they were external routines.
          xref        Produce a cross-reference listing containing
                      only referenced names.



          Options with parameters:
          aggrcopy=[no]overlap
                      Asserts whether source and destination of aggregate
                      assignments overlap.
          alias=<option>
                      Specifies the aliasing assertion to be applied to
                      your compilation unit.
                      The available options are:
                      addr    Variables are disjoint from pointers
                              unless their address is taken.
                      allp    Pointers are never aliased.
                      ansi    Pointers can only point to an object of the
                              same type. Require -O option.
                      typ     Pointers to different types are never aliased.
          align=<algnopt>
                      bit_packed
                              Similar to packed, except bit-fields are
                              packed as tightly as possible.
                      full    The compiler uses the RISC System/6000
                              alignment rules. This is the same as power.
                      mac68k  The compiler uses the Macintosh**
                              alignment rules.
                      natural The compiler maps structure members to
                              their natural boundaries.
                      packed  The compiler uses the packed alignment rules.
                      power   The compiler uses the RISC System/6000
                              alignment rules.
                      twobyte The compiler uses the Macintosh alignment rules.
                              The mac68k option is the same as twobyte.
          arch=<option>
                      Specifies the architecture on which the executable
                      program will be run.
                      The available options are:
                      com     Produce an object that contains instructions
                              that will run on all the POWER and PowerPC
                              hardware platforms.
                      pwr     Produce an object that contains instructions
                              that will run on the POWER hardware
                              platform.
                      pwr2    Produce an object that contains instructions
                              that will run on the POWER2 hardware
                              platform.
                      pwrx    Same as pwr2.
                      ppc     Produce an object that contains instructions
                              that will run on any of the 32-bit PowerPC
                              hardware platforms.
                      ppcgr   Produce an object that contains optional
                              graphics instructions for PowerPC processors.
                      pwr2s   Produce an object that contains instructions
                              that will run on a pwr2s chip.
                      p2sc    Produce an object that contains instructions
                              that will run on a p2sc chip.
                      601     Produce an object that contains instructions
                              that will run on a 601 chip.
                      602     Produce an object that contains instructions
                              that will run on a 602 chip.
                      603     Produce an object that contains instructions
                              that will run on a 603 chip.
                      604     Produce an object that contains instructions
                              that will run on a 604 chip.
                      403     Produce an object that contains instructions
                              that will run on a 403 chip.
                      rs64a   Produce an object that contains instructions
                              that will run on a rs64a chip.
                      rs64b   Produce an object that contains instructions
                              that will run on a rs64b chip.
                      rs64c   Produce an object that contains instructions
                              that will run on a rs64c chip.
                      pwr3    Produce an object that contains instructions
                              that will run on a POWER3 chip.
                      pwr4    Produce an object that contains instructions
                              that will run on a POWER4 chip.
                      The default is -qarch=com.  If the -qarch option is
                      specified without the -qtune=<option>, the compiler
                      uses the default -qtune value for the specified
                      architecture. Refer to online documentation to find
                      actual default setting of -qtune  for a given -qarch.
          assert=<option>
                      Specifies the aliasing assertion to be applied to
                      your compilation unit.
                      The available options are:
                      typ     Pointers to different types are never aliased.
                      allp    Pointers are never aliased.
                      addr    Variables are disjoint from pointers
                              unless their address is taken.
          attr        Produce an attribute listing containing only
                      referenced names; output goes to .lst file.
          attr=full   Produce an attribute listing containing all names,
                      whether referenced or not; output goes to .lst file.
          bitfields=signed
          bitfields=unsigned
                      Specify whether bitfields will be signed or unsigned.
          cache=<suboption>:<suboption>...
                      Describe the cache configuration for a specific target
                      execution machine. See online documentation for details.
          chars=signed
          chars=unsigned
                      Specify whether the data type char will be signed
                      or unsigned.
          check=<option>
                      Generate code to check for run-time checks.
                      bounds  Runtime checking of addresses when
                              subscripting within an object of known size.
                      divzero Runtime checking of integer division.
                              A trap will occur if an attempt is made to
                              divide by zero.
                      nullptr Runtime checking of addresses
                              contained in pointer variables used to
                              reference storage.
                      all     Switches on all the above suboptions.
          dataimported=<name1>:<name2>: ...
                      Specify which data items are imported.  If no names are
                      specified, all data items are assumed to be imported.
                      This is the default.
          datalocal=<name1>:<name2>: ...
                      Specify which data items are local.  If no names are
                      specified, all data items are assumed to be local.
          enum=<enumopt>
                      Specify whether minimum-sized enumerated types will be
                      produced or not. <enumopt> can be either small, int,
                      1, 2, 4 or 8.
                      small denotes that either one, two, four or eight (valid
                      in 64-bit mode only) bytes of storage will be allocated
                      for enum variables based on the range of the enum
                      constants.
                      int is the default, and causes enum variables to be
                      treated as though they were of type signed int
                      depending on the range of the enum constants.
                      1 will cause enum variables to be packed into 1 byte.
                      2 will cause enum variables to be packed into 2 bytes.
                      4 will cause enum variables to be packed into 4 bytes.
                      8 will cause enum variables to be packed into 8 bytes.
                        (enum=8 is valid in 64-bit mode only)
          flag=<sev1>
                      Specify severity level of diagnostics to be reported
                      in source listing and stderr; the severity level
                      is one of <i,w,e,s,u>.
          flag=<sev1>:<sev2>
                      Specify severity level of diagnostics to be reported
                      in source listing (<sev1>), and stderr (<sev2>);
                      the severity levels are one of <i,w,e,s,u>.
          float=<opt1>:<opt2>:...:<optN>
                      The available options are:
                      emulate Function calls are emitted in place of
                              PowerPC floating-point instructions.
                              Use this option only in a single-threaded
                              stand-alone environment, targeting the
                              PowerPC 403 processor.
                              Do not use this suboption with any of the
                              following:
                              o  -qarch=pwr, -qarch=pwr2, -qarch=pwrx
                              o  -qlongdouble, -qldbl128
                              o  128-bit long double invocation commands
                      fltint  Specify whether range checking of floating
                              point to integer conversions is done.
                              Default at -O2: -qfloat=nofltint.
                              Default at -O3: -qfloat=fltint.
                      hsflt   Never round single-precision expressions,
                              and don't perform range checking for
                              floating-point to integer conversions.
                      hssngl  Round single-precision expressions only
                              when the results are stored into float memory
                              locations.
                      nans    Detect conversion of single-precision NaNS to
                              double precision call checking.
                      nomaf   Suppress generation of multiply-add
                              instructions.
                      nofold  Suppress compile-time evaluation of constant
                              floating-point expressions.
                      rndsngl Ensure strict adherence to IEEE standard.
                              all operations on single-precision values
                              produce results that remain in single
                              precision.
                      rrm     Specify run-time rounding mode. Compile with
                              this option if the run-time rounding mode
                              is round toward minus infinity, round toward
                              positive infinity, or not known.
                      rsqrt   Specify whether a division by the result of a
                              square root can be replaced with a multiply
                              by the reciprocal of the square root.
                              Default at -O2: -qfloat=norsqrt.
                              Default at -O3: -qfloat=rsqrt.
                      spnans  Generate extra instructions to detect signaling
                              NaN on conversion from single precision to
                              double precision.  Obsolete; use the equivalent
                              -qfloat=nans option.
          flttrap=<opt1>:<opt2>:...:<optN>
                      Generate instructions to detect and trap floating-point.
                      The available options are:  overflow, underflow,
                      zerodivide, invalid, inexact, enable, imprecise.
          halt=<sev>  Stop compiler after first phase if severity of errors
                      detected equals or exceeds <sev>; the severity
                      level is one of i, w, e, s, u.
          genproto=<parmnames>
                      Produces ANSI prototypes from K&R function definitions.
          hot=<suboption>
                      Determines whether or not to perform high-order
                      transformations on loops and array language during
                      optimization, and whether or not to pad array dimensions
                      and data objects to avoid cache misses. Suboptions
                      include:
                        arraypad   - The compiler will pad any arrays where it
                                     infers there may be a benefit.  Make sure
                                     that you have not used equivalence
                                     association for any arrays in files
                                     compiled with this option as the compiler
                                     does not perform any checking before
                                     padding arrays.
                        arraypad=n - The compiler will pad every array in the
                                     code.  The pad amount must be a positive
                                     integer value.
                        novector   - The compiler will avoid replacing code by
                                     calls to vector library routines.
                        vector     - Allows the compiler to optimize by
                                     replacing code with calls to vector
                                     library routines.
          ignprag=<option>
                      The available options are:
                      disjoint
                              Ignore pragma disjoint.
                      isolated
                              Ignore pragma isolated_call.
                      omp     Ignore OpenMP parallel processing pragmas.
                      ibm     Ignore IBM parallel processing pragmas.
                      all     Ignore all the above pragmas.
          info
          info=all
                      Produce additional lint-like messages.  For C, it turns
                      on all diagnostic messages for all groups.  For C++, it
                      turns on all diagnostic messages for all groups, except
                      ppt.
          info=<group>
                      Produce additional lint-like messages based on <group>.
                      c99     Code that might behave differently between
                              C89 and C99 language levels
                      cls     Possible problems with generation of classes
                      cmp     Possible redundancies in unsigned comparisons
                      cnd     Possible redundancies or problems in conditional
                              expressions
                      cns     Operations involving constants.
                      cnv     Conversions
                      dcl     Consistency of declarations
                      eff     Statements with no effect
                      enu     Consistency of enum variables
                      ext     Unused external definitions
                      gen     General diagnostic messages
                      gnr     Generation of temporary variables
                      got     Use of goto statements
                      ini     Possible problems with initialization
                      inl     Functions not inlined
                      lan     Language level effects
                      obs     Obsolete features
                      ord     Unspecified order of evaluation
                      par     Unused parameters
                      por     Nonportable language constructs
                      ppc     Possible problems with using the preprocessor
                      ppt     Trace of preprocessor actions
                      private Lists shared variables made private to a
                              parallel loop.
                      pro     Missing function prototypes
                      rea     Code that cannot be reached
                      reduction
                              Lists all variables that are recognized as
                              reduction variables inside a parallel loop.
                      ret     Consistency of return statements
                      trd     Possible truncation or loss of data or precision
                      tru     Variable names truncated by the compiler
                      trx     Hexadecimal floating-point constants that cannot
                              be represented exactly in its evaluation format
                      uni     Unitialized variables
                      use     Unused auto and static variables
          initauto=<hh>
                      Initialialize automatic storage to <hh>. <hh> is a
                      hexadecimal value.  This generates extra code and
                      should only be used for error determination.
          inline[=<x>]
                      This is functionally equivalent to the -Q option.
          ipa=<subopt1>[=<val1>][:<subopt2>[=<val2>][:...:<suboptN>[=<valN>]]]
                      Enhances -O optimization by doing detailed analysis
                      across procedures.  One of -O, -O2, or -O3 is required
                      when using -qipa.  Regular expressions are supported
                      when specifying <procedure_names> on the -qipa=exits,
                      -qipa=inline, -qipa=lowfreq, -qipa=noinline, -qipa=pure,
                      -qipa=safe and -qipa=unknown suboptions.
                      Suboptions include:
                        exits=<procedure_names>
                                   - Specifies a selected set of procedures
                                     which always end the program.
                        inline=<inline-options>
                          The "ipa=inline=" command can take a colon-separated
                          list of inline options, which are as follows:
                            inline={auto|noauto}
                                        - Specifies whether or not to
                                          automatically inline expansion.
                            inline=<procedure_names>
                                        - Specifies a comma-separated list of
                                          procedures to try to inline.
                            inline=limit=<num>
                                        - Changes the size limits that deter-
                                          mine how much inline expansion to do.
                                          <num> is the optimizer's approximation
                                          of the number of bytes of code which
                                          will be generated.
                            inline=threshold=<num>
                                        - Specifies the upper size limit on
                                          procedures to inline.  <num> is
                                          defined as for inline=limit.
                        isolated=<procedure_names>
                                   - Specifies a comma-separated list of
                                     procedures not compiled with -qipa and
                                     that do not directly refer to any global
                                     variable.
                        level=<level>
                                   - Determines the amount of IPA analysis
                                     and optimization performed:
                                       0 = Does only minimal interprocedural
                                           analysis and optimization.
                                       1 = Turns on inlining, limited alias
                                           analysis, and limited call-site
                                           tailoring.
                                       2 = Full interprocedural data flow and
                                           alias analysis.
                        list=[filename|short|long]
                                   - Specifies an output listing file name
                                     during the link phase, in the event that
                                     an object listing has been requested
                                     using the -qlist option.  The default
                                     name is "a.lst".  The suboptions short and
                                     long determine which listing sections will
                                     be included.
                        lowfreq=<procedure_names>
                                   - Specifies a comma-separated list of
                                     procedures that are likely to be
                                     called infrequently during the course
                                     of a typical program run.
                        missing={unknown|safe|isolated|pure}
                                   - Specifies the default assumption for
                                     procedures not compiled with -qipa.
                        noinline=<procedure_names>
                                   - Specifies a comma-separated list of
                                     procedures which are not to be inlined.
                        noobject   - Speeds up compilation, but the object
                                     files cannot be used in non-IPA
                                     compilations.  This option is ignored if
                                     -S has been specified.
                        partition={small|medium|large}
                                   - Specifies the size of program sections
                                     that are analyzed together.  Larger
                                     partitions may produce better analysis but
                                     require more storage.
                        pure=<procedure_names>
                                   - Specifies a comma-separated list of
                                     procedures not compiled with -qipa and
                                     that are "isolated", "safe", and do not
                                     modify any data objects that are visible
                                     to the caller.
                        safe=<procedure_names>
                                   - Specifies a comma-separated list of
                                     procedures not compiled with -qipa and
                                     that do not call any other part of the
                                     program.
                        stdexits   - Specifies that compiler-defined exit
                                     routines can be optimized as with the
                                     "exits" suboption.  The procedures are
                                     abort, exit, _exit, and _assert.
                        nothreads    Single threaded invocation of the compiler
                                     backend.
                        threads      Compiler decides the number of threads
                                     used to invoke the compiler backend.
                        threads=<n>  Up to 'n' threads can be used to invoke
                                     the compiler backend.
                        unknown=<procedure_names>
                                   - Specifies a comma-separated list of
                                     procedures not compiled with -qipa and
                                     that may update global variables and
                                     dummy arguments and call other parts of
                                     the program compiled with -qipa.
                        The following options are intended for use by the
                        link-time phase of -qipa:
                        -qlibansi  - Assumes that all functions with the name
                                     of an ANSI C defined library function are,
                                     in fact, the library functions.
                                     -qnolibansi is the default.
                        -qlibessl  - Assumes that all functions with the name
                                     of an ESSL defined library functions are,
                                     in fact, the library functions.
                                     -qnolibessl is the default.
                        -qlibposix - Assumes that all functions with the name
                                     of a POSIX 1003.1 defined library function
                                     are, in fact, the system functions.
                                     -qnolibposix is the default.
          isolated_call=<name1>:<name2>: ...
                      Specify that the calls to the functions listed have no
                      side effects. <name1> and <name2> are function names.
                      The user may specify as many function names as
                      necessary.
          keyword=<keywords>
                      Enables the use of specific keywords.
          langlvl={<langlvl>|<feature>}[:<langlvl>|<feature>]...
                      Specify language level and/or features to be enabled
                      during compilation.
                      <langlvl>
                              can be extc89, stdc89, extc99, stdc99,
                              ansi, saal2, saa, extended, or classic.
                      <feature>
                              can be:
                              [no]ucs   enables or disables support for
                                        universal character names.
          maxerr=<num>[:<sev>]
                      Instructs the compiler to halt compilation when <num>
                      errors of <sev> or greater severity is reached.  The
                      default for <sev> is current value of the -qhalt option.
          maxmem=<num>
                      Limit the amount of memory used by space intensive
                      optimizations to <num>.  <num> specified in kilobytes.
          optimize=<level>
                      Enables different levels of optimization.
                      2       Same as -O and -qoptimize.
                      3       Same as -O3. Aggressive optimization.
                      4       Same as -O4. Internally generates -O3 -qipa
                              with automatic architecture and tuning option
                              generation.
                      5       Same as -O5. Internally generates -O3
                              -qipa=level=2 with automatic architecture and
                              tuning option generation.
          procimported=<name1>:<name2>: ...
                      Specify which functions are imported.  If no filenames
                      are specified, all invoked functions are assumed to be
                      defined outside the current file.  The last explicit
                      specification for a function takes precedence.
          proclocal=<name1>:<name2>: ...
                      Specify which functions are local.
                      If no filenames are specified, all invoked functions
                      are assumed to be defined within the current file.
                      The last explicit specification for a function takes
                      precedence.
          procunknown=<name1>:<name2>: ...
                      Specify which functions are unknown to be local or
                      imported.  If no filenames are specified, all functions
                      called are assumed to be unknown. This is the default
                      when no user options are specified. The last explicit
                      specification for a function takes precedence.
          profile=<option>
                      Sets up the object files produced by the compiler for
                      profiling.
                      The available options are:
                      ibm     Generate profiling support code for use with the
                              Performance Analysis tool in VisualAge C++.
                      p       Generate profiling support code.  Same as -p.
                      pg      Generate profiling support code including BSD
                              profiling support.  Same as -pq.
          smp[=suboption[:suboption] [ ... ]]
                      Controls acceptance of OpenMP directives and
                      automatic parallelization.  The auto and omp suboptions
                      are opposites. i.e. -qsmp=omp means strict adherance
                      to the OpenMP standard with no automatic parallelization.
                      [no]auto
                              Enables or disables automatic parallelization.
                      [no]explicit
                              Enables or disables explicit parallelization.
                      [no]opt
                              Turns off the implied optimization to allow
                              simpler debugging.
                      schedule=<sched_type>[=n]
                              Specifies what kind of scheduling algorithms
                              and chunking are used for loops to which no
                              other scheduling algorithm has been explicitly
                              assigned in the source code.
                              Valid options for <sched_type> are:
                                         * dynamic[=n]
                                         * guided[=n]
                                         * static[=n]
                                         * affinity[=n]
                                         * runtime
                              For more information, see online documentation.
                      [no]nested_par
                              Enables or disables parallelization of nested
                              parallel constructs.
                      [no]rec_locks
                              Specifies whether recursive or regular locks
                              should be used to implement critical sections.
                      [no]omp Enables or disables strict OpenMP mode.
          spill=<size>
                      Specify the size of the register allocation spill area.
          suppress=<msg_num>:<msg_num>...
                      Suppress compiler messages.
          nosuppress
                      Don't suppress compiler messages.
          symtab=<options>
                      Controls symbol table.
                      The available options are:
                      unref   Specifies that all typedef declarations, struct,
                              union, and enum type definitions are included
                              for processing by the debugger.  Same as
                              -qdbxextra.
                      static  Adds user-defined, nonexternal names that have a
                              persistent storage class, such as initialized
                              and uninitialized static variables, to the name
                              list (the symbol table of xcoff objects).  Same
                              as -qstatsym.
          tabsize=<size>
                      Changes the length of tabs in your source file.
          tbtable=<option>
                      Generate a traceback table for each function and
                      place it in the text segment at the end of the
                      function code.
                      The available options are:
                      none    No traceback table is generated.
                      full    A full traceback table is generated.
                              This is the default with -g specified.
                      small   A traceback table is generated with no name or
                              parameter information.
                              This is the default when -g is NOT specified.
          tune=<option>
                      Specifies the architecture system for which the
                      executable program is optimized.
                      The available options are:
                      403     Produce an object optimized for all the
                              PowerPC 403 processors.
                              Use -qfloat=emulate to emulate the floating-point
                              instructions omitted by the 403 processor.
                      601     Produce an object optimized for all the
                              PowerPC 601 processors.
                      602     Produce an object optimized for all the
                              PowerPC 602 processors.
                      603     Produce an object optimized for all the
                              PowerPC 603 processors.
                      604     Produce an object optimized for all the
                              PowerPC 604 processors.
                      p2sc    Produce an object optimized for all the
                              p2sc processors.
                      pwr     Produce an object optimized for the POWER
                              hardware platform.
                      pwr2    Produce an object optimized for the
                              POWER2 hardware platform.
                      pwr2s   Produce an object optimized for the
                              POWER2 hardware platform, avoiding certain
                              quadruple-precision instructions that would
                              slow program performance.
                      pwrx    Same as pwr2.
                      rs64a   Produce an object optimized for the rs64a
                              processor.
                      rs64b   Produce an object optimized for the rs64b
                              processor.
                      rs64c   Produce an object optimized for the rs64c
                              processor.
                      pwr3    Produce an object optimized for the POWER3
                              processor.
                      pwr4    Produce an object optimized for the POWER4
                              processor.
          unroll={yes|no|auto}
                      yes     Hint for the compiler to try to unroll loops.
                      no      Force the compiler not to unroll any loops.
                      auto    Let the compiler decide whether to unroll loops.
          unroll      same as unroll=yes
          nounroll    same as unroll=no
          xref=full   Produce a cross-reference listing containing all names,
                      whether referenced or not; output goes to .lst file.

  Environment Variables
     1.OBJECT_MODE changes the compilation-mode behavior, unless overridden by
                   configuration file or command-line options

        Setting

         not set   32-bit compiler mode.
          32       32-bit compiler mode.
          64       64-bit compiler mode.
         32_64     Fatal error and stop, unless an explicit configuration
                   file or command-line compiler-mode setting exists.
        any other  Fatal error and stop, unless an explicit configuration
                   file or command-line compiler-mode setting exists.

  For a detailed description of each option, please refer to the online
  documentation.
unlink: /tmp/xlcW0zRzH7a
unlink: /tmp/xlcW1zRzH7b
unlink: /tmp/xlcW2zRzH7c
configure:2118: $? = 249
configure:2120: /usr/vac/bin/cc -V </dev/null >&5
/usr/bin/pg /usr/vac/exe/default_msg/vac.help 
  C for AIX Compiler, Version 6

  Usage:
     xlc [ option | inputfile ]...
     cc [ option | inputfile ]...
     c89 [ option | inputfile ]...
     xlc128 [ option | inputfile ]...
     cc128 [ option | inputfile ]...
     xlc_r [ option | inputfile ]...
     cc_r [ option | inputfile ]...
     xlc_r4 [ option | inputfile ]...
     cc_r4 [ option | inputfile ]...
     xlc_r7 [ option | inputfile ]...
     cc_r7 [ option | inputfile ]...

  Description:
     The xlC and related commands compile C and C++ source files.
     They also processes assembler source files and object files. Unless the
     -c option is specified, xlC calls the linkage editor to produce a
     single object file. Input files may be any of the following:
       1. file name with .c suffix: C source file
       2. file name with .i suffix: preprocessed C or C++ source file
       3. file name with .o suffix: object file for ld command
       4. file name with .s suffix: assembler source file
       5. file name with .so suffix: shared object file

  Options:
     Options can be flag options or keyword options:

       1. Flag options:

        -#        Display language processing commands but do
                  not invoke them; output goes to stdout.
        -bdynamic, -bstatic
                  Determines which types of library files are searched by
                  the linkage editor.
        -brtl     Tells the linkage editor to accept both .so and .a
                  library file types.
        -B<prefix>
                  Construct alternate compiler/assembler/linkage editor
                  program names. <prefix> is added to the beginning of
                  the standard program names.
        -c        Do not send object files to the linkage editor.
        -C        Write comments to output when doing preprocessing,
                  used with -E and -P.
        -D<name>[=<def>]
                  Define <name> as in #define directive. If <def> is
                  not specified, 1 is assumed.
        -E        Preprocess but do not compile; output goes to stdout
        -f<filename>
                  Passes to the linkage editor the filename of a file
                  containing a list of input files to be processed.
        -F<x>[:<stanza>]
                  Use alternate configuration file <x> with optional
                  <stanza>. If <stanza> is not specified, the assumed stanza
                  is the name of the command used to invoke the compiler.
        -g        Produce information for the debugger.
        -G        Tells the linkage editor to create a dynamic library.
        -I<dir>   Search in directory <dir> for include files that
                  do not start with an absolute path.
        -l<key>   Search the specified library file,
                  where <key> selects the file lib<key>.a.
        -L<dir>   Search in directory <dir> for files specified by -l<key>.
        -ma       Generate inline calls to the "alloca" function as if
                  "#pragma alloca" directives were in the source file.
        -M        Generate information to be included in a "make"
                  description file; output goes to .u file.
        -o<name>  Name the executable file <name> instead of a.out.
                  When used with the -c option and one source file,
                  name the object file <name> instead of filename.o.
                  If <name> is the name of a directory, files generated by
                  the compiler will be placed into that directory.
        -O        Optimize generated code.
        -O2       Same as -O.
        -O3       Perform some memory and compile time intensive
                  optimizations in addition to those executed with -O2.
                  The -O3 specific optimizations have the potential to
                  alter the semantics of a user's program.
                  The compiler guards against these optimizations at -O2
                  and the option -qstrict is provided at -O3 to turn off
                  these aggressive optimizations.
        -O4       Equivalent to -O3 -qipa with automatic generation of
                  architecture and tuning option ideal for that platform.
        -O5       Equivalent to -O3 -qipa=level=2 with automatic
                  generation of architecture and tuning option ideal for
                  that platform.
        -p        Generate profiling support code.  Same as -qprofile=p.
        -pg       Generate profiling support code including BSD
                  profiling support.  Same as -qprofile=pg.
        -P        Preprocess but do not compile; output goes to .i file.
        -Q<x>, -qinline<x>
                  Inline all appropriate functions where x can be
                  one of the following:
                    !       Not inline any function (equivalent to -qnoinline)
                    =<lc>   Inline if number of source statement in
                            function is less than the number specified
                            in <lc>.
                    -<nm>   Not inline function listed by names in <nm>
                    +<nm>   Attempt to inline function listed by names
                            in <nm>.
        -r        Produce the output file without linking any library.
        -S        Produce a .s file for any source file processed by the
                  compiler.
        -t<x>     Apply prefix from the -B option to the specified program <x>,
                  where x can be one or more of the following:
                    a = assembler
                    b = compiler backend
                    c = compiler frontend
                    i = compiler inliner
                    I = inter-procedural analysis - compile phase
                    l = linkage editor
                    L = inter-procedural analysis - link phase.
                    p = preprocessor
        -U<name>  Undefine name as in #undef directive.
        -v        Displays language processing commands as they
                  are invoked by xlc; output goes to stdout.
        -V        Displays commands as they are invoked by xlC;
                  output goes to stdout.
        -w        Suppress informational, language-level, and
                  warning messages.
        -W<x,y>   Give the options <y> to the compiler program <x>
                  where x can be one or more of the following:
                    <a,b,c,f,I,l,L,p>
        -y<x>     Specify compile-time rounding of constant floating-point
                  expressions, where <x> can be one of the following:
                    m = round toward minus infinity
                    n = round to nearest
                    p = round toward positive infinity
                    z = round toward zero.

       2. Keyword options:

          Keyword options are specified in one of the following ways:

          -q<option>
          -q<option>=<parameter>
          -q<option>=<parameter>:<parameter>

          where <option> is an option name and <parameter> is a
          parameter value.
          Keyword options with no parameters represent switches
          that may be either on or off. The keyword by itself turns
          the switch on, and the keyword preceded by the letters NO
          turns the switch off. For example, -qLIST tells the
          compiler to produce a listing and -qNOLIST tells the
          compiler not to produce a listing. If an option that
          represents a switch is set more than once, the compiler
          uses the last setting.

          Keyword option and parameter names may appear in either
          UPPER CASE or lower case letters in the xlc command.


          Options without parameters:

          32          Selects 32-bit compiler mode.
          64          Selects 64-bit compiler mode.
          ansialias   Use type-based aliasing during optimization.
          compact     Reduce code size where possible, at the expense
                      of execution speed.  Code size is reduced by
                      inhibiting optimizations that replicate or expand
                      code inline.
          cpluscmt    Permit "//" to introduce a comment that lasts
                      until the end of the current source line, as in C++.
          dbcs        String literals and comments can contain DBCS
                      characters (same as mbcs option).
          dbxextra    Generate symbol table information for unreferenced
                      variables. By default such information is not generated
                      thus reducing the size of the executable compiled with
                      the "-g" option.  Same as -qsymtab=unref.
          digraph     Allow special digraph
          dollar      Allow '$' as an identifier character
          dpcl        Generates symbols for tools based on the Dynamic
                      Probe Class Library (DPCL)
          extchk      Perform external name type-checking and function
                      call checking.
          fdpr        Collect information about programs for use with
                      the AIX fdpr (Feedback Directed Program Restructuring)
                      performance-tuning utility.
          flttrap     Generate instructions to trap floating-point
                      exceptions.
          fold        Specifies that constant floating-point expressions
                      are to be evaluated at compile time.
          fullpath    Specifies the path information stored for files when
                      you use "-g" and the symbolic debugger.
          funcsect    Place instructions for each function in a separate csect.
          heapdebug   Enables debug versions of memory management functions.
          hot         Determines whether or not to perform high-order
                      transformations on loops during optimization.
          idirfirst   Specify the search order for files included with
                      the #include "file_name" directive.  Use -qidirfirst
                      with the -Idirectory option.  If -qidirfirst option
                      is specified, the directories specified by the
                      -Idirectory option are searched before the directory
                      where the current file resides.
          ignerrno    Tell the optimizer that the program will never
                      refer to or set errno.  This allows additional
                      optimizations.
          inlglue     Generate fast external linkage by inlining the
                      code (pointer glue code) necessary at calls
                      via a function pointer and calls to external
                      procedures.
          largepage   Take advantage of 16M pages, which will allow for
                      reduced TLB entries and allow hardware prefetching
                      to be done more efficiently.
          ldbl128     Increase long double size from 64 to 128 bits.
          libansi     Assumes that all functions with the name of an
                      ANSI C library functions are in fact the system functions.
          linedebug   Generates abbreviated line number and source file name
                      information for the debugger.
          list        Produce an object listing; output goes to .lst file.
          listopt     Display the settings of all options; output goes
                      to .lst file.
          longdouble  Increase long double size from 64 to 128 bits.
          longlit     Changes implicit type selection for integer constants in
                      64-bit mode.
          longlong    Allow long long integers.
          macpstr     Allow '\p' as the first character of a string constant
                      which will be replaced by the length in bytes.
          makedep     Creates an output file that contains targets suitable for
                      inclusion in a description file for the AIX make command.
          mbcs        String literals and comments can contain DBCS
                      characters (same as dbcs option).
          mkshrobj    Create a shared object from generated object files.
          noprint     Direct listing to /dev/null.
          nostdinc    Specify which files are included with the #include
                      "file_name" and #include <file_name> directives.
                      If -qnostdinc is specified, the /usr/include directory
                      is not searched.
          optimize    Same as O and O2. Perform optimization that is the
                      mix between speed and size.  (If -qnooptimize is
                      specified, it is equivalent to -qoptimize=0.)
          pascal      Accept and ignore the keyword 'pascal' as a
                      type modifier.
          pdf1, pdf2  Perform aggressive optimizations with profile
                      directed feedback.
          phsinfo     Produce compiler phase information; output goes to
                      stdout.
          proto       Assert that procedure call points agree
                      with their declarations even if the procedure has
                      not been prototyped. This allows the caller to
                      pass floating point arguments in floating point
                      registers instead of general purpose registers.
          report      Adds information to the listing file on the loop
                      transformations that have been carried out.
                      This option requires either -qhot or -qsmp
                      in order to have effect.
          ro          Put string literals in read only area.
          roconst     Put constant values in read only area.
          showinc     Include the source of all included files in the
                      source listing, if the SOURCE option is in effect.
          smallstack  Reduce the size of the stack frame, allowing better use
                      of a limited stack size.
          source      Produce a source listing; output goes to .lst file.
          srcmsg      Reconstruct source lines in error along with the
                      diagnostic messages in the stderr file.
          statsym     Adds user-defined, nonexternal names that have a
                      persistent storage class, such as initialized and
                      uninitialized static variables, to the name