All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Linker script cleanup patches for frv
@ 2009-09-16 16:41 Tim Abbott
  2009-09-16 16:41 ` [PATCH v2 1/2] frv: remove unused .altinstructions code Tim Abbott
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Tim Abbott @ 2009-09-16 16:41 UTC (permalink / raw)
  To: David Howells; +Cc: linux-kernel, Sam Ravnborg, Tim Abbott

This is an updated version of the patch series I sent in late July
cleaning up the frv architecture's linker scripts.  The only change is
that it is rebased on top of Linus's current master.

This cross-architecture linker script cleanup project is in
preparation for adding support for building the kernel with
-ffunction-sections -fdata-sections, which is a prerequisite for
Ksplice.

	-Tim Abbott

Nelson Elhage (2):
  frv: remove unused .altinstructions code
  frv: clean up linker script using new linker script macros.

 arch/frv/kernel/vmlinux.lds.S |   66 ++++------------------------------------
 1 files changed, 7 insertions(+), 59 deletions(-)


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH v2 1/2] frv: remove unused .altinstructions code
  2009-09-16 16:41 [PATCH v2 0/2] Linker script cleanup patches for frv Tim Abbott
@ 2009-09-16 16:41 ` Tim Abbott
  2009-09-16 16:41 ` [PATCH v2 2/2] frv: clean up linker script using new linker script macros Tim Abbott
  2009-09-17 13:01 ` [PATCH v2 0/2] Linker script cleanup patches for frv David Howells
  2 siblings, 0 replies; 4+ messages in thread
From: Tim Abbott @ 2009-09-16 16:41 UTC (permalink / raw)
  To: David Howells
  Cc: linux-kernel, Sam Ravnborg, Nelson Elhage, Tim Abbott,
	David Howells

From: Nelson Elhage <nelhage@ksplice.com>

It appears that frv copied the .altinstructions definitions in its linker
script from x86. Since frv doesn't put anything in those sections, this
is just dead code.

Signed-off-by: Nelson Elhage <nelhage@ksplice.com>
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: David Howells <dhowells@redhat.com>
---
 arch/frv/kernel/vmlinux.lds.S |    5 -----
 1 files changed, 0 insertions(+), 5 deletions(-)

diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S
index 7dbf41f..cfb4181 100644
--- a/arch/frv/kernel/vmlinux.lds.S
+++ b/arch/frv/kernel/vmlinux.lds.S
@@ -51,11 +51,6 @@ SECTIONS
   .con_initcall.init : { *(.con_initcall.init) }
   __con_initcall_end = .;
   SECURITY_INIT
-  . = ALIGN(4);
-  __alt_instructions = .;
-  .altinstructions : { *(.altinstructions) }
-  __alt_instructions_end = .;
- .altinstr_replacement : { *(.altinstr_replacement) }
 
   PERCPU(4096)
 
