Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ abicc(1) — IRIX 6.5.3f

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

abild(1)

check_abi_compliance(1)

check_abi_interface(1)

check_for_syscalls(1)



ABICC(1)                                                              ABICC(1)



NAME
     abicc - ABI C compiler

SYNOPSIS
     abicc [ option ] ...  file ...

DESCRIPTION
     abicc is a wrapper shell script for cc for compiling MIPS ABI
     applications.  It translates a common subset of the SVR4 SGS (Software
     Generation System) flags and arguments to those of the native IDO (IRIS
     Development Option).  By the use of this wrapper, applications which link
     "on-site" on a target platform are isolated from having to know the
     details of invoking that platform's compilation system.

     abicc also serves to hide the details of constructing an ABI application
     on IRIX.  The details of exactly how the native cc constructs an ABI
     application are not guaranteed to remain unchanged, so abicc should be
     used to compile all ABI-compliant programs to insure portability.

OPTIONS
     The following options are recognized by abicc; options which are not
     applicable are (generally) silently ignored.  Further details available
     in the UNIX System V Release 4 Programmer's Reference Manual.

     -A  name[(tokens)]
           controls #assert mechanisms

     -B static
           look only for static archives during link phase

     -B dynamic
           look for DSOs first, then static archives. during link phase

     The -B static and -B dynamic options serve as toggles and can be
     specified multiple times on a command line.

     -B symbolic
          when building a shared object, bind references to global symbols to
          their definitions within the object

     -B symbolic=name,...
          when creating a DSO, bind references to the named symbols to their
          definitions within the object.  Not supported at at present.

     -B symbolicfile=filename
          when creating a DSO, the file filename contains a list of symbols
          that should be bound to their definitions within the object if there
          is a definition in the object.  Not supported at present.

     -B export
          when creating a DSO, indicates that symbols from the next object,
          archive, or DSO are exported from the DSO being created.  This is



                                                                        Page 1





ABICC(1)                                                              ABICC(1)



          the default for an object but not for an archive or DSO.

     -B export=name,...
          when creating a DSO, marks the symbols given by the list of names as
          exported.  If any symbols are exported by this mechanism then all
          unspecified symbols will be automatically hidden.  filename contains
          a list of symbols that should be exported.  Any symbols not
          specifically exported will be automatically hidden.

     -B exportsfile=filename
          when creating a DSO, the file given by filename contains a list of
          symbols that should be exported.  Any symbols not specifically
          exported will be automatically hidden.

     -B hide
          when creating a DSO, indicates that symbols from the next object,
          archive, or DSO are hidden in the DSO being created.  This is the
          default for an archive or DSO but not for an object.

     -B hide=name,...
          when creating a DSO, marks the symbols given by the list of names as
          hidden.  Ignored if any symbols are exported by the
          -B export=name,...  or -B exportsfile=filename options.

     -B hidesfile=filename
          when creating a DSO, the file given by filename contains a list of
          symbols that should be hidden.  Ignored if any symbols are exported
          by the -B export=name,...  or -B exportsfile=filename options.

     -B nolibraryreplacement
          Turns on a flag in the dynamic section so that rld does not allow
          execution time or runtime changing of the path (except for super
          user) to find the shared objects. Typically used for security
          purposes on system utilities.

     -B rpath=PATH
          PATH is a directory.  Specifies the rpath pathname when linking
          -shared (an IRIX cc option) or when using the -G option.  The
          dynamic linker will search the named directory first.


     -C   suppresses comment removal when combined with -P or -E options. Not
          meaningful otherwise.

     -b   This SVR4 option is silently ignored.

     -c   suppresses linking phase.

     -D name[=tokens]
          defines name to the preprocessor, as if by a C-language #define
          directive. If an =value is not given, a value of 1 is used.




                                                                        Page 2





ABICC(1)                                                              ABICC(1)



     -d y specifies dynamic linking.  This is the default.

     -d n specifies static linking.  Statically linked applications are not
          MIPS ABI conforming.

     -E   preprocess only (no compilation or linking).

     -f   (obsolete, ignored)

     -G   direct linker to produce shared object.  When using the -G option,
          one usually also specifies the outfile file name using, -o file.so
          and  the "soname" using, -Wl,-soname,file.so

     -g   generate symbolic debug information.

     -H   prints include file names as they are processed.  Suppresses
          compilation (the output is much like  the -E option).

     -I dir
          changes the algorithm for searching for headers whose names are not
          absolute pathnames to look in the directory named by directory
          before looking in the usual places.  Directories named in -I options
          will be searched in the order specified.

     -J sfm
          not supported, silently ignored

     -K PIC
          generate Position Independent Code.  This is implied on the
          Reference Platform.

     -K uchar
          The compiler wil treat the char data type as unsigned.  This is the
          default, as specified in the MIPS Processor ABI Supplement .

     -K schar
          The compiler wil treat the char data type as signed.

     -K 32
          generate a 32-bit object. This is the default.  Defaults to -K mips1
          .

     -K 64
          generate a 64bit object.  Defaults to -K mips3 .

     -K mips1
          generate code using the MIPS I instruction set of the R2000/R3000
          RISC architecture.  Defaults to -K 32 .

     -K mips2
          generate code using the MIPS II instruction set (MIPS 1 + R4000
          specific extensions). Defaults to -K 32 .



                                                                        Page 3





