Lines Matching +full:a +full:- +full:za +full:- +full:z
5 * A minimal linker scripts has following content:
6 * [This is a sample, architectures may have special requirements]
53 #include <asm-generic/codetag.lds.h>
61 * a separate PT_NOTE ELF Program Header. When this happens, it needs
76 * Some architectures have non-executable read-only exception tables.
90 * Support -ffunction-sections by matching .text and .text.*,
101 * NOTE: builds *with* and *without* -ffunction-sections are both supported by
102 * this single macro. Even with -ffunction-sections, there may be some objects
103 * NOT compiled with the flag due to the use of a specific Makefile override
104 * like cflags-y or AUTOFDO_PROFILE_foo.o. So this single catchall rule is
109 * ambiguity of their section names with -ffunction-sections. For example,
110 * .text.startup could be __attribute__((constructor)) code in a *non*
111 * ffunction-sections object, which should be placed in .init.text; or it could
112 * be an actual function named startup() in an ffunction-sections object, which
118 .text.[_0-9A-Za-df-rt-z]* \
119 .text.s[_0-9A-Za-su-z]* .text.s .text.s.* \
120 .text.st[_0-9A-Zb-z]* .text.st .text.st.* \
121 .text.sta[_0-9A-Za-qs-z]* .text.sta .text.sta.* \
122 .text.star[_0-9A-Za-su-z]* .text.star .text.star.* \
123 .text.start[_0-9A-Za-tv-z]* .text.start .text.start.* \
124 .text.startu[_0-9A-Za-oq-z]* .text.startu .text.startu.* \
125 .text.startup[_0-9A-Za-z]* \
126 .text.e[_0-9A-Za-wy-z]* .text.e .text.e.* \
127 .text.ex[_0-9A-Za-hj-z]* .text.ex .text.ex.* \
128 .text.exi[_0-9A-Za-su-z]* .text.exi .text.exi.* \
129 .text.exit[_0-9A-Za-z]*
132 * Support -fdata-sections by matching .data, .data.*, and others,
135 #define DATA_MAIN .data .data.[0-9a-zA-Z_]* .data.rel.* .data..L* .data..compoundliteral* .data.$__…
136 #define SDATA_MAIN .sdata .sdata.[0-9a-zA-Z_]*
137 #define RODATA_MAIN .rodata .rodata.[0-9a-zA-Z_]* .rodata..L*
138 #define BSS_MAIN .bss .bss.[0-9a-zA-Z_]* .bss..L* .bss..compoundliteral*
139 #define SBSS_MAIN .sbss .sbss.[0-9a-zA-Z_]*
142 * GCC 4.5 and later have a 32 bytes section alignment for structures.
189 * The ftrace call sites are logged to a section whose name depends on the
190 * compiler option used. A given kernel image will only use one, AKA
195 * as some archs will have a different prototype for that function
196 * but ftrace_ops_list_func() will have a single prototype.
462 * .kcfi_traps contains a list KCFI trap locations.
467 __kcfi_traps : AT(ADDR(__kcfi_traps) - LOAD_OFFSET) { \
480 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
490 .rodata1 : AT(ADDR(.rodata1) - LOAD_OFFSET) { \
495 .pci_fixup : AT(ADDR(.pci_fixup) - LOAD_OFFSET) { \
512 __ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \
518 /* Kernel symbol table: GPL-only symbols */ \
519 __ksymtab_gpl : AT(ADDR(__ksymtab_gpl) - LOAD_OFFSET) { \
526 __kcrctab : AT(ADDR(__kcrctab) - LOAD_OFFSET) { \
532 /* Kernel symbol table: GPL-only symbols */ \
533 __kcrctab_gpl : AT(ADDR(__kcrctab_gpl) - LOAD_OFFSET) { \
540 __ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \
545 __init_rodata : AT(ADDR(__init_rodata) - LOAD_OFFSET) { \
549 /* Built-in module parameters. */ \
550 __param : AT(ADDR(__param) - LOAD_OFFSET) { \
554 /* Built-in module versions. */ \
555 __modver : AT(ADDR(__modver) - LOAD_OFFSET) { \
570 * Non-instrumentable text section
583 *(.text.split .text.split.[0-9a-zA-Z_]*) \
600 * TEXT_MAIN here will match symbols with a fixed pattern (for example,
604 * Also placing .text.hot section at the beginning of a page, this
669 .head.text : AT(ADDR(.head.text) - LOAD_OFFSET) { \
678 __ex_table : AT(ADDR(__ex_table) - LOAD_OFFSET) { \
688 .BTF : AT(ADDR(.BTF) - LOAD_OFFSET) { \
692 .BTF_ids : AT(ADDR(.BTF_ids) - LOAD_OFFSET) { \
704 .data..init_task : AT(ADDR(.data..init_task) - LOAD_OFFSET) { \
763 * bss (Block Started by Symbol) - uninitialized data
768 .sbss : AT(ADDR(.sbss) - LOAD_OFFSET) { \
784 .bss : AT(ADDR(.bss) - LOAD_OFFSET) { \
860 __bug_table : AT(ADDR(__bug_table) - LOAD_OFFSET) { \
869 .orc_header : AT(ADDR(.orc_header) - LOAD_OFFSET) { \
873 .orc_unwind_ip : AT(ADDR(.orc_unwind_ip) - LOAD_OFFSET) { \
877 .orc_unwind : AT(ADDR(.orc_unwind) - LOAD_OFFSET) { \
880 text_size = _etext - _stext; \
882 .orc_lookup : AT(ADDR(.orc_lookup) - LOAD_OFFSET) { \
884 . += (((text_size + LOOKUP_BLOCK_SIZE - 1) / \
892 /* Built-in firmware blobs */
895 .builtin_fw : AT(ADDR(.builtin_fw) - LOAD_OFFSET) ALIGN(8) { \
905 .tracedata : AT(ADDR(.tracedata) - LOAD_OFFSET) { \
914 .printk_index : AT(ADDR(.printk_index) - LOAD_OFFSET) { \
922 * Discard .note.GNU-stack, which is emitted as PROGBITS by the compiler.
926 * be 8-byte aligned which causes alignment mismatches with the kernel's custom
927 * 4-byte aligned notes.
931 *(.note.GNU-stack) \
934 .notes : AT(ADDR(.notes) - LOAD_OFFSET) { \
967 name : AT(ADDR(name) - LOAD_OFFSET) \
1000 * Memory encryption operates on a page basis. Since we need to clear
1002 * on a page boundary and be a page-size multiple in length.
1004 * Note: We use a separate section so that only this section gets
1021 * link time due to cross-section references such as alt instructions,
1035 * Clang's -fprofile-arcs, -fsanitize=kernel-address, and
1036 * -fsanitize=thread produce unwanted sections (.eh_frame
1078 * PERCPU_INPUT - the percpu input sections
1104 * PERCPU_SECTION - define output section for percpu area
1114 .data..percpu : AT(ADDR(.data..percpu) - LOAD_OFFSET) { \
1121 * They will fit only a subset of the architectures
1127 * All sections are combined in a single .data section.
1130 * A cacheline is typical/always less than a PAGE_SIZE so
1133 * NOSAVE_DATA starts and ends with a PAGE_SIZE alignment which
1139 .data : AT(ADDR(.data) - LOAD_OFFSET) { \
1153 .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { \
1160 .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { \