On Wed, Sep 16, 2009 at 18:44, Tim Abbott <[email protected]> wrote:
> Signed-off-by: Tim Abbott <[email protected]>
> Cc: Geert Uytterhoeven <[email protected]>
> Cc: Roman Zippel <[email protected]>
> Cc: [email protected]
> Cc: Sam Ravnborg <[email protected]>
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 -- [email protected]
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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html