Re: current binutils trunk fails to build bootable kernel imagefor some configurations

From: Alan Modra
Date: Thu Jul 23 2009 - 02:01:35 EST


On Thu, Jul 23, 2009 at 07:05:22AM +0200, Sam Ravnborg wrote:
> On Thu, Jul 23, 2009 at 10:19:39AM +0930, Alan Modra wrote:
> > .data_nosave ALIGN(PAGE_SIZE) : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
>
> Do you recall when this started to be supported?

Forever.

> I think I tried this and it failed - but I may be wrong here.

I can think of at least two things that might cause my suggestion to
fail.
1) .data_nosave input sections may have alignments greater than
PAGE_SIZE, but we're setting the start address explicity.
2) following sections won't be aligned to PAGE_SIZE if .data_nosave is
empty.

Hmm, there is another option that I'd forgotten about.

.data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) ALIGN(PAGE_SIZE) {

This avoids (1) above since it only increases alignment. Support for
this form of alignment was added 2005-09.

> Also - do there exist an option to tell what sections has not been
> covered by a linker script?

No. You could put

/DISCARD/ : { *(*) }

at the end of your script, then generate a map file. Discarded
sections are reported.

--
Alan Modra
Australia Development Lab, IBM
--
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/