Selaa lähdekoodia

x86/brk: put the brk reservations in their own section

Impact: disambiguate real .bss variables from .brk storage

Add a .brk section after the .bss section.  This has no effect
on the final vmlinux, but it more clearly distinguishes the space
taken by actual .bss symbols, and the variable space reserved
by .brk users.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Jeremy Fitzhardinge 16 vuotta sitten
vanhempi
commit
704439ddf9
2 muutettua tiedostoa jossa 8 lisäystä ja 4 poistoa
  1. 5 3
      arch/x86/kernel/vmlinux_32.lds.S
  2. 3 1
      arch/x86/kernel/vmlinux_64.lds.S

+ 5 - 3
arch/x86/kernel/vmlinux_32.lds.S

@@ -189,16 +189,18 @@ SECTIONS
 	*(.bss)
 	*(.bss)
 	. = ALIGN(4);
 	. = ALIGN(4);
 	__bss_stop = .;
 	__bss_stop = .;
+  }
 
 
+  .brk : AT(ADDR(.brk) - LOAD_OFFSET) {
 	. = ALIGN(PAGE_SIZE);
 	. = ALIGN(PAGE_SIZE);
 	__brk_base = . ;
 	__brk_base = . ;
-	. += 64 * 1024 ;	/* 64k slop space */
+ 	. += 64 * 1024 ;	/* 64k alignment slop space */
 	*(.brk_reservation)	/* areas brk users have reserved */
 	*(.brk_reservation)	/* areas brk users have reserved */
 	__brk_limit = . ;
 	__brk_limit = . ;
-
-  	_end = . ;
   }
   }
 
 
+  _end = . ;
+
   /* Sections to be discarded */
   /* Sections to be discarded */
   /DISCARD/ : {
   /DISCARD/ : {
 	*(.exitcall.exit)
 	*(.exitcall.exit)

+ 3 - 1
arch/x86/kernel/vmlinux_64.lds.S

@@ -247,10 +247,12 @@ SECTIONS
 	*(.bss.page_aligned)
 	*(.bss.page_aligned)
 	*(.bss)
 	*(.bss)
 	__bss_stop = .;
 	__bss_stop = .;
+  }
 
 
+  .brk : AT(ADDR(.brk) - LOAD_OFFSET) {
 	. = ALIGN(PAGE_SIZE);
 	. = ALIGN(PAGE_SIZE);
 	__brk_base = . ;
 	__brk_base = . ;
-	. += 64 * 1024;		/* 64k slop space */
+ 	. += 64 * 1024 ;	/* 64k alignment slop space */
 	*(.brk_reservation)	/* areas brk users have reserved */
 	*(.brk_reservation)	/* areas brk users have reserved */
 	__brk_limit = . ;
 	__brk_limit = . ;
   }
   }