Re: cannot build Linux 4.4: arch/mips/kernel/signal.c:142:12: error: âstruct ucontextâ has no member named âuc_extcontextâ

From: Ralf Baechle
Date: Tue Jan 19 2016 - 04:07:15 EST


On Mon, Jan 18, 2016 at 06:22:21PM -0800, Florian Fainelli wrote:

> Le 17/01/2016 06:48, Heinrich Schuchardt a Ãcrit :
> > On 01/17/2016 02:54 PM, Heinrich Schuchardt wrote:
> >>
> >> HEAD is now at afd2ff9... Linux 4.4
> >> arch/mips/kernel/signal.c: In function âsc_to_extcontextâ:
> >> arch/mips/kernel/signal.c:142: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:170:40: error: dereferencing pointer to
> >> incomplete type
> >>
> >
> > The problem stemmed from make not recognizing that this file was outdated:
> >
> > Oct 16 2014 arch/mips/include/generated/asm/ucontext.h
> >
> > Shouldn't make automatically regenerate outdated files?
>
> The reduced test case can be simplified to these steps:
>
> git co f1fe2d21f4e1aca8644cea888dc618f0183ad671\^1
> configure your kernel
> ARCH=mips make arch/mips/kernel/signal.o
> git co f1fe2d21f4e1aca8644cea888dc618f0183ad671
> ARCH=mips make arch/mips/kernel/signal.o
>
> The problem seems to be that if there was a previous build which
> resulted in creating an asm-generic wrapper for a file
> (arch/mips/include/generated/asm/ucontext.h in that case), but this file
> was later moved into an arch-specific, non asm-generic header file, then
> we are just not going to automatically remove this auto-generated
> wrapper, and generate the new one.
>
> This seems to be aggravated by the fact that commit
> f1fe2d21f4e1aca8644cea888dc618f0183ad671 does not add ucontext.h to
> arch/mips/include/uapi/Kbuild, Paul, James is that intentional?
>
> After trying to mess a bit with a clean solution, I just gave up and
> decided that this was not worth fixing since it is a very infrequent
> problem.

We lately had about five people reporting similar issues that all could
be resolved with make distclean.

Ralf