On Mon, 2009-08-03 at 23:52 +0200, Sam Ravnborg wrote: > On Mon, Aug 03, 2009 at 05:07:23PM -0400, Trond Myklebust wrote: > > On Mon, 2009-08-03 at 22:57 +0200, Frans Pop wrote: > > > $ make init/do_mounts.o > > > CHK include/linux/version.h > > > CHK include/linux/utsrelease.h > > > SYMLINK include/asm -> include/asm-parisc > > > CALL scripts/checksyscalls.sh > > > CC init/do_mounts.o > > > > > > while: > > > > > > $ make fs/nfs/nfsroot.o > > > CHK include/linux/version.h > > > CHK include/linux/utsrelease.h > > > SYMLINK include/asm -> include/asm-parisc > > > CALL scripts/checksyscalls.sh > > > CC fs/nfs/nfsroot.o > > > fs/nfs/nfsroot.c:403: error: __setup_str_nfs_root_setup causes a section type > > > conflict > > > > To me that looks like some kind of compiler bug. > > unspecified behaviour is a better name for it. > > We have two variables we have forced a section on. > One variable is marked RO by the compiler while the other is not. > This results in a section type conflict because all > symbols needs to have the same falgs. > > We usually triggers this with powerpc builds (64 bit IIRC), > and now with parisc too. > > The only way to fix it is to move one of the offending > variables to __initdata. > There is two variales to consider - the compiler only > mention one of them. > > Trying to declare the variables const etc usually has > no good effect. So why would it be happening in the NFSroot case, but not in do_mounts.c? They're both using the standard __setup() macro with a constant string, and an __init function argument. Futhermore, when grepping for '__initconst', it seems that the combination with 'static const' is the norm rather than the exception. Trond -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html