Next: Host Fragment, Up: Fragments
LIBGCC2_CFLAGS
LIB2FUNCS_EXTRA
Floating Point Emulation
FPBIT
和 DPBIT
:
# We want fine grained libraries, so use the new code # to build the floating point emulation libraries. FPBIT = fp-bit.c DPBIT = dp-bit.c fp-bit.c: $(srcdir)/config/fp-bit.c echo '#define FLOAT' > fp-bit.c cat $(srcdir)/config/fp-bit.c >> fp-bit.c dp-bit.c: $(srcdir)/config/fp-bit.c cat $(srcdir)/config/fp-bit.c > dp-bit.c
CRTSTUFF_T_CFLAGS
CRTSTUFF_T_CFLAGS_S
EXTRA-PARTS
中使用 crtbeginS.o 和 crtendS.o
时。参见Initialization。
MULTILIB_OPTIONS
MULTILIB_OPTIONS
宏列出了必须构建特定版本 libgcc.a 的
选项集。将互不兼容的选项并排写出,并由斜线分隔。将可以一起使用的选项
由空格分开。构建程序将会构建所有兼容选项的组合。
例如,如果将 MULTILIB_OPTIONS
设置为
‘m68000/m68020 msoft-float’,Makefile 将会使用下列选项集
来构建特定版本的 libgcc.a:-m68000, -m68020,
-msoft-float, ‘-m68000 -msoft-float’, 和
‘-m68020 -msoft-float’。
MULTILIB_DIRNAMES
MULTILIB_OPTIONS
,该变量指定了用于存放不同库的目录名。
MULTILIB_OPTIONS
中的每个元素,对应于 MULTILIB_DIRNAMES
中
的每个元素。如果没有使用 MULTILIB_DIRNAMES
,缺省值将为
MULTILIB_OPTIONS
,并使用斜线来替代空格。
例如,如果 MULTILIB_OPTIONS
设置为 ‘m68000/m68020 msoft-float’,
则 MULTILIB_DIRNAMES
的缺省值为 ‘m68000 m68020 msoft-float’。
如果需要不同的目录名时,可以指定不同的值。
MULTILIB_MATCHES
MULTILIB_OPTIONS
式列出,GCC需要知道它的任何同义形式。这种情况下,
将 MULTILIB_MATCHES
设置为 ‘option=option’ 形式的列表来描述
所有相关的同义词。例如,‘m68000=mc68000 m68020=mc68020’。
MULTILIB_EXCEPTIONS
MULTILIB_OPTIONS
中指定了多个选项集时,会有些组合不能被
构建。这种情况下,将 MULTILIB_EXCEPTIONS
设置为所有不被构建的例外。
例如ARM处理器不能执行同时执行硬件浮点指令和缩减大小的THUMB指令,这样就没
有必要构建这些选项组合的库。因此将 MULTILIB_EXCEPTIONS
设为:
*mthumb/*mhard-float*
MULTILIB_EXTRA_OPTS
MULTILIB_EXTRA_OPTS
设置为用于所有构建时的选项列表。如果设
置了该宏,则可能要将 CRTSTUFF_T_CFLAGS
设置为跟在其后的破折号。
NATIVE_SYSTEM_HEADER_DIR
SYSTEM_INCLUDE_DIR
宏的值。
SPECS
MULTILIB_EXTRA_OPTS
并不足够,因为它并不影响目标库的
构建,最起码对于缺省multilib的构建是这样的。一种可能的方法是使用
DRIVER_SELF_SPECS
从 specs 文件中取得选项,就像是它们被传给了
编译器驱动程序的命令行。但是,你不想在安装工具链之后再增加这些选项,所以你
可以在安装原始的内嵌 specs 时,调节在构建工具链时使用的 specs
文件。诀窍是将 SPECS
设置为其它文件名(例如 specs.install),
然后该文件将会由内建 specs 创建出来,并且引出一个 Makefile 规
则来生成 specs 文件,在构建时候使用。
T_CFLAGS