diff options
Diffstat (limited to 'include/asm-generic/vmlinux.lds.h')
| -rw-r--r-- | include/asm-generic/vmlinux.lds.h | 14 | 
1 files changed, 13 insertions, 1 deletions
| diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 6a67ab94b553..54643d1f5af4 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h @@ -250,6 +250,14 @@  	VMLINUX_SYMBOL(__end_init_task) = .;  /* + * Allow architectures to handle ro_after_init data on their + * own by defining an empty RO_AFTER_INIT_DATA. + */ +#ifndef RO_AFTER_INIT_DATA +#define RO_AFTER_INIT_DATA *(.data..ro_after_init) +#endif + +/*   * Read only Data   */  #define RO_DATA_SECTION(align)						\ @@ -257,7 +265,7 @@  	.rodata           : AT(ADDR(.rodata) - LOAD_OFFSET) {		\  		VMLINUX_SYMBOL(__start_rodata) = .;			\  		*(.rodata) *(.rodata.*)					\ -		*(.data..ro_after_init)	/* Read only after init */	\ +		RO_AFTER_INIT_DATA	/* Read only after init */	\  		*(__vermagic)		/* Kernel version magic */	\  		. = ALIGN(8);						\  		VMLINUX_SYMBOL(__start___tracepoints_ptrs) = .;		\ @@ -542,15 +550,19 @@  #define INIT_TEXT							\  	*(.init.text)							\ +	*(.text.startup)						\  	MEM_DISCARD(init.text)  #define EXIT_DATA							\  	*(.exit.data)							\ +	*(.fini_array)							\ +	*(.dtors)							\  	MEM_DISCARD(exit.data)						\  	MEM_DISCARD(exit.rodata)  #define EXIT_TEXT							\  	*(.exit.text)							\ +	*(.text.exit)							\  	MEM_DISCARD(exit.text)  #define EXIT_CALL							\ |