diff options
Diffstat (limited to 'include/asm-generic/vmlinux.lds.h')
| -rw-r--r-- | include/asm-generic/vmlinux.lds.h | 56 | 
1 files changed, 30 insertions, 26 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 83e2c31e8b0..c1c0b0cf39b 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -109,6 +109,15 @@  #define BRANCH_PROFILE()  #endif +#ifdef CONFIG_KPROBES +#define KPROBE_BLACKLIST()	. = ALIGN(8);				      \ +				VMLINUX_SYMBOL(__start_kprobe_blacklist) = .; \ +				*(_kprobe_blacklist)			      \ +				VMLINUX_SYMBOL(__stop_kprobe_blacklist) = .; +#else +#define KPROBE_BLACKLIST() +#endif +  #ifdef CONFIG_EVENT_TRACING  #define FTRACE_EVENTS()	. = ALIGN(8);					\  			VMLINUX_SYMBOL(__start_ftrace_events) = .;	\ @@ -139,33 +148,23 @@  #define TRACE_SYSCALLS()  #endif -#ifdef CONFIG_CLKSRC_OF -#define CLKSRC_OF_TABLES() . = ALIGN(8);				\ -			   VMLINUX_SYMBOL(__clksrc_of_table) = .;	\ -			   *(__clksrc_of_table)				\ -			   *(__clksrc_of_table_end) -#else -#define CLKSRC_OF_TABLES() -#endif -#ifdef CONFIG_IRQCHIP -#define IRQCHIP_OF_MATCH_TABLE()					\ +#define ___OF_TABLE(cfg, name)	_OF_TABLE_##cfg(name) +#define __OF_TABLE(cfg, name)	___OF_TABLE(cfg, name) +#define OF_TABLE(cfg, name)	__OF_TABLE(config_enabled(cfg), name) +#define _OF_TABLE_0(name) +#define _OF_TABLE_1(name)						\  	. = ALIGN(8);							\ -	VMLINUX_SYMBOL(__irqchip_begin) = .;				\ -	*(__irqchip_of_table)		  				\ -	*(__irqchip_of_end) -#else -#define IRQCHIP_OF_MATCH_TABLE() -#endif +	VMLINUX_SYMBOL(__##name##_of_table) = .;			\ +	*(__##name##_of_table)						\ +	*(__##name##_of_table_end) -#ifdef CONFIG_COMMON_CLK -#define CLK_OF_TABLES() . = ALIGN(8);				\ -			VMLINUX_SYMBOL(__clk_of_table) = .;	\ -			*(__clk_of_table)			\ -			*(__clk_of_table_end) -#else -#define CLK_OF_TABLES() -#endif +#define CLKSRC_OF_TABLES()	OF_TABLE(CONFIG_CLKSRC_OF, clksrc) +#define IRQCHIP_OF_MATCH_TABLE() OF_TABLE(CONFIG_IRQCHIP, irqchip) +#define CLK_OF_TABLES()		OF_TABLE(CONFIG_COMMON_CLK, clk) +#define RESERVEDMEM_OF_TABLES()	OF_TABLE(CONFIG_OF_RESERVED_MEM, reservedmem) +#define CPU_METHOD_OF_TABLES()	OF_TABLE(CONFIG_SMP, cpu_method) +#define EARLYCON_OF_TABLES()	OF_TABLE(CONFIG_SERIAL_EARLYCON, earlycon)  #define KERNEL_DTB()							\  	STRUCT_ALIGN();							\ @@ -473,6 +472,7 @@  #define KERNEL_CTORS()	. = ALIGN(8);			   \  			VMLINUX_SYMBOL(__ctors_start) = .; \  			*(.ctors)			   \ +			*(.init_array)			   \  			VMLINUX_SYMBOL(__ctors_end) = .;  #else  #define KERNEL_CTORS() @@ -487,11 +487,15 @@  	*(.init.rodata)							\  	FTRACE_EVENTS()							\  	TRACE_SYSCALLS()						\ +	KPROBE_BLACKLIST()						\  	MEM_DISCARD(init.rodata)					\  	CLK_OF_TABLES()							\ +	RESERVEDMEM_OF_TABLES()						\  	CLKSRC_OF_TABLES()						\ +	CPU_METHOD_OF_TABLES()						\  	KERNEL_DTB()							\ -	IRQCHIP_OF_MATCH_TABLE() +	IRQCHIP_OF_MATCH_TABLE()					\ +	EARLYCON_OF_TABLES()  #define INIT_TEXT							\  	*(.init.text)							\ @@ -689,7 +693,7 @@  	. = ALIGN(PAGE_SIZE);						\  	*(.data..percpu..page_aligned)					\  	. = ALIGN(cacheline);						\ -	*(.data..percpu..readmostly)					\ +	*(.data..percpu..read_mostly)					\  	. = ALIGN(cacheline);						\  	*(.data..percpu)						\  	*(.data..percpu..shared_aligned)				\  | 
