📄 0191-0192.html
字号:
<HTML>
<HEAD>
<TITLE>Linux Complete Command Reference:User Commands:EarthWeb Inc.-</TITLE>
</HEAD>
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
<SCRIPT>
<!--
function displayWindow(url, width, height) {
var Win = window.open(url,"displayWindow",'width=' + width +
',height=' + height + ',resizable=1,scrollbars=yes');
}
//-->
</SCRIPT>
</HEAD>
-->
<!-- ISBN=0672311046 //-->
<!-- TITLE=Linux Complete Command Reference//-->
<!-- AUTHOR=Red Hat//-->
<!-- PUBLISHER=Macmillan Computer Publishing//-->
<!-- IMPRINT=Sams//-->
<!-- CHAPTER=01 //-->
<!-- PAGES=0001-0736 //-->
<!-- UNASSIGNED1 //-->
<!-- UNASSIGNED2 //-->
<P><CENTER>
<a href="0189-0190.html">Previous</A> | <a href="../ewtoc.html">Table of Contents</A> | <a href="0193-0194.html">Next</A></CENTER></P>
<A NAME="PAGENUM-191"><P>Page 191</P></A>
<TABLE>
<TR><TD>
</TD><TD>
i386v, meaning to compile for an 80386 running System V, then you would specify
_b i386v to run that cross compiler.<BR>
When you do not specify _b, it normally means to compile for the same type of machine
that you are using.
</TD></TR><TR><TD>
_V version
</TD><TD>
The argument version specifies which version of GNU CC to run. This is useful when
multiple versions are installed. For example,
version might be 2.0, meaning to run GNU CC
version 2.0.<BR>
The default version, when you do not specify
_V, is controlled by the way GNU CC is installed. Normally, it will be a version that is recommended for general use.
</TD></TR></TABLE>
<P><B>
MACHINE-DEPENDENT OPTIONS
</B>
</P>
<P>Each of the target machine types can have its own special options, starting with
_m, to choose among various hardware models or configurations—for example, 68010 versus 68020, floating coprocessor or none. A single installed version of
the compiler can compile for any model or configuration, according to the options specified.
</P>
<P>Some configurations of the compiler also support additional special options, usually for command-line compatibility
with other compilers on the same platform.
</P>
<P>These are the _m options defined for the 68000 series:
</P>
<TABLE>
<TR><TD>
_m68000
</TD><TD>
Generate output for a 68000. This is the default when the compiler is configured for 68000-
</TD></TR><TR><TD>
_mc68000
</TD><TD>
based systems.
</TD></TR><TR><TD>
_m68020
</TD><TD>
Generate output for a 68020 (rather than a 68000). This is the default when the compiler is
</TD></TR><TR><TD>
_mc68020
</TD><TD>
configured for 68020-based systems.
</TD></TR><TR><TD>
_m68881
</TD><TD>
Generate output containing 68881 instructions for floating point. This is the default for
most 68020-based systems unless _nfp was specified when the compiler was configured.
</TD></TR><TR><TD>
_m68030
</TD><TD>
Generate output for a 68030. This is the default when the compiler is configured for
68030-based systems.
</TD></TR><TR><TD>
_m68040
</TD><TD>
Generate output for a 68040. This is the default when the compiler is configured for
68040-based systems.
</TD></TR><TR><TD>
_m68020_40
</TD><TD>
Generate output for a 68040, without using any of the new instructions. This results in
code which can run relatively efficiently on either a 68020/68881 or a 68030 or a 68040.
</TD></TR><TR><TD>
_mfpa
</TD><TD>
Generate output containing Sun FPA instructions for floating point.
</TD></TR><TR><TD>
_msoft_float
</TD><TD>
Generate output containing library calls for floating point.
</TD></TR>
</TABLE>
<CENTER>
<TABLE BGCOLOR="#FFFF99">
<TR><TD><B>
WARNING
</B></TD></TR>
<TR><TD>
<BLOCKQUOTE>
The requisite libraries are not part of GNU CC. Normally, the facilities of the machine's usual C compiler are used,
but this can't be done directly in cross-compilation. You must make your own arrangements to provide suitable library
functions for cross-compilation.
</BLOCKQUOTE></TD></TR>
</TABLE></CENTER>
<TABLE>
<TR><TD>
_mshort
</TD><TD>
Consider type int to be 16 bits wide, like short
int.
</TD></TR><TR><TD>
_mnobitfield
</TD><TD>
Do not use the bit-field instructions.
_m68000 implies _mnobitfield.
</TD></TR><TR><TD>
_mbitfield
</TD><TD>
Do use the bit-field instructions.
_m68020 implies _mbitfield. This is the default if you use
the unmodified sources.
</TD></TR><TR><TD>
_mrtd
</TD><TD>
Use a different function-calling convention, in which functions that take a fixed number
of arguments return with the rtd instruction, which pops their arguments while returning.
This saves one instruction in the caller since there is no need to pop the arguments there.
This calling convention is incompatible with the one normally used on UNIX, so you
cannot use it if you need to call libraries compiled with the UNIX compiler.
</TD></TR></TABLE>
<A NAME="PAGENUM-192"><P>Page 192</P></A>
<TABLE>
<TR><TD>
</TD><TD>
Also, you must provide function prototypes for all functions that take variable numbers
of arguments (including printf ); otherwise, incorrect code will be generated for calls to
those functions.<BR>
In addition, seriously incorrect code will result if you call a function with too many
arguments. (Normally, extra arguments are harmlessly ignored.)
The rtd instruction is supported by the 68010 and 68020 processors, but not by the 68000.
</TD></TR></TABLE>
<P>
These _m options are defined for the VAX:</P>
<TABLE>
<TR><TD>
<P>_munix
</TD><TD>
Do not output certain jump instructions
(aobleq and so on) that the UNIX assembler for the VAX cannot handle across long ranges.
</TD></TR><TR><TD>
_mgnu
</TD><TD>
Do output those jump instructions, on the assumption that you will assemble with the
GNU assembler.
</TD></TR><TR><TD>
_mg
</TD><TD>
Output code for g-format floating-point numbers instead of d-format.
</TD></TR></TABLE>
<P>These _m switches are supported on the SPARC:</P>
<TABLE>
<TR><TD>
_mfpu
</TD><TD>
Generate output containing floating-point instructions. This is the default.
</TD></TR><TR><TD>
_mhard_float
</TD><TD>
</TD></TR><TR><TD>
_mno_fpu
</TD><TD>
Generate output containing library calls for floating point.
</TD></TR><TR><TD>
_msoft_float
</TD></TR>
</TABLE>
<CENTER>
<TABLE BGCOLOR="#FFFF99">
<TR><TD><B>
WARNING
</B></TD></TR>
<TR><TD>
<BLOCKQUOTE>
There is no GNU floating-point library for SPARC. Normally, the facilities of the machine's usual C compiler are
used, but this cannot be done directly in cross-compilation. You must make your own arrangements to provide suitable
library functions for cross-compilation.
</BLOCKQUOTE></TD></TR>
</TABLE></CENTER>
<TABLE>
<TR><TD>
_msoft_float
</TD><TD>
Changes the calling convention in the output file; therefore, it is only useful if you compile
all of a program with this option.
</TD></TR><TR><TD>
_mno_epilogue
</TD><TD>
With _mepilogue (the default), the compiler always emits code for function exit at the end of
</TD></TR><TR><TD>
_mepilogue
</TD><TD>
each function. Any function exit in the middle of the function (such as a return statement in
C) will generate a jump to the exit code at the end of the function. With
_mno_epilogue, the compiler tries to emit exit code inline at every function exit.
</TD></TR><TR><TD>
_mno_v8
</TD><TD>
These three options select variations on the SPARC architecture. By default (unless specifically
</TD></TR><TR><TD>
_mv8<BR>
msparclite
</TD><TD>
configured for the Fujitsu SPARClite),
gcc generates code for the v7 variant of the SPARC
architecture.<BR>
_mv8 will give you SPARC v8 code. The only difference from v7 code is that the compiler
emits the integer multiply and integer divide instructions that exist in SPARC v8 but not in SPARC v7.<BR>
_msparclite will give you SPARClite code. This adds the integer multiply, integer divide
step and scan (ffs) instructions that exist in SPARClite but not in SPARC v7.
</TD></TR><TR><TD>
_mcypress
</TD><TD>
These two options select the processor for which the code is optimized.
</TD></TR><TR><TD>
_msupersparc
</TD><TD>
With _mcypress (the default), the compiler optimizes code for the Cypress CY7C602 chip,
as used in the SparcStation and SparcServer 3xx series. This is also appropriate for the
older SparcStation 1, 2, IPX, and so on.<BR>
With _msupersparc the compiler optimizes code for the SuperSparc
cpu, as used in the SparcStation 10, 1000, and 2000 series. This flag also enables use of the full SPARC
v8 instruction set.
</TD></TR></TABLE>
<P>These _m options are defined for the Convex:
</P>
<TABLE>
<TR><TD>
_mc1
</TD><TD>
Generate output for a C1. This is the default when the compiler is configured for a C1.
</TD></TR><TR><TD>
_mc2
</TD><TD>
Generate output for a C2. This is the default when the compiler is configured for a C2.
</TD></TR></TABLE>
<P><CENTER>
<a href="0189-0190.html">Previous</A> | <a href="../ewtoc.html">Table of Contents</A> | <a href="0193-0194.html">Next</A></CENTER></P>
</td>
</tr>
</table>
<!-- begin footer information -->
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -