Re: [PATCH 10/16] compile error: MIPS: add definitions for extended context

From: Florian Fainelli
Date: Sun Oct 25 2015 - 17:47:43 EST


Le 25/10/2015 14:10, Hauke Mehrtens a Ãcrit :
> This patch is causing a build error for me on 4.3-rc7.
>
> CC arch/mips/kernel/signal.o
> arch/mips/kernel/signal.c: In function 'sc_to_extcontext':
> arch/mips/kernel/signal.c:143:12: error: 'struct ucontext' has no member
> named 'uc_extcontext'
> return &uc->uc_extcontext;
> ^
> In file included from include/linux/poll.h:11:0,
> from include/linux/ring_buffer.h:7,
> from include/linux/trace_events.h:5,
> from include/trace/syscall.h:6,
> from include/linux/syscalls.h:81,
> from arch/mips/kernel/signal.c:26:
> arch/mips/kernel/signal.c: In function 'save_msa_extcontext':
> arch/mips/kernel/signal.c:171:40: error: dereferencing pointer to
> incomplete type 'struct msa_extcontext'
> err = __put_user(read_msa_csr(), &msa->csr);
> ^
> ./arch/mips/include/asm/uaccess.h:441:15: note: in definition of macro
> '__put_user_nocheck'
> __typeof__(*(ptr)) __pu_val; \
> ^
> arch/mips/kernel/signal.c:171:9: note: in expansion of macro '__put_user'
> err = __put_user(read_msa_csr(), &msa->csr);
> ^
> arch/mips/kernel/signal.c:186:20: error: 'MSA_EXTCONTEXT_MAGIC'
> undeclared (first use in this function)
> err |= __put_user(MSA_EXTCONTEXT_MAGIC, &msa->ext.magic);
> ^
> ./arch/mips/include/asm/uaccess.h:444:14: note: in definition of macro
> '__put_user_nocheck'
> __pu_val = (x); \
> ^
> arch/mips/kernel/signal.c:186:9: note: in expansion of macro '__put_user'
> err |= __put_user(MSA_EXTCONTEXT_MAGIC, &msa->ext.magic);
> ^
> arch/mips/kernel/signal.c:186:20: note: each undeclared identifier is
> reported only once for each function it appears in
> err |= __put_user(MSA_EXTCONTEXT_MAGIC, &msa->ext.magic);
> ^
> ./arch/mips/include/asm/uaccess.h:444:14: note: in definition of macro
> '__put_user_nocheck'
> __pu_val = (x); \
> ^
> arch/mips/kernel/signal.c:186:9: note: in expansion of macro '__put_user'
> err |= __put_user(MSA_EXTCONTEXT_MAGIC, &msa->ext.magic);
> ^
> .......
>
>
> When I include uapi/asm/ucontext.h instead of asm/ucontext.h in signal.c
> it compiles again.

The problem appears if you had previously auto-generated files in
arch/mips/include/generated that do not get automatically cleaned up
when you switch to a new kernel version, and with an incompatible
ucontext layout between the two.

Jacek tripped over that here:

https://www.linux-mips.org/archives/linux-mips/2015-09/msg00150.html

and I asked whether we could follow-up with a proper Kbuild patch to
address that build dependency here:

https://www.linux-mips.org/archives/linux-mips/2015-09/msg00165.html

but this does not appear to have been proposed or addressed yet.

Paul, could you look into this and see how we could teach Kbuild about
this build dependency?
--
Florian
--
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/