+ Updated compiler options

This commit is contained in:
michael 1999-06-05 10:54:03 +00:00
parent 3fbf37d2f7
commit c958cb6b96

View File

@ -888,7 +888,8 @@ following:
\item[-l] This option tells the compiler to print the \fpc logo on standard \item[-l] This option tells the compiler to print the \fpc logo on standard
output. It also gives you the \fpc version number. output. It also gives you the \fpc version number.
\olabel{l} \olabel{l}
\item [-n] Tells the compiler not to read the configuration file. \item [-n] Tells the compiler not to read default the configuration file.
You can still pass a configuration file with the \var{@} option.
\olabel{n} \olabel{n}
\end{description} \end{description}
@ -942,18 +943,12 @@ compiler).
\item [-Fexxx] This option tells the compiler to write errors, etc. to \item [-Fexxx] This option tells the compiler to write errors, etc. to
the file in \file{xxx}. the file in \file{xxx}.
\olabel{Fe} \olabel{Fe}
\item [-Fgxxx] (\linux only, obsolete) \file{xxx} specifies the path where the compiler
can find the \gnu C library. This is superseded by the \var{-Fl} option.
\olabel{Fg}
\item [-Fixxx] adds \var{xxx} to the path where the compiler searches for
its include files.
\olabel{Fi}
\item [-Flxxx] Adds \var{xxx} to the library searching path, and is passed \item [-Flxxx] Adds \var{xxx} to the library searching path, and is passed
to the linker. to the linker.
\olabel{Fl} \olabel{Fl}
\item[-FLxxx] (\linux only) Tells the compiler to use \file{xxx} as the \item[-FLxxx] (\linux only) Tells the compiler to use \file{xxx} as the
dynamic linker. Default this is \file{/lib/ld-linux.so.2}, or dynamic linker. Default this is \file{/lib/ld-linux.so.2}, or
\file{lib/ld-linux.so.1}, depending on which one is found. \file{lib/ld-linux.so.1}, depending on which one is found first.
\olabel{FL} \olabel{FL}
\item[-Foxxx] Adds \file{xxx} to the object file path. This path is used \item[-Foxxx] Adds \file{xxx} to the object file path. This path is used
when looking for files that need to be linked in. when looking for files that need to be linked in.
@ -962,52 +957,73 @@ when looking for files that need to be linked in.
messages. Default the compiler ahs built-in messages. Specifying this option messages. Default the compiler ahs built-in messages. Specifying this option
will override the default messages. will override the default messages.
\olabel{Fr} \olabel{Fr}
\item [-Fuxxx] Idem as \var{-Up}: Add \file{xxx} to the object path. \item [-Fuxxx] Add \file{xxx} to the unit path. Units are loaded from the
current directory if they exist, and then in the unit path. You must {\em
always} supply the unit path to the system unit.
\olabel{Fu} \olabel{Fu}
\item [-FUxxx] Tells the compiler to write units in directory \var{xxx} \item [-FUxxx] Tells the compiler to write units in directory \var{xxx}
instead of the current directory. instead of the current directory.
\item [-Ixxx] \olabel{I} Add \file{xxx} to the include file search path. \item [-Ixxx] \olabel{I} Add \file{xxx} to the include file search path.
This path is used when looking for include files. This path is used when looking for include files. This option is obsolite,
use \var{-Fi} instead.
\item [-P] uses pipes instead of files when assembling. This may speed up \item [-P] uses pipes instead of files when assembling. This may speed up
the compiler on \ostwo and \linux. Only with assemblers (such as \gnu the compiler on \ostwo and \linux. Only with assemblers (such as \gnu
\file{as}) that support piping.. \file{as}) that support piping...
\item [-Upxxx] \olabel{Up} Tells the compiler to add \file{xxx} to the path where to find
units. \\
By default, the compiler only searches for units in the current directory
and the directory where the compiler itself resides. This option tells the
compiler also to look in the directory \file{xxx}.
\end{description} \end{description}
% Options controlling the kind of output. % Options controlling the kind of output.
\subsection{Options controlling the kind of output.} \subsection{Options controlling the kind of output.}
for more information on these options, see also \progref for more information on these options, see also \progref
\begin{description} \begin{description}
\item [-a] \olabel{a} Tells the compiler not to delete the assembler file. \item [-a] \olabel{a} Tells the compiler not to delete the assembler files
it generates (not when using the internal assembler).
This also counts for the (possibly) generated batch script. This also counts for the (possibly) generated batch script.
\item [-al] \olabel{al} Tells the compiler to include the sourcecode lines \item [-al] \olabel{al} Tells the compiler to include the sourcecode lines
in the assembler file as comments. This feature is still experimental, and in the assembler file as comments. This feature is still experimental, and
should be used with caution. should be used with caution.
\item [-Axxx] \olabel{A}specifies what kind of assembler should be generated . Here \item[-ar] \olabel{ar} tells the compiler to list register allocation and
release info in the assembler file. This is primarily intended for debugging
the code generated bythe compiler.
\item[-at] \olabel{at} tells the compiler to list information about
temporary allocations and deallocations in the assembler file.
\item [-Axxx] \olabel{A} specifies what kind of assembler should be generated . Here
\var{xxx} is one of the following : \var{xxx} is one of the following :
\begin{itemize} \begin{itemize}
\item \textbf{o} : A unix .o (object) file, using \gnu \file{as}. \item \textbf{o} : A unix coff object file, using the \gnu assembler \file{as}.
\item \textbf{nasmcoff} : a coff file using the \file{nasm} assembler. \item \textbf{nasmcoff} : a coff file using the \file{nasm} assembler.
\item \textbf{nasmelf} : a ELF32 file (\linux only) using the \file{nasm} assembler. \item \textbf{nasmelf} : a ELF32 file (\linux only) using the \file{nasm} assembler.
\item \textbf{nasmonj} : a obj file using the \file{nasm} assembler. \item \textbf{nasmonj} : a obj file using the \file{nasm} assembler.
\item \textbf{masm} : An obj file using the Microsoft \file{masm} assembler. \item \textbf{masm} : An obj file using the Microsoft \file{masm} assembler.
\item \textbf{tasm} : An obj file using the Borland \file{tasm} assembler. \item \textbf{tasm} : An obj file using the Borland \file{tasm} assembler.
\end{itemize} \end{itemize}
\item [-CD] Create dynamic library. \item[-B] \olabel{B} tells the compiler to re-compile all used units, even
if the unit sources didn't change since the last compilation.
\item[-b] \olabel{b} tells the compiler to generate browser info. This information can
be used by an Integrated Development Environment (IDE) to provide information
on classes, objects, procedures, types and variables in a unit.
\item[-bl] \olabel{bl} is the same as \var{-b} but also generates
information about local variables, types and procedures.
\item [-CD] Create a dynamic library. This is used to transform units into
dynamically linkable libraries on \linux.
\item [-Chxxx] \olabel {Ch} Reserves \var{xxx} bytes heap. \var{xxx} should \item [-Chxxx] \olabel {Ch} Reserves \var{xxx} bytes heap. \var{xxx} should
be between 1024 and 67107840. be between 1024 and 67107840.
\item [-Ci] \olabel{Ci} Generate Input/Output checking code. \item [-Ci] \olabel{Ci} Generate Input/Output checking code. In case some
\item [-Cn] \olabel{Cn} Omit the linking stage. input/output code of your program returns an error status, the program will
\item [-Co] \olabel{Co} Generate Integer overflow checking code. exit with a run-time error. Which error is generated depends on the I/O error.
\item [-Cr] \olabel{Cr} Generate Range checking code. \item [-Cn] \olabel{Cn} Omit the linking stage.
\item [-Co] \olabel{Co} Generate Integer overflow checking code. In case of
integer errors, a run-time error will be generated by your program.
\item [-Cr] \olabel{Cr} Generate Range checking code. In case your program
acesses an array element with an invalid index, or if it increases an
enumerated type beyond it's scope, a run-time error will be generated.
\item [-Csxxx] \olabel{Cs} Set stack size to \var{xxx}. \item [-Csxxx] \olabel{Cs} Set stack size to \var{xxx}.
\item [-CS] \olabel{CS} Create static library. \item [-CS] \olabel{CS} Create static library.
\item [-Ct] \olabel{Ct} generate stack checking code. \item [-Ct] \olabel{Ct} generate stack checking code. In case your program
performs a faulty stack operation, a run-rime error will be generated.
\item [-Cx] \olabel{Cx} Use smartlinking when compiling and linking units. \item [-Cx] \olabel{Cx} Use smartlinking when compiling and linking units.
smartlinking will only link in the code parts that are actually needed by
the program. All unused code is left out. This can lead to substantially
smaller binaries.
\item [-dxxx] \olabel{d} Define the symbol name \var{xxx}. This can be used \item [-dxxx] \olabel{d} Define the symbol name \var{xxx}. This can be used
to conditionally compile parts of your code. to conditionally compile parts of your code.
\item {-E} \olabel{E} Same as \var{-Cn}. \item {-E} \olabel{E} Same as \var{-Cn}.
@ -1023,11 +1039,11 @@ of the following values :
\item[G] optimize for time, try to generate faster code (default). \item[G] optimize for time, try to generate faster code (default).
\item[r] keep certain variables in registers (experimental, use with \item[r] keep certain variables in registers (experimental, use with
caution). caution).
\item[u] uncertain optimizations \item[u] Uncertain optimizations
\item[1] Level 1 optimizations (quick optimizations). \item[1] Level 1 optimizations (quick optimizations).
\item[2] Level 2 optimizations (\var{-O1} plus some slower optimizations). \item[2] Level 2 optimizations (\var{-O1} plus some slower optimizations).
\item[3] Level 3 optimizations (\var{-O2} plus \var{-Ou}). \item[3] Level 3 optimizations (\var{-O2} plus \var{-Ou}).
\item[Pn] Specify processor: \var{n} can be one of \item[Pn] (Intel only) Specify processor: \var{n} can be one of
\begin{description} \begin{description}
\item[1] optimize for 386/486 \item[1] optimize for 386/486
\item[2] optimize for Pentium/PentiumMMX (tm) \item[2] optimize for Pentium/PentiumMMX (tm)
@ -1041,14 +1057,15 @@ file (executable). Only with programs.
\item [-s] \olabel{s} Tells the compiler not to call the assembler and linker. \item [-s] \olabel{s} Tells the compiler not to call the assembler and linker.
Instead, the compiler writes a script, \file{PPAS.BAT} under \dos, or Instead, the compiler writes a script, \file{PPAS.BAT} under \dos, or
\file{ppas.sh} under \linux, which can then be executed to produce an \file{ppas.sh} under \linux, which can then be executed to produce an
executable. executable. This can be used to speed up the compiling process or to debug
\item[-Txxx] \olabel{T}Specifies the target operating system. \var{xxx} can be one of the compiler's output.
\item[-Txxx] \olabel{T} Specifies the target operating system. \var{xxx} can be one of
the following: the following:
\begin{itemize} \begin{itemize}
\item \textbf{GO32V1} : \dos and version 1 of the DJ DELORIE extender (no longer maintained). \item \textbf{GO32V1} : \dos and version 1 of the DJ DELORIE extender (no longer maintained).
\item \textbf{GO32V2} : \dos and version 2 of the DJ DELORIE extender. \item \textbf{GO32V2} : \dos and version 2 of the DJ DELORIE extender.
\item \textbf{LINUX} : \linux. \item \textbf{LINUX} : \linux.
\item \textbf{OS2} : OS/2 (2.x) (this is still under development). \item \textbf{OS2} : OS/2 (2.x) using the \var{EMX} extender.
\item \textbf{WIN32} : Windows 32 bit. \item \textbf{WIN32} : Windows 32 bit.
\end{itemize} \end{itemize}
\item [-uxxx] \olabel{u} undefine the symbol \var{xxx}. This is the opposite \item [-uxxx] \olabel{u} undefine the symbol \var{xxx}. This is the opposite
@ -1078,24 +1095,33 @@ can be one of the following:
\subsection{Options concerning the sources (language options)} \subsection{Options concerning the sources (language options)}
for more information on these options, see also \progref for more information on these options, see also \progref
\begin{description} \begin{description}
\item [-Rxxx] \olabel{R} Specifies what assembler you use in your \var{asm} assembler code \item [-Rxxx] \olabel{R} Specifies what kind of assembler you use in
blocks. Here \var{xxx} is one of the following: your \var{asm} assembler code blocks. Here \var{xxx} is one of the following:
\begin{description} \begin{description}
\item [att\ ] \var{asm} blocks contain AT\&T assembler. \item [att\ ] \var{asm} blocks contain AT\&T-style assembler.
\item [intel] \var{asm} blocks contain Intel assembler. This is the default style.
\item [direct] \var{asm} blocks should be copied as-is in the assembler \item [intel] \var{asm} blocks contain Intel-style assembler.
\item [direct] \var{asm} blocks should be copied as-is in the assembler,
only replacing certain variables.
file. file.
\end{description} \end{description}
\item [-S2] \olabel{Stwo} Switch on Delphi 2 extensions. \item [-S2] \olabel{Stwo} Switch on Delphi 2 extensions. This is different
from \var{-Sd} because some \fpc constructs are still available to you.
\item [-Sc] \olabel{Sc} Support C-style operators, i.e. \var{*=, +=, /= and \item [-Sc] \olabel{Sc} Support C-style operators, i.e. \var{*=, +=, /= and
-=}. -=}.
\item [-Sd] tells the compiler to dispose asmlists. This uses less memory, \item [-Sd] Tells the compiler to be Delphi compatible. This is more strict
but is slower. than the \var{-S2} option, since some \var{fpc} extensions are switched off.
\item [-Se] \olabel{Se} The compiler stops after the first error. Normally, \item [-Se] \olabel{Se} The compiler stops after the first error. Normally,
the compiler tries to continue compiling after an error, until 50 errors are the compiler tries to continue compiling after an error, until 50 errors are
reached, or a fatal error is reachd, and then it stops. With this switch, reached, or a fatal error is reached, and then it stops. With this switch,
the compiler will stop after the first error. the compiler will stop after the first error.
\item [-Sg] \olabel{Sg} Support the \var{label} and \var{goto} commands. \item [-Sg] \olabel{Sg} Support the \var{label} and \var{goto} commands. By
default these are not supported. You must also specify this option if you
use labels in assembler statements. (if you use the \var{AT\&T} style
assember)
\item [-Sh] Use ansistrings by default for strings. If this keyword is
specified, the compiler will interpret the \var{string} keyword as a
ansistring. Otherwise it is supposed to be a short strings (TP style).
\item [-Si] \olabel{Si} Support \var{C++} style INLINE. \item [-Si] \olabel{Si} Support \var{C++} style INLINE.
\item [-Sm] \olabel{Sm} Support C-style macros. \item [-Sm] \olabel{Sm} Support C-style macros.
\item [-So] \olabel{So} Try to be Borland TP 7.0 compatible (no function \item [-So] \olabel{So} Try to be Borland TP 7.0 compatible (no function
@ -1549,7 +1575,7 @@ programs and units. Here we list these programs and units.
\subsection{ppudump program} \subsection{ppudump program}
\file{ppudump} is a program which shows the contents of a \fpc unit. It \file{ppudump} is a program which shows the contents of a \fpc unit. It
is distributed with the compiler you can just issue the following command is distributed with the compiler. You can just issue the following command
\begin{verbatim} \begin{verbatim}
ppudump [options] foo.ppu ppudump [options] foo.ppu
\end{verbatim} \end{verbatim}