Re: [PATCH 3/5] uml: Fix warning due to missing task_structdeclaration

From: Jiri Kosina
Date: Tue Apr 20 2010 - 19:44:15 EST


On Tue, 20 Apr 2010, Jan Kiszka wrote:

> >>> We can't pull in linux/sched.h, so just declare the struct.
> >>>
> >> Did you meet any build error? If yes, please include it.
> >
> > What does this patch fix, aside from being a bit cleaner?
>
> CC arch/um/sys-i386/elfcore.o
> In file included from /data/linux-2.6/include/linux/elf.h:8,
> from /data/linux-2.6/arch/um/sys-i386/elfcore.c:2:
> /data/linux-2.6/arch/um/sys-i386/asm/elf.h:78: warning: âstruct task_structâ declared inside parameter list
> /data/linux-2.6/arch/um/sys-i386/asm/elf.h:78: warning: its scope is only this definition or declaration, which is probably not what you want
>
> I guess not many people build against i386 hosts anymore, so this
> remained widely unnoticed.
>
> >
> > If it built before, without having a task_struct declaration, I think
> > that means that the elf_core_copy_fpregs was never used. The
> > task_struct * in the declaration would become a private task_struct,
> > known only to the declaration. If the implementation or callers have
> > the regular task_struct, it will be a different one, and the
> > prototypes will conflict due to the different types of the first
> > parameter.
>
> This is just a forward declaration (that many arch elf header include),
> so no such problem exists.
>
> BTW, to answer the other question in this thread: We have a circular
> dependency that prevents including sched.h.
>
> I can add all these information to some v2 of this patch if it is
> required to get this merged. Please let me know.

I have updated the explanation in the changelog and applied the patch. If
anyone has any objections still, please let me know.

Thanks,

--
Jiri Kosina
SUSE Labs, Novell Inc.
--
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/