warning: allocated section `.data_nosave' not in segment

Sean MacLennan smaclennan at pikatech.com
Tue Sep 29 01:53:16 EST 2009


I looked into it some more.... the patch converts this section:

        . = ALIGN(PAGE_SIZE);
        .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
               __nosave_begin = .;
               *(.data.nosave)
               . = ALIGN(PAGE_SIZE);
               __nosave_end = .;
        }

to:

	.data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
		NOSAVE_DATA
	}

If you expand the NOSAVE_DATA macro, you get:

	.data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
		. = ALIGN(PAGE_SIZE);
		VMLINUX_SYMBOL(__nosave_begin) = .;
		*(.data.nosave)
		. = ALIGN(PAGE_SIZE);
		VMLINUX_SYMBOL(__nosave_end) = .;
	}

If you ignore the VMLINUX_SYMBOL, the only difference is moving the
ALIGN inside the brackets. If I move the ALIGN back where it was, then
the warning goes away.

But other sections moved the ALIGN without an issue. Could it be a
compiler problem? We are using  version 4.0.0 (DENX ELDK 4.1 4.0.0).

Cheers,
   Sean


More information about the Linuxppc-dev mailing list