ABICC(1) ABICC(1)
abicc - ABI C compiler
abicc [ option ] ... file ...
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.
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 symbolic_file=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 exports_file=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 exports_file=filename options.
-B hides_file=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 exports_file=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 readwrite_const
const data is placed in writable memory.
-X readonly_const
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
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,
_ABI_SOURCE 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 .
/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
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.
PPPPaaaaggggeeee 6666 [ Back ]
|