x86, vmlinux.lds: unify remaining parts
authorSam Ravnborg <sam@ravnborg.org>
Wed, 29 Apr 2009 07:47:29 +0000 (09:47 +0200)
committerIngo Molnar <mingo@elte.hu>
Wed, 29 Apr 2009 08:20:35 +0000 (10:20 +0200)
32 bit:
- explicit page align .bss
- move ALING() out of .brk output section
- discard *(.eh_frame)

64 bit:
- move ALIGN() out of .bss output section
- move ALIGN() out of .brk output section
- use a dedicated section to define _end

[ Impact: unify and fix section alignments in linker script ]

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Tim Abbott <tabbott@MIT.EDU>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
LKML-Reference: <1240991249-27117-13-git-send-email-sam@ravnborg.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/vmlinux.lds.S
arch/x86/kernel/vmlinux_32.lds.S [deleted file]
arch/x86/kernel/vmlinux_64.lds.S [deleted file]

index 1ea2b85..ef3e4f1 100644 (file)
@@ -359,12 +359,34 @@ SECTIONS
        /* use another section data.init2, see PERCPU_VADDR() above */
 #endif
 
+       /* BSS */
+       . = ALIGN(PAGE_SIZE);
+       .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
+               __bss_start = .;
+               *(.bss.page_aligned)
+               *(.bss)
+               . = ALIGN(4);
+               __bss_stop = .;
+       }
 
-#ifdef CONFIG_X86_32
-# include "vmlinux_32.lds.S"
-#else
-# include "vmlinux_64.lds.S"
-#endif
+       . = ALIGN(PAGE_SIZE);
+       .brk : AT(ADDR(.brk) - LOAD_OFFSET) {
+               __brk_base = .;
+               . += 64 * 1024;         /* 64k alignment slop space */
+               *(.brk_reservation)     /* areas brk users have reserved */
+               __brk_limit = .;
+       }
+
+       .end : AT(ADDR(.end) - LOAD_OFFSET) {
+               _end = .;
+       }
+
+       /* Sections to be discarded */
+       /DISCARD/ : {
+               *(.exitcall.exit)
+               *(.eh_frame)
+               *(.discard)
+       }
 
         STABS_DEBUG
         DWARF_DEBUG
diff --git a/arch/x86/kernel/vmlinux_32.lds.S b/arch/x86/kernel/vmlinux_32.lds.S
deleted file mode 100644 (file)
index d23ee2c..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-       /* BSS */
-       .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
-               __bss_start = .;
-               *(.bss.page_aligned)
-               *(.bss)
-               . = ALIGN(4);
-               __bss_stop = .;
-       }
-
-       .brk : AT(ADDR(.brk) - LOAD_OFFSET) {
-               . = ALIGN(PAGE_SIZE);
-               __brk_base = .;
-               . += 64 * 1024;         /* 64k alignment slop space */
-               *(.brk_reservation)     /* areas brk users have reserved */
-               __brk_limit = .;
-       }
-
-       .end : AT(ADDR(.end) - LOAD_OFFSET) {
-               _end = . ;
-       }
-
-       /* Sections to be discarded */
-       /DISCARD/ : {
-               *(.exitcall.exit)
-               *(.discard)
-       }
diff --git a/arch/x86/kernel/vmlinux_64.lds.S b/arch/x86/kernel/vmlinux_64.lds.S
deleted file mode 100644 (file)
index a539366..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-       .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
-               . = ALIGN(PAGE_SIZE);
-               __bss_start = .;                /* BSS */
-               *(.bss.page_aligned)
-               *(.bss)
-               __bss_stop = .;
-       }
-
-       .brk : AT(ADDR(.brk) - LOAD_OFFSET) {
-               . = ALIGN(PAGE_SIZE);
-               __brk_base = .;
-               . += 64 * 1024;         /* 64k alignment slop space */
-               *(.brk_reservation)     /* areas brk users have reserved */
-               __brk_limit = .;
-       }
-
-       _end = . ;
-
-       /* Sections to be discarded */
-       /DISCARD/ : {
-               *(.exitcall.exit)
-               *(.eh_frame)
-               *(.discard)
-       }