-- 
1.6.3.3


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH v2 2/2] frv: clean up linker script using new linker script macros.
  2009-09-16 16:41 [PATCH v2 0/2] Linker script cleanup patches for frv Tim Abbott
  2009-09-16 16:41 ` [PATCH v2 1/2] frv: remove unused .altinstructions code Tim Abbott
@ 2009-09-16 16:41 ` Tim Abbott
  2009-09-17 13:01 ` [PATCH v2 0/2] Linker script cleanup patches for frv David Howells
  2 siblings, 0 replies; 4+ messages in thread
From: Tim Abbott @ 2009-09-16 16:41 UTC (permalink / raw)
  To: David Howells
  Cc: linux-kernel, Sam Ravnborg, Nelson Elhage, Tim Abbott,
	David Howells

From: Nelson Elhage <nelhage@ksplice.com>

This is largely a straightforward conversion. The patch results in
fewer output sections, and some data being reordered, but should have
no functional impact.

Also, note that this patch moves some data (namely, init_task and
cacheline-aligned) inside [_sdata,_edata].

Because frv already builds using -ffunction-sections -fdata-sections,
we can't use BSS_SECTION or RW_DATA_SECTION yet, since they do not
currently include the required .bss.* and .data.* sections.

Signed-off-by: Nelson Elhage <nelhage@ksplice.com>
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: David Howells <dhowells@redhat.com>
---
 arch/frv/kernel/vmlinux.lds.S |   61 +++++------------------------------------
 1 files changed, 7 insertions(+), 54 deletions(-)

diff --git a/arch/frv/kernel/vmlinux.lds.S b/arch/frv/kernel/vmlinux.lds.S
index cfb4181..cbe811f 100644
--- a/arch/frv/kernel/vmlinux.lds.S
+++ b/arch/frv/kernel/vmlinux.lds.S
@@ -35,45 +35,13 @@ SECTIONS
 #endif
   }
   _einittext = .;
-  .init.data : { INIT_DATA }
-
-  . = ALIGN(8);
-  __setup_start = .;
-  .setup.init : { KEEP(*(.init.setup)) }
-  __setup_end = .;
-
-  __initcall_start = .;
-  .initcall.init : {
-	INITCALLS
-  }
-  __initcall_end = .;
-  __con_initcall_start = .;
-  .con_initcall.init : { *(.con_initcall.init) }
-  __con_initcall_end = .;
-  SECURITY_INIT
 
+  INIT_DATA_SECTION(8)
   PERCPU(4096)
 
-#ifdef CONFIG_BLK_DEV_INITRD
-  . = ALIGN(4096);
-  __initramfs_start = .;
-  .init.ramfs : { *(.init.ramfs) }
-  __initramfs_end = .;
-#endif
-
-  . = ALIGN(THREAD_SIZE);
+  . = ALIGN(PAGE_SIZE);
   __init_end = .;
 
-  /* put sections together that have massive alignment issues */
-  . = ALIGN(THREAD_SIZE);
-  .data.init_task : {
-	  /* init task record & stack */
-	  *(.data.init_task)
-  }
-
-  . = ALIGN(L1_CACHE_BYTES);
-  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
-
   .trap : {
 	/* trap table management - read entry-table.S before modifying */
 	. = ALIGN(8192);
@@ -119,13 +87,12 @@ SECTIONS
 
 	}
 
-  . = ALIGN(8);		/* Exception table */
-  __start___ex_table = .;
-  __ex_table : { KEEP(*(__ex_table)) }
-  __stop___ex_table = .;
+  EXCEPTION_TABLE(8)
 
   _sdata = .;
   .data : {			/* Data */
+	INIT_TASK_DATA(THREAD_SIZE)
+	CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES)
 	DATA_DATA
 	*(.data.*)
 	EXIT_DATA
@@ -154,22 +121,8 @@ SECTIONS
   . = ALIGN(PAGE_SIZE);
   __kernel_image_end = .;
 
-  /* Stabs debugging sections.  */
-  .stab 0 : { *(.stab) }
-  .stabstr 0 : { *(.stabstr) }
-  .stab.excl 0 : { *(.stab.excl) }
-  .stab.exclstr 0 : { *(.stab.exclstr) }
-  .stab.index 0 : { *(.stab.index) }
-  .stab.indexstr 0 : { *(.stab.indexstr) }
-
-  .debug_line		0 : { *(.debug_line) }
-  .debug_info		0 : { *(.debug_info) }
-  .debug_abbrev		0 : { *(.debug_abbrev) }
-  .debug_aranges	0 : { *(.debug_aranges) }
-  .debug_frame		0 : { *(.debug_frame) }
-  .debug_pubnames	0 : { *(.debug_pubnames) }
-  .debug_str		0 : { *(.debug_str) }
-  .debug_ranges		0 : { *(.debug_ranges) }
+  STABS_DEBUG
+  DWARF_DEBUG
 
   .comment 0 : { *(.comment) }
 
-- 
1.6.3.3


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH v2 0/2] Linker script cleanup patches for frv
  2009-09-16 16:41 [PATCH v2 0/2] Linker script cleanup patches for frv Tim Abbott
  2009-09-16 16:41 ` [PATCH v2 1/2] frv: remove unused .altinstructions code Tim Abbott
  2009-09-16 16:41 ` [PATCH v2 2/2] frv: clean up linker script using new linker script macros Tim Abbott
@ 2009-09-17 13:01 ` David Howells
  2 siblings, 0 replies; 4+ messages in thread
From: David Howells @ 2009-09-17 13:01 UTC (permalink / raw)
  To: Tim Abbott; +Cc: dhowells, linux-kernel, Sam Ravnborg

Tim Abbott <tabbott@ksplice.com> wrote:

> This is an updated version of the patch series I sent in late July
> cleaning up the frv architecture's linker scripts.  The only change is
> that it is rebased on top of Linus's current master.
> 
> This cross-architecture linker script cleanup project is in
> preparation for adding support for building the kernel with
> -ffunction-sections -fdata-sections, which is a prerequisite for
> Ksplice.

Acked-by: David Howells <dhowells@redhat.com>

for both patches

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-09-17 13:01 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-16 16:41 [PATCH v2 0/2] Linker script cleanup patches for frv Tim Abbott
2009-09-16 16:41 ` [PATCH v2 1/2] frv: remove unused .altinstructions code Tim Abbott
2009-09-16 16:41 ` [PATCH v2 2/2] frv: clean up linker script using new linker script macros Tim Abbott
2009-09-17 13:01 ` [PATCH v2 0/2] Linker script cleanup patches for frv David Howells

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.