summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2009-03-15 07:20:47 +0100
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>2009-03-17 20:58:15 +0100
commit704439ddf9f8ff1fc8c6d8abaac4bc4c95697e39 (patch)
tree51faea24d641a53086d5c37cad9f4cbb0b5c6f0b
parentx86/brk: make the brk reservation symbols inaccessible from C (diff)
downloadlinux-704439ddf9f8ff1fc8c6d8abaac4bc4c95697e39.tar.xz
linux-704439ddf9f8ff1fc8c6d8abaac4bc4c95697e39.zip
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>
-rw-r--r--arch/x86/kernel/vmlinux_32.lds.S8
-rw-r--r--arch/x86/kernel/vmlinux_64.lds.S4
2 files changed, 8 insertions, 4 deletions
diff --git a/arch/x86/kernel/vmlinux_32.lds.S b/arch/x86/kernel/vmlinux_32.lds.S
index 98424f33e077..de14973e47fd 100644
--- a/arch/x86/kernel/vmlinux_32.lds.S
+++ b/arch/x86/kernel/vmlinux_32.lds.S
@@ -189,16 +189,18 @@ SECTIONS
*(.bss)
. = ALIGN(4);
__bss_stop = .;
+ }
+ .brk : AT(ADDR(.brk) - LOAD_OFFSET) {
. = ALIGN(PAGE_SIZE);
__brk_base = . ;
- . += 64 * 1024 ; /* 64k slop space */
+ . += 64 * 1024 ; /* 64k alignment slop space */
*(.brk_reservation) /* areas brk users have reserved */
__brk_limit = . ;
-
- _end = . ;
}
+ _end = . ;
+
/* Sections to be discarded */
/DISCARD/ : {
*(.exitcall.exit)
diff --git a/arch/x86/kernel/vmlinux_64.lds.S b/arch/x86/kernel/vmlinux_64.lds.S
index 7996687663a2..c8742507b030 100644
--- a/arch/x86/kernel/vmlinux_64.lds.S
+++ b/arch/x86/kernel/vmlinux_64.lds.S
@@ -247,10 +247,12 @@ SECTIONS
*(.bss.page_aligned)
*(.bss)
__bss_stop = .;
+ }
+ .brk : AT(ADDR(.brk) - LOAD_OFFSET) {
. = ALIGN(PAGE_SIZE);
__brk_base = . ;
- . += 64 * 1024; /* 64k slop space */
+ . += 64 * 1024 ; /* 64k alignment slop space */
*(.brk_reservation) /* areas brk users have reserved */
__brk_limit = . ;
}