vmlinux.lds.s

来自「LINUX 2.6.17.4的源码」· S 代码 · 共 240 行

S
240
字号
#include <linux/config.h>#ifdef CONFIG_PPC64#include <asm/page.h>#define PROVIDE32(x)	PROVIDE(__unused__##x)#else#define PAGE_SIZE	4096#define KERNELBASE	CONFIG_KERNEL_START#define PROVIDE32(x)	PROVIDE(x)#endif#include <asm-generic/vmlinux.lds.h>ENTRY(_stext)#ifdef CONFIG_PPC64OUTPUT_ARCH(powerpc:common64)jiffies = jiffies_64;#elseOUTPUT_ARCH(powerpc:common)jiffies = jiffies_64 + 4;#endifSECTIONS{	/* Sections to be discarded. */	/DISCARD/ : {	*(.exitcall.exit)	*(.exit.data)	}	. = KERNELBASE;/* * Text, read only data and other permanent read-only sections */	/* Text and gots */	.text : {		*(.text .text.*)		SCHED_TEXT		LOCK_TEXT		KPROBES_TEXT		*(.fixup)#ifdef CONFIG_PPC32		*(.got1)		__got2_start = .;		*(.got2)		__got2_end = .;#endif /* CONFIG_PPC32 */		. = ALIGN(PAGE_SIZE);		_etext = .;		PROVIDE32 (etext = .);	}	/* Read-only data */	RODATA	/* Exception & bug tables */	__ex_table : {		__start___ex_table = .;		*(__ex_table)		__stop___ex_table = .;	}	__bug_table : {		__start___bug_table = .;		*(__bug_table)		__stop___bug_table = .;	}/* * Init sections discarded at runtime */	. = ALIGN(PAGE_SIZE);	__init_begin = .;	.init.text : {		_sinittext = .;		*(.init.text)		_einittext = .;	}	/* .exit.text is discarded at runtime, not link time,	 * to deal with references from __bug_table	 */	.exit.text : { *(.exit.text) }	.init.data : {		*(.init.data);		__vtop_table_begin = .;		*(.vtop_fixup);		__vtop_table_end = .;		__ptov_table_begin = .;		*(.ptov_fixup);		__ptov_table_end = .;	}	. = ALIGN(16);	.init.setup : {		__setup_start = .;		*(.init.setup)		__setup_end = .;	}	.initcall.init : {		__initcall_start = .;		*(.initcall1.init)		*(.initcall2.init)		*(.initcall3.init)		*(.initcall4.init)		*(.initcall5.init)		*(.initcall6.init)		*(.initcall7.init)		__initcall_end = .;		}	.con_initcall.init : {		__con_initcall_start = .;		*(.con_initcall.init)		__con_initcall_end = .;	}	SECURITY_INIT	. = ALIGN(8);	__ftr_fixup : {		__start___ftr_fixup = .;		*(__ftr_fixup)		__stop___ftr_fixup = .;	}	. = ALIGN(PAGE_SIZE);	.init.ramfs : {		__initramfs_start = .;		*(.init.ramfs)		__initramfs_end = .;	}#ifdef CONFIG_PPC32	. = ALIGN(32);#else	. = ALIGN(128);#endif	.data.percpu : {		__per_cpu_start = .;		*(.data.percpu)		__per_cpu_end = .;	}	. = ALIGN(8);	.machine.desc : {		__machine_desc_start = . ;		*(.machine.desc)		__machine_desc_end = . ;	}	/* freed after init ends here */	. = ALIGN(PAGE_SIZE);	__init_end = .;/* * And now the various read/write data */	. = ALIGN(PAGE_SIZE);	_sdata = .;#ifdef CONFIG_PPC32	.data    :	{		*(.data)		*(.sdata)		*(.got.plt) *(.got)	}#else	.data : {		*(.data .data.rel* .toc1)		*(.branch_lt)	}	.opd : {		*(.opd)	}	.got : {		__toc_start = .;		*(.got)		*(.toc)	}#endif	. = ALIGN(PAGE_SIZE);	_edata  =  .;	PROVIDE32 (edata = .);	/* The initial task and kernel stack */#ifdef CONFIG_PPC32	. = ALIGN(8192);#else	. = ALIGN(16384);#endif	.data.init_task : {		*(.data.init_task)	}	. = ALIGN(PAGE_SIZE);	.data.page_aligned : {		*(.data.page_aligned)	}	.data.cacheline_aligned : {		*(.data.cacheline_aligned)	}	. = ALIGN(PAGE_SIZE);	__data_nosave : {		__nosave_begin = .;		*(.data.nosave)		. = ALIGN(PAGE_SIZE);		__nosave_end = .;	}/* * And finally the bss */	.bss : {		__bss_start = .;		*(.sbss) *(.scommon)		*(.dynbss)		*(.bss)		*(COMMON)		__bss_stop = .;	}	. = ALIGN(PAGE_SIZE);	_end = . ;	PROVIDE32 (end = .);}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?