ABICC(1)ABICC(1) NAME abicc - ABI C compiler SYNOPSIS abicc [-Aname [tokens]] [-B option] [-C] [-c] [-D name [=value]] [-d link] [-E] [-G] [-g] [-H] [-I dir] [-K codegen] [-L dir] [-l name] [-O] [-o pathname] [-P] [-Q id] [-q c] [-S] [-v] [-W1 arg] [-X arg] file IMPLEMENTATION IRIX systems DESCRIPTION The abicc command 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. This command also hides the details of constructing an ABI application on IRIX systems. The details of exactly how the native c constructs an ABI application could change; therefore, abicc should be used to compile all ABI-compliant programs to insure portability. The following options are recognized by abicc. -A name[tokens] Controls #assert mechanisms. -B option Specifies archives and symbols. option can be one of the following values: static Look only for static archives during link phase. 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. export [=name], [filename] 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. When used with optional name, marks the symbols given by the list of names as exported. If any symbols are exported by this mechanism then all unspecified symbols are automatically hidden. filename contains a list of symbols that should be exported. Any symbols not specifically exported are automatically hidden. 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 are automatically hidden. hide [=name] 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. When used with the optional name argument, marks the symbols given by the list of names as hidden. Ignored if any symbols are exported by the -B export=name option or -B exports_file=filename option. 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 option or -B exports_file=filename option. 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. rpath=path Specifies the rpath pathname when linking -shared (an IRIX cc option) or when using the -G option. path is a directory. The dynamic linker searches the named directory first. -C Suppresses comment removal when combined with -P or -E options. Not meaningful otherwise. -c Suppresses the linking phase. -D name[=value] Defines name to the preprocessor, as if by a C- language #define directive. If a value is not given, a value of 1 is used. -d link Specifies the type of linking. y specifies dynamic linking (default). n specifies static linking. Statically linked applications are not MIPS ABI conformant. -E Preprocess only (no compilation or linking). -G Directs the linker to produce a shared object. When using the -G option, also specify the outfile file name using -o file.so and the .so name using -Wl,-soname,file.so. -g Generates symbolic debug information. -H Prints include file names as they are processed. Suppresses compilation (the output is similar to the -E option). -I dir Changes the algorithm for searching for headers whose names are not absolute pathnames. The algorithm is changed to look in the directory named by dir before looking in the usual places. Directories named in -I options are searched in the order specified. -K codegen Specifies code generation options. codegen can have the following values: PIC Generate Position Independent Code. This is implied on the Reference Platform. uchar Treat the char data type as unsigned. This is the default. schar Treat the char data type as signed. 32 Generate a 32-bit object. This is the default. Defaults to -K 32. 64 Generate a 64-bit object. Defaults to -K mips3. mips1 Generate code using the MIPS I instruction set of the R2000/R3000 RISC architecture. Defaults to -K 32. mips2 Generate code using the MIPS II instruction set (MIPS 1 + R4000 specific extensions). Defaults to -K 32. mips3 Generate code using the MIPS III (R4000) instruction set. Defaults to -K 64. mips4 Generate code using the MIPS IV (R10000,R5000,R8000) instruction set. Defaults to -K 64. xgot Generate code for the extended GOT model. This model is not recommended. Many archives are not available in xgot form. -L dir Controls library search path at linking phase. Passed through to ld. -l name Searches library specified by name. -O Does compilation phase optimization. -o pathname Names the output file. -P Performs only preprocessing on the named files, leaving the result on corresponding files suffixed .i. -S Suppresses 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 is not defined. -v Verbose mode. -Wl,arg[,arg2...] Pass options directly to the linker. No unquoted spaces are allowed in this option. -X arg Specifies data. arg can have the following value: readwrite_const const data is placed in writable memory. 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. 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 (when there is a conflict). a ANSI compilation mode (default). Defines __STDC__ to be 1. c ANSI conformance mode. Defines __STDC__ to be 1. t Transition mode. Does not define __STDC__. If no -X option is specified, the default is -xansi mode with ABI additions. See the NOTE below for more information. An ABI application can not be produced with the t mode, as the ABI requires ANSI C. NOTES The options described previously indicate a space character between options and arguments. This is in accordance with X/Open recommendations for portable applications. abicc also supports placing the argument in the same string with no space. If the argument is optional, no space is allowed and this is reflected in the described syntax. 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 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. The i-K 32 option may only be combined with -K mips1 or -K mips2; -K 64 may only be combined with -K mips3 or -K mips4. FILES /usr/lib64/abi/sgicc.cfg /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) abi(5) MIPS Processor ABI Conformance Guide UNIX System V Release 4 Programmer's Reference Manual