[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20061024210140.GB14225@in.ibm.com>
Date: Tue, 24 Oct 2006 17:01:40 -0400
From: Vivek Goyal <vgoyal@...ibm.com>
To: linux kernel mailing list <linux-kernel@...r.kernel.org>
Cc: Andi Kleen <ak@....de>, Jan Beulich <jbeulich@...ell.com>,
Ian Campbell <Ian.Campbell@...source.com>
Subject: [PATCH] x86_64: Some vmlinux.lds.S cleanups
o Some cleanups based on Jan Beulich's suggestions. It boots on my box. Hope
does not break anything else.
o Renamed program header name data.init to init. "init" is now supposed
to contain init text/data.
o Moved sections ".data.init_task" and ".data.page_aligned" into program
header "data" as they don't fit logically into "init".
o Got rid of "R" permission for "note" phdr as only boot loaer is supposed
to look at note phdr.
o Got rid of "E" permission for "data" phdr.
Signed-off-by: Vivek Goyal <vgoyal@...ibm.com>
---
arch/x86_64/kernel/vmlinux.lds.S | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff -puN arch/x86_64/kernel/vmlinux.lds.S~x86_64-vmlinux-lds-S-cleanup arch/x86_64/kernel/vmlinux.lds.S
--- linux-2.6.19-rc3/arch/x86_64/kernel/vmlinux.lds.S~x86_64-vmlinux-lds-S-cleanup 2006-10-24 15:58:23.000000000 -0400
+++ linux-2.6.19-rc3-root/arch/x86_64/kernel/vmlinux.lds.S 2006-10-24 16:35:56.000000000 -0400
@@ -15,10 +15,10 @@ ENTRY(phys_startup_64)
jiffies_64 = jiffies;
PHDRS {
text PT_LOAD FLAGS(5); /* R_E */
- data PT_LOAD FLAGS(7); /* RWE */
+ data PT_LOAD FLAGS(6); /* RW_ */
user PT_LOAD FLAGS(7); /* RWE */
- data.init PT_LOAD FLAGS(7); /* RWE */
- note PT_NOTE FLAGS(4); /* R__ */
+ init PT_LOAD FLAGS(7); /* RWE */
+ note PT_NOTE FLAGS(0); /* None */
}
SECTIONS
{
@@ -78,9 +78,19 @@ SECTIONS
*(.data.read_mostly)
}
+ . = ALIGN(8192); /* init_task */
+ .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
+ *(.data.init_task)
+ }
+
+ . = ALIGN(4096);
+ .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
+ *(.data.page_aligned)
+ }
+
#define VSYSCALL_ADDR (-10*1024*1024)
-#define VSYSCALL_PHYS_ADDR ((LOADADDR(.data.read_mostly) + SIZEOF(.data.read_mostly) + 4095) & ~(4095))
-#define VSYSCALL_VIRT_ADDR ((ADDR(.data.read_mostly) + SIZEOF(.data.read_mostly) + 4095) & ~(4095))
+#define VSYSCALL_PHYS_ADDR ((LOADADDR(.data.page_aligned) + SIZEOF(.data.page_aligned) + 4095) & ~(4095))
+#define VSYSCALL_VIRT_ADDR ((ADDR(.data.page_aligned) + SIZEOF(.data.page_aligned) + 4095) & ~(4095))
#define VLOAD_OFFSET (VSYSCALL_ADDR - VSYSCALL_PHYS_ADDR)
#define VLOAD(x) (ADDR(x) - VLOAD_OFFSET)
@@ -129,23 +139,13 @@ SECTIONS
#undef VVIRT_OFFSET
#undef VVIRT
- . = ALIGN(8192); /* init_task */
- .data.init_task : AT(ADDR(.data.init_task) - LOAD_OFFSET) {
- *(.data.init_task)
- }:data.init
-
- . = ALIGN(4096);
- .data.page_aligned : AT(ADDR(.data.page_aligned) - LOAD_OFFSET) {
- *(.data.page_aligned)
- }
-
/* might get freed after init */
. = ALIGN(4096);
__smp_alt_begin = .;
__smp_alt_instructions = .;
.smp_altinstructions : AT(ADDR(.smp_altinstructions) - LOAD_OFFSET) {
*(.smp_altinstructions)
- }
+ }:init
__smp_alt_instructions_end = .;
. = ALIGN(8);
__smp_locks = .;
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists