Re: nfs: __setup_str_nfs_root_setup causes a section type conflict

From: Frans Pop
Date: Mon Aug 03 2009 - 16:58:01 EST


On Monday 03 August 2009, Trond Myklebust wrote:
> On Mon, 2009-08-03 at 21:21 +0200, Frans Pop wrote:
> > On Monday 03 August 2009, Trond Myklebust wrote:
> > > > > /home/fjp/projects/kernel/linux-2.6/fs/nfs/nfsroot.c:403:
> > > > > error: __setup_str_nfs_root_setup causes a section type
> > > > > conflict
> > >
> > > If you do a 'make fs/nfs/nfsroot.i', and then look at the resulting
> > > file fs/nfs/nfsroot.i, what does the line that defines
> > > '__setup_str_nfs_root_setup' look like?
> >
> > $ grep __setup_str_nfs_root_setup fs/nfs/nfsroot.i
> >
> > static const char __setup_str_nfs_root_setup[] __attribute__
> > ((__section__(".init.rodata"))) __attribute__((aligned(1))) = "nfsroot=";
> > static struct obs_kernel_param __setup_nfs_root_setup __attribute__((__used__))
> > __attribute__ ((__section__(".init.setup")))
> > __attribute__((aligned((sizeof(long))))) = { __setup_str_nfs_root_setup,
> > nfs_root_setup, 0 };
>
> Yup. That matches what I get on an x86_64 platform, where it appears to
> compile without any trouble. I can see no reason why it shouldn't
> compile on parisc too. In fact you should have tons of these in
> init/do_mounts.c: do they generate compile errors too?

Yes, that does have similar constructs, but that does compiles OK:

$ 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 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/