lkml.org 
[lkml]   [2006]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH] x86_64: Some vmlinux.lds.S cleanups
I was about to ack it when I saw that you left .bss in init - that doesn't seem
too good an idea... Jan

>>> Vivek Goyal <vgoyal@in.ibm.com> 24.10.06 23:01 >>>


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@in.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@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2006-10-26 09:09    [W:0.039 / U:8.484 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site