On Mon, Feb 08, 2021 at 06:03:08PM +0100, Maciej W. Rozycki wrote:
> On Fri, 22 Jan 2021, Arnd Bergmann wrote:
> 
> > From: Arnd Bergmann <a...@arndb.de>
> > 
> > kgdb fails to build when the FPU support is disabled:
> > 
> > arch/mips/kernel/kgdb.c: In function 'dbg_set_reg':
> > arch/mips/kernel/kgdb.c:147:35: error: 'struct thread_struct' has no member 
> > named 'fpu'
> >   147 |    memcpy((void *)&current->thread.fpu.fcr31, mem,
> >       |                                   ^
> > arch/mips/kernel/kgdb.c:155:34: error: 'struct thread_struct' has no member 
> > named 'fpu'
> >   155 |   memcpy((void *)&current->thread.fpu.fpr[fp_reg], mem,
> > 
> > This is only relevant for CONFIG_EXPERT=y, so disallowing it
> > in Kconfig is an easier workaround than fixing it properly.
> 
>  Wrapping the relevant parts of this file into #ifdef MIPS_FP_SUPPORT 
> would be as easy though and would qualify as a proper fix given that we 
> have no XML description support for the MIPS target (so we need to supply 
> the inexistent registers in the protocol; or maybe we can return NULL in 
> `dbg_get_reg' to get them padded out in the RSP packet, I haven't checked 
> if generic KGDB code supports this feature).

Returning NULL should be fine.

The generic code will cope OK. The values in the f.p. registers may
act a little odd if gdb uses a 'G' packet to set them to non-zero values
(since kgdb will cache the values gdb sent it) but the developer
operating the debugger will probably figure out what is going on without
too much pain.


Daniel.

Reply via email to