Next: Driver, Up: Target Macros
targetm
目标机.c文件必须定义包含了目标机器相关的函数指针和数据的全局变量
targetm
。该变量在target.h中声明; target-def.h定义了用来初始化该变量的宏TARGET_INITIALIZER
, 和结构体元素的缺省初始化宏。.c文件应该覆写这些缺省定义不合适的宏。例如:#include "target.h" #include "target-def.h" /* Initialize the GCC target structure. */ #undef TARGET_COMP_TYPE_ATTRIBUTES #define TARGET_COMP_TYPE_ATTRIBUTES machine_comp_type_attributes struct gcc_target targetm = TARGET_INITIALIZER;
其中,宏应该通过这种方式在.c文件中被定义,
从而成为targetm
结构体的一部分。
该宏将在下面作为具有函数原型的“目标钩子”来介绍。
在.h.h文件中定义的许多宏将来都会改为targetm
结构体的一部分。