diff options
Diffstat (limited to 'gcc/gcc.info-5')
-rw-r--r-- | gcc/gcc.info-5 | 836 |
1 files changed, 0 insertions, 836 deletions
diff --git a/gcc/gcc.info-5 b/gcc/gcc.info-5 deleted file mode 100644 index dcf6541be8c..00000000000 --- a/gcc/gcc.info-5 +++ /dev/null @@ -1,836 +0,0 @@ -This is Info file gcc.info, produced by Makeinfo version 1.68 from the -input file gcc.texi. - - This file documents the use and the internals of the GNU compiler. - - Published by the Free Software Foundation 59 Temple Place - Suite 330 -Boston, MA 02111-1307 USA - - Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997 Free -Software Foundation, Inc. - - Permission is granted to make and distribute verbatim copies of this -manual provided the copyright notice and this permission notice are -preserved on all copies. - - Permission is granted to copy and distribute modified versions of -this manual under the conditions for verbatim copying, provided also -that the sections entitled "GNU General Public License," "Funding for -Free Software," and "Protect Your Freedom--Fight `Look And Feel'" are -included exactly as in the original, and provided that the entire -resulting derived work is distributed under the terms of a permission -notice identical to this one. - - Permission is granted to copy and distribute translations of this -manual into another language, under the above conditions for modified -versions, except that the sections entitled "GNU General Public -License," "Funding for Free Software," and "Protect Your Freedom--Fight -`Look And Feel'", and this permission notice, may be included in -translations approved by the Free Software Foundation instead of in the -original English. - - -File: gcc.info, Node: DEC Alpha Options, Next: Clipper Options, Prev: Intel 960 Options, Up: Submodel Options - -DEC Alpha Options ------------------ - - These `-m' options are defined for the DEC Alpha implementations: - -`-mno-soft-float' -`-msoft-float' - Use (do not use) the hardware floating-point instructions for - floating-point operations. When `-msoft-float' is specified, - functions in `libgcc1.c' will be used to perform floating-point - operations. Unless they are replaced by routines that emulate the - floating-point operations, or compiled in such a way as to call - such emulations routines, these routines will issue floating-point - operations. If you are compiling for an Alpha without - floating-point operations, you must ensure that the library is - built so as not to call them. - - Note that Alpha implementations without floating-point operations - are required to have floating-point registers. - -`-mfp-reg' -`-mno-fp-regs' - Generate code that uses (does not use) the floating-point register - set. `-mno-fp-regs' implies `-msoft-float'. If the floating-point - register set is not used, floating point operands are passed in - integer registers as if they were integers and floating-point - results are passed in $0 instead of $f0. This is a non-standard - calling sequence, so any function with a floating-point argument - or return value called by code compiled with `-mno-fp-regs' must - also be compiled with that option. - - A typical use of this option is building a kernel that does not - use, and hence need not save and restore, any floating-point - registers. - -`-mieee' - The Alpha architecture implements floating-point hardware - optimized for maximum performance. It is mostly compliant with - the IEEE floating point standard. However, for full compliance, - software assistance is required. This option generates code fully - IEEE compliant code *except* that the INEXACT FLAG is not - maintained (see below). If this option is turned on, the CPP - macro `_IEEE_FP' is defined during compilation. The option is a - shorthand for: `-D_IEEE_FP -mfp-trap-mode=su -mtrap-precision=i - -mieee-conformant'. The resulting code is less efficient but is - able to correctly support denormalized numbers and exceptional - IEEE values such as not-a-number and plus/minus infinity. Other - Alpha compilers call this option `-ieee_with_no_inexact'. - -`-mieee-with-inexact' - This is like `-mieee' except the generated code also maintains the - IEEE INEXACT FLAG. Turning on this option causes the generated - code to implement fully-compliant IEEE math. The option is a - shorthand for `-D_IEEE_FP -D_IEEE_FP_INEXACT' plus the three - following: `-mieee-conformant', `-mfp-trap-mode=sui', and - `-mtrap-precision=i'. On some Alpha implementations the resulting - code may execute significantly slower than the code generated by - default. Since there is very little code that depends on the - INEXACT FLAG, you should normally not specify this option. Other - Alpha compilers call this option `-ieee_with_inexact'. - -`-mfp-trap-mode=TRAP MODE' - This option controls what floating-point related traps are enabled. - Other Alpha compilers call this option `-fptm 'TRAP MODE. The - trap mode can be set to one of four values: - - `n' - This is the default (normal) setting. The only traps that - are enabled are the ones that cannot be disabled in software - (e.g., division by zero trap). - - `u' - In addition to the traps enabled by `n', underflow traps are - enabled as well. - - `su' - Like `su', but the instructions are marked to be safe for - software completion (see Alpha architecture manual for - details). - - `sui' - Like `su', but inexact traps are enabled as well. - -`-mfp-rounding-mode=ROUNDING MODE' - Selects the IEEE rounding mode. Other Alpha compilers call this - option `-fprm 'ROUNDING MODE. The ROUNDING MODE can be one of: - - `n' - Normal IEEE rounding mode. Floating point numbers are - rounded towards the nearest machine number or towards the - even machine number in case of a tie. - - `m' - Round towards minus infinity. - - `c' - Chopped rounding mode. Floating point numbers are rounded - towards zero. - - `d' - Dynamic rounding mode. A field in the floating point control - register (FPCR, see Alpha architecture reference manual) - controls the rounding mode in effect. The C library - initializes this register for rounding towards plus infinity. - Thus, unless your program modifies the FPCR, `d' corresponds - to round towards plus infinity. - -`-mtrap-precision=TRAP PRECISION' - In the Alpha architecture, floating point traps are imprecise. - This means without software assistance it is impossible to recover - from a floating trap and program execution normally needs to be - terminated. GNU CC can generate code that can assist operating - system trap handlers in determining the exact location that caused - a floating point trap. Depending on the requirements of an - application, different levels of precisions can be selected: - - `p' - Program precision. This option is the default and means a - trap handler can only identify which program caused a - floating point exception. - - `f' - Function precision. The trap handler can determine the - function that caused a floating point exception. - - `i' - Instruction precision. The trap handler can determine the - exact instruction that caused a floating point exception. - - Other Alpha compilers provide the equivalent options called - `-scope_safe' and `-resumption_safe'. - -`-mieee-conformant' - This option marks the generated code as IEEE conformant. You must - not use this option unless you also specify `-mtrap-precision=i' - and either `-mfp-trap-mode=su' or `-mfp-trap-mode=sui'. Its only - effect is to emit the line `.eflag 48' in the function prologue of - the generated assembly file. Under DEC Unix, this has the effect - that IEEE-conformant math library routines will be linked in. - -`-mbuild-constants' - Normally GNU CC examines a 32- or 64-bit integer constant to see - if it can construct it from smaller constants in two or three - instructions. If it cannot, it will output the constant as a - literal and generate code to load it from the data segement at - runtime. - - Use this option to require GNU CC to construct *all* integer - constants using code, even if it takes more instructions (the - maximum is six). - - You would typically use this option to build a shared library - dynamic loader. Itself a shared library, it must relocate itself - in memory before it can find the variables and constants in its - own data segment. - - -File: gcc.info, Node: Clipper Options, Next: H8/300 Options, Prev: DEC Alpha Options, Up: Submodel Options - -Clipper Options ---------------- - - These `-m' options are defined for the Clipper implementations: - -`-mc300' - Produce code for a C300 Clipper processor. This is the default. - -`-mc400' - Produce code for a C400 Clipper processor i.e. use floating point - registers f8..f15. - - -File: gcc.info, Node: H8/300 Options, Next: SH Options, Prev: Clipper Options, Up: Submodel Options - -H8/300 Options --------------- - - These `-m' options are defined for the H8/300 implementations: - -`-mrelax' - Shorten some address references at link time, when possible; uses - the linker option `-relax'. *Note `ld' and the H8/300: - (ld.info)H8/300, for a fuller description. - -`-mh' - Generate code for the H8/300H. - -`-ms' - Generate code for the H8/S. - -`-mint32' - Make `int' data 32 bits by default. - -`-malign-300' - On the h8/300h, use the same alignment rules as for the h8/300. - The default for the h8/300h is to align longs and floats on 4 byte - boundaries. `-malign-300' causes them to be aligned on 2 byte - boundaries. This option has no effect on the h8/300. - - -File: gcc.info, Node: SH Options, Next: System V Options, Prev: H8/300 Options, Up: Submodel Options - -SH Options ----------- - - These `-m' options are defined for the SH implementations: - -`-m1' - Generate code for the SH1. - -`-m2' - Generate code for the SH2. - -`-m3' - Generate code for the SH3. - -`-m3e' - Generate code for the SH3e. - -`-mb' - Compile code for the processor in big endian mode. - -`-ml' - Compile code for the processor in little endian mode. - -`-mrelax' - Shorten some address references at link time, when possible; uses - the linker option `-relax'. - - -File: gcc.info, Node: System V Options, Next: V850 Options, Prev: SH Options, Up: Submodel Options - -Options for System V --------------------- - - These additional options are available on System V Release 4 for -compatibility with other compilers on those systems: - -`-G' - Create a shared object. It is recommended that `-symbolic' or - `-shared' be used instead. - -`-Qy' - Identify the versions of each tool used by the compiler, in a - `.ident' assembler directive in the output. - -`-Qn' - Refrain from adding `.ident' directives to the output file (this is - the default). - -`-YP,DIRS' - Search the directories DIRS, and no others, for libraries - specified with `-l'. - -`-Ym,DIR' - Look in the directory DIR to find the M4 preprocessor. The - assembler uses this option. - - -File: gcc.info, Node: V850 Options, Prev: System V Options, Up: Submodel Options - -V850 Options ------------- - - These `-m' options are defined for V850 implementations: - -`-mlong-calls' -`-mno-long-calls' - Treat all calls as being far away (near). If calls are assumed to - be far away, the compiler will always load the functions address - up into a register, and call indirect through the pointer. - -`-mno-ep' - -`-mep' - Do not optimize (do optimize) basic blocks that use the same index - pointer 4 or more times to copy pointer into the `ep' register, and - use the shorter `sld' and `sst' instructions. The `-mep' option - is on by default if you optimize. - -`-mno-prolog-function' -`-mprolog-function' - Do not use (do use) external functions to save and restore - registers at the prolog and epilog of a function. The external - functions are slower, but use less code space if more than one - function saves the same number of registers. The - `-mprolog-function' option is on by default if you optimize. - -`-mspace' - Try to make the code as small as possible. At present, this just - turns on the `-mep' and `-mprolog-function' options. - -`-mtda=N' - Put static or global variables whose size is N bytes or less into - the tiny data area that register `ep' points to. The tiny data - area can hold up to 256 bytes in total (128 bytes for byte - references). - -`-msda=N' - Put static or global variables whose size is N bytes or less into - the small data area that register `gp' points to. The small data - area can hold up to 64 kilobytes. - -`-mzda=N' - Put static or global variables whose size is N bytes or less into - the first 32 kilobytes of memory. - -`-mv850' - Specify that the target processor is the V850. - -`-mbig-switch' - Generate code suitable for big switch tables. Use this option - only if the assembler/linker complain about out of range branches - within a switch table. - - -File: gcc.info, Node: Code Gen Options, Next: Environment Variables, Prev: Submodel Options, Up: Invoking GCC - -Options for Code Generation Conventions -======================================= - - These machine-independent options control the interface conventions -used in code generation. - - Most of them have both positive and negative forms; the negative form -of `-ffoo' would be `-fno-foo'. In the table below, only one of the -forms is listed--the one which is not the default. You can figure out -the other form by either removing `no-' or adding it. - -`-fpcc-struct-return' - Return "short" `struct' and `union' values in memory like longer - ones, rather than in registers. This convention is less - efficient, but it has the advantage of allowing intercallability - between GNU CC-compiled files and files compiled with other - compilers. - - The precise convention for returning structures in memory depends - on the target configuration macros. - - Short structures and unions are those whose size and alignment - match that of some integer type. - -`-freg-struct-return' - Use the convention that `struct' and `union' values are returned - in registers when possible. This is more efficient for small - structures than `-fpcc-struct-return'. - - If you specify neither `-fpcc-struct-return' nor its contrary - `-freg-struct-return', GNU CC defaults to whichever convention is - standard for the target. If there is no standard convention, GNU - CC defaults to `-fpcc-struct-return', except on targets where GNU - CC is the principal compiler. In those cases, we can choose the - standard, and we chose the more efficient register return - alternative. - -`-fshort-enums' - Allocate to an `enum' type only as many bytes as it needs for the - declared range of possible values. Specifically, the `enum' type - will be equivalent to the smallest integer type which has enough - room. - -`-fshort-double' - Use the same size for `double' as for `float'. - -`-fshared-data' - Requests that the data and non-`const' variables of this - compilation be shared data rather than private data. The - distinction makes sense only on certain operating systems, where - shared data is shared between processes running the same program, - while private data exists in one copy per process. - -`-fno-common' - Allocate even uninitialized global variables in the bss section of - the object file, rather than generating them as common blocks. - This has the effect that if the same variable is declared (without - `extern') in two different compilations, you will get an error - when you link them. The only reason this might be useful is if - you wish to verify that the program will work on other systems - which always work this way. - -`-fno-ident' - Ignore the `#ident' directive. - -`-fno-gnu-linker' - Do not output global initializations (such as C++ constructors and - destructors) in the form used by the GNU linker (on systems where - the GNU linker is the standard method of handling them). Use this - option when you want to use a non-GNU linker, which also requires - using the `collect2' program to make sure the system linker - includes constructors and destructors. (`collect2' is included in - the GNU CC distribution.) For systems which *must* use - `collect2', the compiler driver `gcc' is configured to do this - automatically. - -`-finhibit-size-directive' - Don't output a `.size' assembler directive, or anything else that - would cause trouble if the function is split in the middle, and the - two halves are placed at locations far apart in memory. This - option is used when compiling `crtstuff.c'; you should not need to - use it for anything else. - -`-fverbose-asm' - Put extra commentary information in the generated assembly code to - make it more readable. This option is generally only of use to - those who actually need to read the generated assembly code - (perhaps while debugging the compiler itself). - - `-fverbose-asm' is the default. `-fno-verbose-asm' causes the - extra information to be omitted and is useful when comparing two - assembler files. - -`-fvolatile' - Consider all memory references through pointers to be volatile. - -`-fvolatile-global' - Consider all memory references to extern and global data items to - be volatile. - -`-fpic' - Generate position-independent code (PIC) suitable for use in a - shared library, if supported for the target machine. Such code - accesses all constant addresses through a global offset table - (GOT). The dynamic loader resolves the GOT entries when the - program starts (the dynamic loader is not part of GNU CC; it is - part of the operating system). If the GOT size for the linked - executable exceeds a machine-specific maximum size, you get an - error message from the linker indicating that `-fpic' does not - work; in that case, recompile with `-fPIC' instead. (These - maximums are 16k on the m88k, 8k on the Sparc, and 32k on the m68k - and RS/6000. The 386 has no such limit.) - - Position-independent code requires special support, and therefore - works only on certain machines. For the 386, GNU CC supports PIC - for System V but not for the Sun 386i. Code generated for the IBM - RS/6000 is always position-independent. - -`-fPIC' - If supported for the target machine, emit position-independent - code, suitable for dynamic linking and avoiding any limit on the - size of the global offset table. This option makes a difference - on the m68k, m88k, and the Sparc. - - Position-independent code requires special support, and therefore - works only on certain machines. - -`-ffixed-REG' - Treat the register named REG as a fixed register; generated code - should never refer to it (except perhaps as a stack pointer, frame - pointer or in some other fixed role). - - REG must be the name of a register. The register names accepted - are machine-specific and are defined in the `REGISTER_NAMES' macro - in the machine description macro file. - - This flag does not have a negative form, because it specifies a - three-way choice. - -`-fcall-used-REG' - Treat the register named REG as an allocatable register that is - clobbered by function calls. It may be allocated for temporaries - or variables that do not live across a call. Functions compiled - this way will not save and restore the register REG. - - Use of this flag for a register that has a fixed pervasive role in - the machine's execution model, such as the stack pointer or frame - pointer, will produce disastrous results. - - This flag does not have a negative form, because it specifies a - three-way choice. - -`-fcall-saved-REG' - Treat the register named REG as an allocatable register saved by - functions. It may be allocated even for temporaries or variables - that live across a call. Functions compiled this way will save - and restore the register REG if they use it. - - Use of this flag for a register that has a fixed pervasive role in - the machine's execution model, such as the stack pointer or frame - pointer, will produce disastrous results. - - A different sort of disaster will result from the use of this flag - for a register in which function values may be returned. - - This flag does not have a negative form, because it specifies a - three-way choice. - -`-fpack-struct' - Pack all structure members together without holes. Usually you - would not want to use this option, since it makes the code - suboptimal, and the offsets of structure members won't agree with - system libraries. - -`-fcheck-memory-usage' - Generate extra code to check each memory access. GNU CC will - generate code that is suitable for a detector of bad memory - accesses such as `Checker'. If you specify this option, you can - not use the `asm' or `__asm__' keywords. - - You must also specify this option when you compile functions you - call that have side effects. If you do not, you may get erronous - messages from the detector. Normally, you should compile all - your code with this option. If you use functions from a library - that have side-effects (such as `read'), you may not be able to - recompile the library and specify this option. In that case, you - can enable the `-fprefix-function-name' option, which requests GNU - CC to encapsulate your code and make other functions look as if - they were compiled with `-fcheck-memory-usage'. This is done by - calling "stubs", which are provided by the detector. If you - cannot find or build stubs for every function you call, you may - have to specify `-fcheck-memory-usage' without - `-fprefix-function-name'. - -`-fprefix-function-name' - Request GNU CC to add a prefix to the symbols generated for - function names. GNU CC adds a prefix to the names of functions - defined as well as functions called. Code compiled with this - option and code compiled without the option can't be linked - together, unless or stubs are used. - - If you compile the following code with `-fprefix-function-name' - extern void bar (int); - void - foo (int a) - { - return bar (a + 5); - - } - - GNU CC will compile the code as if it was written: - extern void prefix_bar (int); - void - prefix_foo (int a) - { - return prefix_bar (a + 5); - } - This option is designed to be used with `-fcheck-memory-usage'. - -`-fstack-check' - Generate code to verify that you do not go beyond the boundary of - the stack. You should specify this flag if you are running in an - environment with multiple threads, but only rarely need to specify - it in a single-threaded environment since stack overflow is - automatically detected on nearly all systems if there is only one - stack. - -`+e0' -`+e1' - Control whether virtual function definitions in classes are used to - generate code, or only to define interfaces for their callers. - (C++ only). - - These options are provided for compatibility with `cfront' 1.x - usage; the recommended alternative GNU C++ usage is in flux. - *Note Declarations and Definitions in One Header: C++ Interface. - - With `+e0', virtual function definitions in classes are declared - `extern'; the declaration is used only as an interface - specification, not to generate code for the virtual functions (in - this compilation). - - With `+e1', G++ actually generates the code implementing virtual - functions defined in the code, and makes them publicly visible. - - -File: gcc.info, Node: Environment Variables, Next: Running Protoize, Prev: Code Gen Options, Up: Invoking GCC - -Environment Variables Affecting GNU CC -====================================== - - This section describes several environment variables that affect how -GNU CC operates. They work by specifying directories or prefixes to use -when searching for various kinds of files. - - Note that you can also specify places to search using options such as -`-B', `-I' and `-L' (*note Directory Options::.). These take -precedence over places specified using environment variables, which in -turn take precedence over those specified by the configuration of GNU -CC. *Note Driver::. - -`TMPDIR' - If `TMPDIR' is set, it specifies the directory to use for temporary - files. GNU CC uses temporary files to hold the output of one - stage of compilation which is to be used as input to the next - stage: for example, the output of the preprocessor, which is the - input to the compiler proper. - -`GCC_EXEC_PREFIX' - If `GCC_EXEC_PREFIX' is set, it specifies a prefix to use in the - names of the subprograms executed by the compiler. No slash is - added when this prefix is combined with the name of a subprogram, - but you can specify a prefix that ends with a slash if you wish. - - If GNU CC cannot find the subprogram using the specified prefix, it - tries looking in the usual places for the subprogram. - - The default value of `GCC_EXEC_PREFIX' is `PREFIX/lib/gcc-lib/' - where PREFIX is the value of `prefix' when you ran the `configure' - script. - - Other prefixes specified with `-B' take precedence over this - prefix. - - This prefix is also used for finding files such as `crt0.o' that - are used for linking. - - In addition, the prefix is used in an unusual way in finding the - directories to search for header files. For each of the standard - directories whose name normally begins with - `/usr/local/lib/gcc-lib' (more precisely, with the value of - `GCC_INCLUDE_DIR'), GNU CC tries replacing that beginning with the - specified prefix to produce an alternate directory name. Thus, - with `-Bfoo/', GNU CC will search `foo/bar' where it would - normally search `/usr/local/lib/bar'. These alternate directories - are searched first; the standard directories come next. - -`COMPILER_PATH' - The value of `COMPILER_PATH' is a colon-separated list of - directories, much like `PATH'. GNU CC tries the directories thus - specified when searching for subprograms, if it can't find the - subprograms using `GCC_EXEC_PREFIX'. - -`LIBRARY_PATH' - The value of `LIBRARY_PATH' is a colon-separated list of - directories, much like `PATH'. When configured as a native - compiler, GNU CC tries the directories thus specified when - searching for special linker files, if it can't find them using - `GCC_EXEC_PREFIX'. Linking using GNU CC also uses these - directories when searching for ordinary libraries for the `-l' - option (but directories specified with `-L' come first). - -`C_INCLUDE_PATH' -`CPLUS_INCLUDE_PATH' -`OBJC_INCLUDE_PATH' - These environment variables pertain to particular languages. Each - variable's value is a colon-separated list of directories, much - like `PATH'. When GNU CC searches for header files, it tries the - directories listed in the variable for the language you are using, - after the directories specified with `-I' but before the standard - header file directories. - -`DEPENDENCIES_OUTPUT' - If this variable is set, its value specifies how to output - dependencies for Make based on the header files processed by the - compiler. This output looks much like the output from the `-M' - option (*note Preprocessor Options::.), but it goes to a separate - file, and is in addition to the usual results of compilation. - - The value of `DEPENDENCIES_OUTPUT' can be just a file name, in - which case the Make rules are written to that file, guessing the - target name from the source file name. Or the value can have the - form `FILE TARGET', in which case the rules are written to file - FILE using TARGET as the target name. - - -File: gcc.info, Node: Running Protoize, Prev: Environment Variables, Up: Invoking GCC - -Running Protoize -================ - - The program `protoize' is an optional part of GNU C. You can use it -to add prototypes to a program, thus converting the program to ANSI C -in one respect. The companion program `unprotoize' does the reverse: -it removes argument types from any prototypes that are found. - - When you run these programs, you must specify a set of source files -as command line arguments. The conversion programs start out by -compiling these files to see what functions they define. The -information gathered about a file FOO is saved in a file named `FOO.X'. - - After scanning comes actual conversion. The specified files are all -eligible to be converted; any files they include (whether sources or -just headers) are eligible as well. - - But not all the eligible files are converted. By default, -`protoize' and `unprotoize' convert only source and header files in the -current directory. You can specify additional directories whose files -should be converted with the `-d DIRECTORY' option. You can also -specify particular files to exclude with the `-x FILE' option. A file -is converted if it is eligible, its directory name matches one of the -specified directory names, and its name within the directory has not -been excluded. - - Basic conversion with `protoize' consists of rewriting most function -definitions and function declarations to specify the types of the -arguments. The only ones not rewritten are those for varargs functions. - - `protoize' optionally inserts prototype declarations at the -beginning of the source file, to make them available for any calls that -precede the function's definition. Or it can insert prototype -declarations with block scope in the blocks where undeclared functions -are called. - - Basic conversion with `unprotoize' consists of rewriting most -function declarations to remove any argument types, and rewriting -function definitions to the old-style pre-ANSI form. - - Both conversion programs print a warning for any function -declaration or definition that they can't convert. You can suppress -these warnings with `-q'. - - The output from `protoize' or `unprotoize' replaces the original -source file. The original file is renamed to a name ending with -`.save'. If the `.save' file already exists, then the source file is -simply discarded. - - `protoize' and `unprotoize' both depend on GNU CC itself to scan the -program and collect information about the functions it uses. So -neither of these programs will work until GNU CC is installed. - - Here is a table of the options you can use with `protoize' and -`unprotoize'. Each option works with both programs unless otherwise -stated. - -`-B DIRECTORY' - Look for the file `SYSCALLS.c.X' in DIRECTORY, instead of the - usual directory (normally `/usr/local/lib'). This file contains - prototype information about standard system functions. This option - applies only to `protoize'. - -`-c COMPILATION-OPTIONS' - Use COMPILATION-OPTIONS as the options when running `gcc' to - produce the `.X' files. The special option `-aux-info' is always - passed in addition, to tell `gcc' to write a `.X' file. - - Note that the compilation options must be given as a single - argument to `protoize' or `unprotoize'. If you want to specify - several `gcc' options, you must quote the entire set of - compilation options to make them a single word in the shell. - - There are certain `gcc' arguments that you cannot use, because they - would produce the wrong kind of output. These include `-g', `-O', - `-c', `-S', and `-o' If you include these in the - COMPILATION-OPTIONS, they are ignored. - -`-C' - Rename files to end in `.C' instead of `.c'. This is convenient - if you are converting a C program to C++. This option applies - only to `protoize'. - -`-g' - Add explicit global declarations. This means inserting explicit - declarations at the beginning of each source file for each function - that is called in the file and was not declared. These - declarations precede the first function definition that contains a - call to an undeclared function. This option applies only to - `protoize'. - -`-i STRING' - Indent old-style parameter declarations with the string STRING. - This option applies only to `protoize'. - - `unprotoize' converts prototyped function definitions to old-style - function definitions, where the arguments are declared between the - argument list and the initial `{'. By default, `unprotoize' uses - five spaces as the indentation. If you want to indent with just - one space instead, use `-i " "'. - -`-k' - Keep the `.X' files. Normally, they are deleted after conversion - is finished. - -`-l' - Add explicit local declarations. `protoize' with `-l' inserts a - prototype declaration for each function in each block which calls - the function without any declaration. This option applies only to - `protoize'. - -`-n' - Make no real changes. This mode just prints information about the - conversions that would have been done without `-n'. - -`-N' - Make no `.save' files. The original files are simply deleted. - Use this option with caution. - -`-p PROGRAM' - Use the program PROGRAM as the compiler. Normally, the name `gcc' - is used. - -`-q' - Work quietly. Most warnings are suppressed. - -`-v' - Print the version number, just like `-v' for `gcc'. - - If you need special compiler options to compile one of your program's -source files, then you should generate that file's `.X' file specially, -by running `gcc' on that source file with the appropriate options and -the option `-aux-info'. Then run `protoize' on the entire set of -files. `protoize' will use the existing `.X' file because it is newer -than the source file. For example: - - gcc -Dfoo=bar file1.c -aux-info - protoize *.c - -You need to include the special files along with the rest in the -`protoize' command, even though their `.X' files already exist, because -otherwise they won't get converted. - - *Note Protoize Caveats::, for more information on how to use -`protoize' successfully. - |