Re: [PATCH v2 2/2] m68k: Cleanup linker scripts using new linker script macros.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Sep 16, 2009 at 18:44, Tim Abbott <tabbott@xxxxxxxxxxx> wrote:
Signed-off-by: Tim Abbott <tabbott@xxxxxxxxxxx>
Cc: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
Cc: Roman Zippel <zippel@xxxxxxxxxxxxxx>
Cc: linux-m68k@xxxxxxxxxxxxxxxxxxxx
Cc: Sam Ravnborg <sam@xxxxxxxxxxxx>

This patch must do something wrong, as it now fails to boot on ARAnyM:

| CPU: Double bus fault detected !
| CPU: Halting

Haven't investigated why yet, though...

---
 arch/m68k/kernel/vmlinux-std.lds  |   53 +++++++-----------------------------
 arch/m68k/kernel/vmlinux-sun3.lds |   53 +++++++------------------------------
 2 files changed, 21 insertions(+), 85 deletions(-)

diff --git a/arch/m68k/kernel/vmlinux-std.lds b/arch/m68k/kernel/vmlinux-std.lds
index 47eac19..5927487 100644
--- a/arch/m68k/kernel/vmlinux-std.lds
+++ b/arch/m68k/kernel/vmlinux-std.lds
@@ -2,6 +2,7 @@

 #include <asm-generic/vmlinux.lds.h>
 #include <asm/page.h>
+#include <asm/thread_info.h>

 OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
 OUTPUT_ARCH(m68k)
@@ -22,73 +23,41 @@ SECTIONS

  _etext = .;                  /* End of text section */

-  . = ALIGN(16);               /* Exception table */
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  EXCEPTION_TABLE(16)

  RODATA

-  .data : {                    /* Data */
-       DATA_DATA
-       CONSTRUCTORS
-       }
+  RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE)

-  . = ALIGN(16);
-  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
-
-  .bss : { *(.bss) }           /* BSS */
+  BSS_SECTION(0, 0, 0)

  _edata = .;                  /* End of data section */

  /* will be freed after init */
  . = ALIGN(PAGE_SIZE);                /* Init code and data */
  __init_begin = .;
-  .init.text : {
-       _sinittext = .;
-       INIT_TEXT
-       _einittext = .;
-  } :data
+  INIT_TEXT_SECTION(PAGE_SIZE) :data
+  INIT_DATA_SECTION(16)
  .init.data : { INIT_DATA }
-  . = ALIGN(16);
-  __setup_start = .;
-  .init.setup : { *(.init.setup) }
-  __setup_end = .;
-  __initcall_start = .;
+  .init.setup : { INIT_SETUP(16) }
  .initcall.init : {
-       INITCALLS
+       INIT_CALLS
  }
-  __initcall_end = .;
-  __con_initcall_start = .;
-  .con_initcall.init : { *(.con_initcall.init) }
-  __con_initcall_end = .;
+  .con_initcall.init : { CON_INITCALL }
  .m68k_fixup : {
       __start_fixup = .;
       *(.m68k_fixup)
       __stop_fixup = .;
  }
  SECURITY_INIT
-#ifdef CONFIG_BLK_DEV_INITRD
-  . = ALIGN(8192);
-  __initramfs_start = .;
-  .init.ramfs : { *(.init.ramfs) }
-  __initramfs_end = .;
-#endif
+  .init.ramfs : { INIT_RAM_FS }
  NOTES
  . = ALIGN(8192);
  __init_end = .;

-  .data.init_task : { *(.data.init_task) }     /* The initial task and kernel stack */
-
  _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) }
+  STABS_DEBUG
  .comment 0 : { *(.comment) }

  /* Sections to be discarded */
diff --git a/arch/m68k/kernel/vmlinux-sun3.lds b/arch/m68k/kernel/vmlinux-sun3.lds
index 03efaf0..607d214 100644
--- a/arch/m68k/kernel/vmlinux-sun3.lds
+++ b/arch/m68k/kernel/vmlinux-sun3.lds
@@ -2,6 +2,7 @@

 #include <asm-generic/vmlinux.lds.h>
 #include <asm/page.h>
+#include <asm/thread_info.h>

 OUTPUT_FORMAT("elf32-m68k", "elf32-m68k", "elf32-m68k")
 OUTPUT_ARCH(m68k)
@@ -23,14 +24,8 @@ SECTIONS

  _etext = .;                  /* End of text section */

-  .data : {                    /* Data */
-       DATA_DATA
-       CONSTRUCTORS
-       . = ALIGN(16);          /* Exception table */
-       __start___ex_table = .;
-       *(__ex_table)
-       __stop___ex_table = .;
-       } :data
+  EXCEPTION_TABLE(16)
+  RW_DATA_SECTION(16, PAGE_SIZE, THREAD_SIZE) :data
  /* End of data goes *here* so that freeing init code works properly. */
  _edata = .;
  NOTES
@@ -38,56 +33,28 @@ SECTIONS
  /* will be freed after init */
  . = ALIGN(PAGE_SIZE);        /* Init code and data */
 __init_begin = .;
-       .init.text : {
-               _sinittext = .;
-               INIT_TEXT
-               _einittext = .;
-       }
+       INIT_TEXT_SECTION(PAGE_SIZE)
       .init.data : { INIT_DATA }
-       . = ALIGN(16);
-       __setup_start = .;
-       .init.setup : { *(.init.setup) }
-       __setup_end = .;
-       __initcall_start = .;
+       .init.setup : { INIT_SETUP(16) }
       .initcall.init : {
-               INITCALLS
+               INIT_CALLS
       }
-       __initcall_end = .;
-       __con_initcall_start = .;
-       .con_initcall.init : { *(.con_initcall.init) }
-       __con_initcall_end = .;
+       .con_initcall.init : { CON_INITCALL }
       .m68k_fixup : {
               __start_fixup = .;
               *(.m68k_fixup)
               __stop_fixup = .;
       }
       SECURITY_INIT
-#ifdef CONFIG_BLK_DEV_INITRD
-       . = ALIGN(PAGE_SIZE);
-       __initramfs_start = .;
-       .init.ramfs : { *(.init.ramfs) }
-       __initramfs_end = .;
-#endif
+       .init.ramfs : { INIT_RAM_FS }
       . = ALIGN(PAGE_SIZE);
       __init_end = .;
-       .data.init.task : { *(.data.init_task) }
-

-  .bss : { *(.bss) }           /* BSS */
+  BSS_SECTION(0, 0, 0)

  _end = . ;

-  .crap : {
-       /* Stabs debugging sections.  */
-       *(.stab)
-       *(.stabstr)
-       *(.stab.excl)
-       *(.stab.exclstr)
-       *(.stab.index)
-       *(.stab.indexstr)
-       *(.comment)
-       *(.note)
-  }
+  STABS_DEBUG

  /* Sections to be discarded */
  DISCARDS
--
1.6.3.3





-- 
Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-m68k" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux