abicc(1)
abicc - ABI C compiler
As shipped in IRIX 6.5. First release of IRIX 6.5.
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 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 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. -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 . -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. -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 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 . 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.