Re: [PATCH] cris: Cleanup linker script using new linker scriptmacros.

From: Jesper Nilsson
Date: Tue Sep 15 2009 - 03:33:38 EST


On Mon, Sep 14, 2009 at 10:27:18PM +0200, Tim Abbott wrote:
> On Mon, 14 Sep 2009, Jesper Nilsson wrote:
> > On Mon, Sep 07, 2009 at 05:06:33AM +0200, Tim Abbott wrote:
> > > . = ALIGN (4);
> > > ___data_start = . ;
> > > __Sdata = . ;
> > > - .data : { /* Data */
> > > - DATA_DATA
> > > - }
> > > + RW_DATA_SECTION(0, PAGE_SIZE, PAGE_SIZE)
> >
> > This causes some problems, and I'm not ldscript guru enough to immediately
> > grasp the problem. What I get is this:
> >
> > ...
> > LD vmlinux
> > arch/cris/kernel/vmlinux.lds:326 cannot move location counter backwards (from c017e000 to 00000000)
> > make[1]: *** [vmlinux] Error 1
> > make: *** [sub-make] Error 2
>
> Hmm. I spent a bit looking at it, and I don't have a guess for what the
> problem is there.
>
> > I've dropped that part of the patch, and I'll try to
> > boot test the rest of the patch this week.
>
> Yeah, it's probably fine to just drop it for now, since it has fairly
> small cleanup impact on cris.
>
> However, just dropping that hunk is not going to work -- you'll need to
> re-add the .data.init_task hunk below (which had been part of
> RW_DATA_SECTION).

Yes, sorry, I did that, but didn't mention it.
Or rather, I added: INIT_TASK_DATA_SECTION(PAGE_SIZE) instead.

> -Tim Abbott
>
> > > __edata = . ; /* End of data section. */
> > > _edata = . ;
> > >
> > > - . = ALIGN(PAGE_SIZE); /* init_task and stack, must be aligned. */
> > > - .data.init_task : { *(.data.init_task) }
> > > -
> > > . = ALIGN(PAGE_SIZE); /* Init code and data. */
> > > __init_begin = .;

/^JN - Jesper Nilsson
--
Jesper Nilsson -- jesper.nilsson@xxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/