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

From: Amerigo Wang
Date: Wed Apr 21 2010 - 02:03:20 EST


On Tue, Apr 20, 2010 at 07:09:15PM +0200, Jan Kiszka wrote:
>Jeff Dike wrote:
>> On Tue, Apr 20, 2010 at 06:09:49PM +0800, Amerigo Wang wrote:
>>> On Mon, Apr 19, 2010 at 11:53:06PM +0200, 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.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This is the right reason to do this. Ok then, thanks.

But it looks like x86_64 needs this too.


BTW, I don't think compile warning fixes are trivial enough to go
to trivial@xxxxxxxxxxx
--
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/