On Thu, 19 Aug 2004, Roman Zippel wrote:
> On Wed, 18 Aug 2004, Finn Thain wrote:
> > I'm afraid it doesn't boot for me. Penguin hangs after logging "killing
> > sonic ethernet", and before logging "booting linux, fasten seatbelts
> > please".
> 
> The patch below should work better. The second program header has to start 
> after the bss.
> 
> bye, Roman
> 
> Index: arch/m68k/kernel/vmlinux-std.lds
> ===================================================================
> RCS file: /home/linux-m68k/cvsroot/linux/arch/m68k/kernel/vmlinux-std.lds,v
> retrieving revision 1.3
> diff -u -p -r1.3 vmlinux-std.lds
> --- arch/m68k/kernel/vmlinux-std.lds  10 May 2004 18:39:29 -0000      1.3
> +++ arch/m68k/kernel/vmlinux-std.lds  19 Aug 2004 00:31:26 -0000
> @@ -15,7 +15,7 @@ SECTIONS
>       SCHED_TEXT
>       *(.fixup)
>       *(.gnu.warning)
> -     } = 0x4e75
> +     } :text = 0x4e75
>  
>    . = ALIGN(16);             /* Exception table */
>    __start___ex_table = .;
> @@ -34,7 +34,7 @@ SECTIONS
>    .bss : { *(.bss) }         /* BSS */
>  
>    . = ALIGN(16);
> -  .data.cacheline_aligned : { *(.data.cacheline_aligned) }
> +  .data.cacheline_aligned : { *(.data.cacheline_aligned) } :data
>  
>    _edata = .;                        /* End of data section */

Sun-3 is still broken since vmlinux-sun3.lds wasn't updated. Does the patch
below look OK? vmlinux-sun3.lds doesn't have a section for
`.data.cacheline_aligned', so I added `:data' to `.data' to avoid the linker
complaining about:

    BFD: vmlinux.tmp: warning: Empty loadable segment detected

Obviously this patch wasn't tested on a real Sun-3.

--- linux-m68k-2.6.x/arch/m68k/kernel/vmlinux-sun3.lds.orig     2004-05-24 
11:13:22.000000000 +0200
+++ linux-m68k-2.6.x/arch/m68k/kernel/vmlinux-sun3.lds  2004-11-10 
21:10:31.000000000 +0100
@@ -16,7 +16,7 @@ SECTIONS
        SCHED_TEXT
        *(.fixup)
        *(.gnu.warning)
-       } = 0x4e75
+       } :text = 0x4e75
        RODATA
 
   _etext = .;                  /* End of text section */
@@ -28,7 +28,7 @@ SECTIONS
        __start___ex_table = .;
        *(__ex_table)
        __stop___ex_table = .;
-       }
+       } :data
   /* End of data goes *here* so that freeing init code works properly. */
   _edata = .;
 

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

Reply via email to