UML: normalize global variables exported by vmlinux.lds
Normalize global variables exported by vmlinux.lds to conform usage guidelines from include/asm-generic/sections.h. 1) Use _text to mark the start of the kernel image including the head text, and _stext to mark the start of the .text section. 2) Export mandatory global variables __bss_stop. 3) Adjust __init_begin and __init_end to avoid acrossing .text and .data sections. Signed-off-by: Jiang Liu <jiang.liu@huawei.com> Cc: Jeff Dike <jdike@addtoit.com> Cc: Richard Weinberger <richard@nod.at> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									40a3b8df7b
								
							
						
					
					
						commit
						a214a8c68b
					
				@ -57,7 +57,6 @@
 | 
			
		||||
	*(.uml.initcall.init)
 | 
			
		||||
	__uml_initcall_end = .;
 | 
			
		||||
  }
 | 
			
		||||
  __init_end = .;
 | 
			
		||||
 | 
			
		||||
  SECURITY_INIT
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -14,8 +14,6 @@ SECTIONS
 | 
			
		||||
  __binary_start = .;
 | 
			
		||||
  . = ALIGN(4096);		/* Init code and data */
 | 
			
		||||
  _text = .;
 | 
			
		||||
  _stext = .;
 | 
			
		||||
  __init_begin = .;
 | 
			
		||||
  INIT_TEXT_SECTION(PAGE_SIZE)
 | 
			
		||||
 | 
			
		||||
  . = ALIGN(PAGE_SIZE);
 | 
			
		||||
@ -67,6 +65,7 @@ SECTIONS
 | 
			
		||||
  } =0x90909090
 | 
			
		||||
  .plt            : { *(.plt) }
 | 
			
		||||
  .text           : {
 | 
			
		||||
    _stext = .;
 | 
			
		||||
    TEXT_TEXT
 | 
			
		||||
    SCHED_TEXT
 | 
			
		||||
    LOCK_TEXT
 | 
			
		||||
@ -91,7 +90,9 @@ SECTIONS
 | 
			
		||||
 | 
			
		||||
  #include <asm/common.lds.S>
 | 
			
		||||
 | 
			
		||||
  __init_begin = .;
 | 
			
		||||
  init.data : { INIT_DATA }
 | 
			
		||||
  __init_end = .;
 | 
			
		||||
 | 
			
		||||
  /* Ensure the __preinit_array_start label is properly aligned.  We
 | 
			
		||||
     could instead move the label definition inside the section, but
 | 
			
		||||
@ -155,6 +156,7 @@ SECTIONS
 | 
			
		||||
   . = ALIGN(32 / 8);
 | 
			
		||||
  . = ALIGN(32 / 8);
 | 
			
		||||
  }
 | 
			
		||||
   __bss_stop = .;
 | 
			
		||||
  _end = .;
 | 
			
		||||
  PROVIDE (end = .);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -20,13 +20,12 @@ SECTIONS
 | 
			
		||||
  . = START + SIZEOF_HEADERS;
 | 
			
		||||
 | 
			
		||||
  _text = .;
 | 
			
		||||
  _stext = .;
 | 
			
		||||
  __init_begin = .;
 | 
			
		||||
  INIT_TEXT_SECTION(0)
 | 
			
		||||
  . = ALIGN(PAGE_SIZE);
 | 
			
		||||
 | 
			
		||||
  .text      :
 | 
			
		||||
  {
 | 
			
		||||
    _stext = .;
 | 
			
		||||
    TEXT_TEXT
 | 
			
		||||
    SCHED_TEXT
 | 
			
		||||
    LOCK_TEXT
 | 
			
		||||
@ -62,7 +61,10 @@ SECTIONS
 | 
			
		||||
 | 
			
		||||
  #include <asm/common.lds.S>
 | 
			
		||||
 | 
			
		||||
  __init_begin = .;
 | 
			
		||||
  init.data : { INIT_DATA }
 | 
			
		||||
  __init_end = .;
 | 
			
		||||
 | 
			
		||||
  .data    :
 | 
			
		||||
  {
 | 
			
		||||
    INIT_TASK_DATA(KERNEL_STACK_SIZE)
 | 
			
		||||
@ -97,6 +99,7 @@ SECTIONS
 | 
			
		||||
  PROVIDE(_bss_start = .);
 | 
			
		||||
  SBSS(0)
 | 
			
		||||
  BSS(0)
 | 
			
		||||
   __bss_stop = .;
 | 
			
		||||
  _end = .;
 | 
			
		||||
  PROVIDE (end = .);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user