ABICC(1)                                                              ABICC(1)



     -K mips3
          generate code using the MIPS III (R4000) instruction set.  Defaults
          to -K 64 .

     -K mips4
          generate code using the MIPS IV (R10000,R5000,R8000) instruction
          set.  Defaults to -K 64 .

     -K fpe
          not supported, silently ignored

     -K mau
          not supported, silently ignored

     -K sd
          not supported, silently ignored

     -K sz
          not supported, silently ignored

     -K minabi
          not necessary; abicc will by definition restrict references to ABI
          references.

     -K xgot
          generate code for the extended GOT model.  This model is not
          recommended.  Many archives are not available in xgot form.

     -X readwriteconst
          const data is placed in writable memory.

     -X readonlyconst
          const data may be placed in readonly memory (this is the default).
          ANSI C says that if an application attempts to write into const data
          the behavior is undefined.

     -X xpg
          directs the compiler to set the global variable xpg4 to 1; this
          indicates that libraries should provide behavior compatible with the
          X/Open Single UNIX(TM) Specification rather than the default
          traditional behavior where there is a conflict.

     -L  dir
          controls library search path at linking phase Passed through to ld.

     -l  name
          search specified library

     -O   do compilation phase optimization.






                                                                        Page 4





ABICC(1)                                                              ABICC(1)



     -o  pathname
          names output file

     -P   perform only preprocessing on the named files , leaving the result
          on corresponding files suffixed .i.

     -p   is no longer supported.  For profiling see speedshop(1). Programs
          with -p profiling generated in them are not ABI conformant:
          profiling should only be done on a development platform.

     -Q n suppresses compiler identification information in the output
          file(s).  Ignored on IRIX.

     -Q y generates compiler identification information in the output file(s).
          Ignored on IRIX.

     -q  c
          controls generation of profiling code; c can be l or p.  Ignored on
          IRIX.

     -S   suppress assembly and linking (leaves assembler file).

     -U  name
          causes specified name to be undefined, as if by a C-language #undef
          directive.  -U takes precedence over -D , so if both are present for
          a name on the command line, name will not be defined.

     -v   verbose mode.

     -V   prints compiler version information.  Ignored on IRIX.

     -Wl,arg[,arg2...]
          passes options directly to the linker. No un-quoted spaces are
          allowed anywhere in this option.

     -X a ANSI compilation mode (default).  Defines __STDC__ to be 1.

     -X c ANSI conformance mode.  Defines __STDC__ to be 1.

     -X t transition mode.  Does not define __STDC__.

     If no -X option is specified, the default will be -X a (actually, the
     IRIX -xansi mode with ABI additions, see NOTE below).  An ABI application
     can not be produced with the -X t mode, as the ABI requires ANSI C.

     -Y   not supported, generates a warning message

NOTES
     The OPTIONS section above indicates a space character between options and
     option-arguments.  This is in accordance with X/Open recommendations for
     portable applications.  abicc also supports placing its option-argument
     in the same string with no space.  If the option-argument is optional, no



                                                                        Page 5





ABICC(1)                                                              ABICC(1)



     space is allowed and this is reflected in the OPTIONS section.

     The default mode for abicc closely matches the -xansi mode documented in
     the cc(1) man page. In addition to the defined symbols listed there,
     ABISOURCE is defined, the IRIX cc -G 0 option is selected, and
     /usr/include/abi is inserted at the front of the standard include path.
     Only /usr/lib/abi is searched for libraries if -K 32.  Only
     /usr/lib64/abi is searched for libraries if -K 64.

     -K 32 may only be combined with -K mips1 or -K mips2 . -K 64 may only be
     combined with -K mips3 or -K mips4 .

FILES
     /usr/lib/abi    ABI libraries and configuration files
     /usr/lib/mips2/abi    ABI libraries
     /usr/lib64/abi    ABI libraries
     /usr/lib64/mips3/abi    ABI libraries
     /usr/lib64/mips4/abi    ABI libraries
     /usr/include/abi        special ABI include files
     /usr/lib/abi/setup      abicc setup file
     /usr/lib/abi/sgicc.cfg  IRIX abicc config file

SEE ALSO
     abild(1), check_abi_compliance(1), check_abi_interface(1),
     check_for_syscalls(1)
     MIPS Processor ABI Conformance Guide
     UNIX System V Release 4 Programmer's Reference Manual
     http://www.mipsabi.org has the MIPS ABI documents.



























                                                                        Page 6



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