An object file is divided into sections containing different types of data. In the most common case, there are three sections: the text section, which holds instructions and read-only data; the data section, which holds initialized writable data; and the bss section, which holds uninitialized data. Some systems have other kinds of sections.
The compiler must tell the assembler when to switch sections. These macros control what commands to output to tell the assembler this. You can also define additional sections.
DATA_SECTION_ASM_OPwill be used.
ASM_OUTPUT_ALIGNED_BSSare defined, uninitialized global data will be output in the data section if `-fno-common' is passed, otherwise
ASM_OUTPUT_COMMONwill be used.
BSS_SECTION_ASM_OPis, the latter will be used.
in_data. You need not define this macro on a system with no other sections (that GCC needs to use).
data_section, for your additional sections. Do not define this macro if you do not define
data_sectionor a function defined in
EXTRA_SECTIONS) that switches to the section to be used for read-only items. If these items should be placed in the text section, this macro should not be defined.
SELECT_SECTION (exp, reloc)
VAR_DECLnode or a constant of some sort. reloc indicates whether the initial value of exp requires link-time relocations. Select the section by calling
text_sectionor one of the alternatives for other sections. Do not define this macro if you put all read-only variables and constants in the read-only data section (usually the text section).
SELECT_RTX_SECTION (mode, rtx)
const_intrtx. Select the section by calling
text_sectionor one of the alternatives for other sections. Do not define this macro if you put all constants in the read-only data section.
tablejumpinsns) should be output in the text section, along with the assembler instructions. Otherwise, the readonly data section is used. This macro is irrelevant if there is no separate readonly data section.
DECL_RTL (decl). The value of the rtl will be a
memwhose address is a
symbol_ref. The usual thing for this macro to do is to record a flag in the
SYMBOL_REF_FLAG) or to store a modified name string in the
symbol_ref(if one bit is not enough information).
STRIP_NAME_ENCODING (var, sym_name)
ENCODE_SECTION_INFOalters the symbol's name string.
UNIQUE_SECTION (decl, reloc)
Go to the first, previous, next, last section, table of contents.