Re: Please include const-sections into linux-next

David Rientjes
2011-10-15T23:03:28Z

On Fri, 14 Oct 2011, James Bottomley wrote:

> It's not incredibly trivial: it causes a compile failure on parisc:
>
> mm/percpu.c:1372: error: __setup_str_percpu_alloc_setup causes a section
> type conflict
> make[1]: *** [mm/percpu.o] Error 1
>
> I have no idea why, though.
>

Not sure why this would only happen on parisc, but I haven't looked at it
closely. It means something qualified with const is being defined in a
section with other definitions that are not const, or vice versa.

For example:

static int x __attribute__((__section__("foo"))) = 1;
static const int y __attribute__((__section__("foo"))) = 2;

will result in the same error. Since __setup_param() places
__setup_str_percpu_alloc_setup in .init.rodata as const, it means
something else has already been defined in .init.rodata without being
qualified as such.