*(.data) \
*(.ref.data) \
*(.data..shared_aligned) /* percpu related */ \
- CPU_KEEP(init.data) \
- CPU_KEEP(exit.data) \
- DEV_KEEP(init.data) \
- DEV_KEEP(exit.data) \
MEM_KEEP(init.data) \
MEM_KEEP(exit.data) \
*(.data.unlikely) \
/* __*init sections */ \
__init_rodata : AT(ADDR(__init_rodata) - LOAD_OFFSET) { \
*(.ref.rodata) \
- CPU_KEEP(init.rodata) \
- CPU_KEEP(exit.rodata) \
- DEV_KEEP(init.rodata) \
- DEV_KEEP(exit.rodata) \
MEM_KEEP(init.rodata) \
MEM_KEEP(exit.rodata) \
} \
*(.text.hot) \
*(.text) \
*(.ref.text) \
- CPU_KEEP(init.text) \
- CPU_KEEP(exit.text) \
- DEV_KEEP(init.text) \
- DEV_KEEP(exit.text) \
MEM_KEEP(init.text) \
MEM_KEEP(exit.text) \
*(.text.unlikely)
/* init and exit section handling */
#define INIT_DATA \
*(.init.data) \
- CPU_DISCARD(init.data) \
- DEV_DISCARD(init.data) \
MEM_DISCARD(init.data) \
KERNEL_CTORS() \
MCOUNT_REC() \
*(.init.rodata) \
FTRACE_EVENTS() \
TRACE_SYSCALLS() \
- CPU_DISCARD(init.rodata) \
- DEV_DISCARD(init.rodata) \
MEM_DISCARD(init.rodata) \
CLK_OF_TABLES() \
CLKSRC_OF_TABLES() \
#define INIT_TEXT \
*(.init.text) \
- CPU_DISCARD(init.text) \
- DEV_DISCARD(init.text) \
MEM_DISCARD(init.text)
#define EXIT_DATA \
*(.exit.data) \
- CPU_DISCARD(exit.data) \
- CPU_DISCARD(exit.rodata) \
- DEV_DISCARD(exit.data) \
- DEV_DISCARD(exit.rodata) \
MEM_DISCARD(exit.data) \
MEM_DISCARD(exit.rodata)
#define EXIT_TEXT \
*(.exit.text) \
- CPU_DISCARD(exit.text) \
- DEV_DISCARD(exit.text) \
MEM_DISCARD(exit.text)
#define EXIT_CALL \
#define ALL_EXIT_SECTIONS EXIT_SECTIONS, ALL_XXXEXIT_SECTIONS
#define DATA_SECTIONS ".data$", ".data.rel$"
-#define TEXT_SECTIONS ".text$"
+#define TEXT_SECTIONS ".text$", ".text.unlikely$"
#define INIT_SECTIONS ".init.*"
- #define CPU_INIT_SECTIONS ".cpuinit.*"
#define MEM_INIT_SECTIONS ".meminit.*"
#define EXIT_SECTIONS ".exit.*"