2020-02-04 21:16:22

by Anatoly Pugachev

[permalink] [raw]
Subject: [sparc64] unable to build kernel after bbfceba15f8 / "kdb: Get rid of confusing diag msg from "rd" if current task has no regs"

Hello!

After (bisected) bbfceba15f8d1260c328a254efc2b3f2deae4904 got
mainline, i'm unable to build kernel with the following messages:

~/linux-2.6$ make -j olddefconfig; make kernel/debug/kdb/
scripts/kconfig/conf --olddefconfig Kconfig
#
# No change to .config
#
CALL scripts/atomic/check-atomics.sh
CALL scripts/checksyscalls.sh
<stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
CC kernel/debug/kdb/kdb_main.o
kernel/debug/kdb/kdb_main.c: In function ‘kdb_rd’:
kernel/debug/kdb/kdb_main.c:1857:11: error: ‘dbg_reg_def’ undeclared
(first use in this function); did you mean ‘dbg_reg_def_t’?
1857 | rsize = dbg_reg_def[i].size * 2;
| ^~~~~~~~~~~
| dbg_reg_def_t
kernel/debug/kdb/kdb_main.c:1857:11: note: each undeclared identifier
is reported only once for each function it appears in
kernel/debug/kdb/kdb_main.c:1868:12: error: implicit declaration of
function ‘dbg_get_reg’ [-Werror=implicit-function-declaration]
1868 | rname = dbg_get_reg(i, &reg8, kdb_current_regs);
| ^~~~~~~~~~~
kernel/debug/kdb/kdb_main.c:1868:10: warning: assignment to ‘char *’
from ‘int’ makes pointer from integer without a cast
[-Wint-conversion]
1868 | rname = dbg_get_reg(i, &reg8, kdb_current_regs);
| ^
kernel/debug/kdb/kdb_main.c:1874:10: warning: assignment to ‘char *’
from ‘int’ makes pointer from integer without a cast
[-Wint-conversion]
1874 | rname = dbg_get_reg(i, &reg16, kdb_current_regs);
| ^
kernel/debug/kdb/kdb_main.c:1880:10: warning: assignment to ‘char *’
from ‘int’ makes pointer from integer without a cast
[-Wint-conversion]
1880 | rname = dbg_get_reg(i, &reg32, kdb_current_regs);
| ^
kernel/debug/kdb/kdb_main.c:1886:10: warning: assignment to ‘char *’
from ‘int’ makes pointer from integer without a cast
[-Wint-conversion]
1886 | rname = dbg_get_reg(i, &reg64, kdb_current_regs);
| ^
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:266: kernel/debug/kdb/kdb_main.o] Error 1
make[2]: *** [scripts/Makefile.build:503: kernel/debug/kdb] Error 2
make[1]: *** [scripts/Makefile.build:503: kernel/debug] Error 2
make: *** [Makefile:1681: kernel] Error 2


reversing bbfceba15f8d with current git master branch - makes kernel
compilable again.

kernel config attached


Attachments:
sparc64-kernel-config.txt (65.12 kB)

2020-02-04 22:16:32

by Doug Anderson

[permalink] [raw]
Subject: Re: [sparc64] unable to build kernel after bbfceba15f8 / "kdb: Get rid of confusing diag msg from "rd" if current task has no regs"

Hi,

On Tue, Feb 4, 2020 at 1:14 PM Anatoly Pugachev <[email protected]> wrote:
>
> Hello!
>
> After (bisected) bbfceba15f8d1260c328a254efc2b3f2deae4904 got
> mainline, i'm unable to build kernel with the following messages:
>
> ~/linux-2.6$ make -j olddefconfig; make kernel/debug/kdb/
> scripts/kconfig/conf --olddefconfig Kconfig
> #
> # No change to .config
> #
> CALL scripts/atomic/check-atomics.sh
> CALL scripts/checksyscalls.sh
> <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
> CC kernel/debug/kdb/kdb_main.o
> kernel/debug/kdb/kdb_main.c: In function ‘kdb_rd’:
> kernel/debug/kdb/kdb_main.c:1857:11: error: ‘dbg_reg_def’ undeclared
> (first use in this function); did you mean ‘dbg_reg_def_t’?
> 1857 | rsize = dbg_reg_def[i].size * 2;
> | ^~~~~~~~~~~
> | dbg_reg_def_t
> kernel/debug/kdb/kdb_main.c:1857:11: note: each undeclared identifier
> is reported only once for each function it appears in
> kernel/debug/kdb/kdb_main.c:1868:12: error: implicit declaration of
> function ‘dbg_get_reg’ [-Werror=implicit-function-declaration]
> 1868 | rname = dbg_get_reg(i, &reg8, kdb_current_regs);
> | ^~~~~~~~~~~
> kernel/debug/kdb/kdb_main.c:1868:10: warning: assignment to ‘char *’
> from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 1868 | rname = dbg_get_reg(i, &reg8, kdb_current_regs);
> | ^
> kernel/debug/kdb/kdb_main.c:1874:10: warning: assignment to ‘char *’
> from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 1874 | rname = dbg_get_reg(i, &reg16, kdb_current_regs);
> | ^
> kernel/debug/kdb/kdb_main.c:1880:10: warning: assignment to ‘char *’
> from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 1880 | rname = dbg_get_reg(i, &reg32, kdb_current_regs);
> | ^
> kernel/debug/kdb/kdb_main.c:1886:10: warning: assignment to ‘char *’
> from ‘int’ makes pointer from integer without a cast
> [-Wint-conversion]
> 1886 | rname = dbg_get_reg(i, &reg64, kdb_current_regs);
> | ^
> cc1: some warnings being treated as errors
> make[3]: *** [scripts/Makefile.build:266: kernel/debug/kdb/kdb_main.o] Error 1
> make[2]: *** [scripts/Makefile.build:503: kernel/debug/kdb] Error 2
> make[1]: *** [scripts/Makefile.build:503: kernel/debug] Error 2
> make: *** [Makefile:1681: kernel] Error 2
>
>
> reversing bbfceba15f8d with current git master branch - makes kernel
> compilable again.
>
> kernel config attached

Argh. Sorry about this. :( I'm not setup with a sparc compiler, but
I've simulated your results on arm64 by just commenting out the
definition of "DBG_MAX_REG_NUM" in "arch/arm64/include/asm/kgdb.h".
Hopefully:

https://lore.kernel.org/r/20200204141219.1.Ief3f3a7edbbd76165901b14813e90381c290786d@changeid

...will fix you?

-Doug

2020-02-05 09:43:33

by Anatoly Pugachev

[permalink] [raw]
Subject: Re: [sparc64] unable to build kernel after bbfceba15f8 / "kdb: Get rid of confusing diag msg from "rd" if current task has no regs"

On Wed, Feb 5, 2020 at 1:13 AM Doug Anderson <[email protected]> wrote:
>
> Hi,
>
> On Tue, Feb 4, 2020 at 1:14 PM Anatoly Pugachev <[email protected]> wrote:
> >
> > Hello!
> >
> > After (bisected) bbfceba15f8d1260c328a254efc2b3f2deae4904 got
> > mainline, i'm unable to build kernel with the following messages:
> >
> > ~/linux-2.6$ make -j olddefconfig; make kernel/debug/kdb/
> > scripts/kconfig/conf --olddefconfig Kconfig
> > #
> > # No change to .config
> > #
> > CALL scripts/atomic/check-atomics.sh
> > CALL scripts/checksyscalls.sh
> > <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
> > CC kernel/debug/kdb/kdb_main.o
> > kernel/debug/kdb/kdb_main.c: In function ‘kdb_rd’:
> > kernel/debug/kdb/kdb_main.c:1857:11: error: ‘dbg_reg_def’ undeclared
> > (first use in this function); did you mean ‘dbg_reg_def_t’?
> > 1857 | rsize = dbg_reg_def[i].size * 2;
> > | ^~~~~~~~~~~
> > | dbg_reg_def_t
> > kernel/debug/kdb/kdb_main.c:1857:11: note: each undeclared identifier
> > is reported only once for each function it appears in
> > kernel/debug/kdb/kdb_main.c:1868:12: error: implicit declaration of
> > function ‘dbg_get_reg’ [-Werror=implicit-function-declaration]
> > 1868 | rname = dbg_get_reg(i, &reg8, kdb_current_regs);
> > | ^~~~~~~~~~~
> > kernel/debug/kdb/kdb_main.c:1868:10: warning: assignment to ‘char *’
> > from ‘int’ makes pointer from integer without a cast
> > [-Wint-conversion]
> > 1868 | rname = dbg_get_reg(i, &reg8, kdb_current_regs);
> > | ^
> > kernel/debug/kdb/kdb_main.c:1874:10: warning: assignment to ‘char *’
> > from ‘int’ makes pointer from integer without a cast
> > [-Wint-conversion]
> > 1874 | rname = dbg_get_reg(i, &reg16, kdb_current_regs);
> > | ^
> > kernel/debug/kdb/kdb_main.c:1880:10: warning: assignment to ‘char *’
> > from ‘int’ makes pointer from integer without a cast
> > [-Wint-conversion]
> > 1880 | rname = dbg_get_reg(i, &reg32, kdb_current_regs);
> > | ^
> > kernel/debug/kdb/kdb_main.c:1886:10: warning: assignment to ‘char *’
> > from ‘int’ makes pointer from integer without a cast
> > [-Wint-conversion]
> > 1886 | rname = dbg_get_reg(i, &reg64, kdb_current_regs);
> > | ^
> > cc1: some warnings being treated as errors
> > make[3]: *** [scripts/Makefile.build:266: kernel/debug/kdb/kdb_main.o] Error 1
> > make[2]: *** [scripts/Makefile.build:503: kernel/debug/kdb] Error 2
> > make[1]: *** [scripts/Makefile.build:503: kernel/debug] Error 2
> > make: *** [Makefile:1681: kernel] Error 2
> >
> >
> > reversing bbfceba15f8d with current git master branch - makes kernel
> > compilable again.
> >
> > kernel config attached
>
> Argh. Sorry about this. :( I'm not setup with a sparc compiler, but
> I've simulated your results on arm64 by just commenting out the
> definition of "DBG_MAX_REG_NUM" in "arch/arm64/include/asm/kgdb.h".
> Hopefully:
>
> https://lore.kernel.org/r/20200204141219.1.Ief3f3a7edbbd76165901b14813e90381c290786d@changeid
>
> ...will fix you?

Fixes issue for me. Thank you.

2020-02-05 15:54:12

by Daniel Thompson

[permalink] [raw]
Subject: Re: [sparc64] unable to build kernel after bbfceba15f8 / "kdb: Get rid of confusing diag msg from "rd" if current task has no regs"

On Wed, Feb 05, 2020 at 12:41:46PM +0300, Anatoly Pugachev wrote:
> On Wed, Feb 5, 2020 at 1:13 AM Doug Anderson <[email protected]> wrote:
> >
> > Hi,
> >
> > On Tue, Feb 4, 2020 at 1:14 PM Anatoly Pugachev <[email protected]> wrote:
> > >
> > > Hello!
> > >
> > > After (bisected) bbfceba15f8d1260c328a254efc2b3f2deae4904 got
> > > mainline, i'm unable to build kernel with the following messages:
> > >
> > > ~/linux-2.6$ make -j olddefconfig; make kernel/debug/kdb/
> > > scripts/kconfig/conf --olddefconfig Kconfig
> > > #
> > > # No change to .config
> > > #
> > > CALL scripts/atomic/check-atomics.sh
> > > CALL scripts/checksyscalls.sh
> > > <stdin>:1511:2: warning: #warning syscall clone3 not implemented [-Wcpp]
> > > CC kernel/debug/kdb/kdb_main.o
> > > kernel/debug/kdb/kdb_main.c: In function ‘kdb_rd’:
> > > kernel/debug/kdb/kdb_main.c:1857:11: error: ‘dbg_reg_def’ undeclared
> > > (first use in this function); did you mean ‘dbg_reg_def_t’?
> > > 1857 | rsize = dbg_reg_def[i].size * 2;
> > > | ^~~~~~~~~~~
> > > | dbg_reg_def_t
> > > kernel/debug/kdb/kdb_main.c:1857:11: note: each undeclared identifier
> > > is reported only once for each function it appears in
> > > kernel/debug/kdb/kdb_main.c:1868:12: error: implicit declaration of
> > > function ‘dbg_get_reg’ [-Werror=implicit-function-declaration]
> > > 1868 | rname = dbg_get_reg(i, &reg8, kdb_current_regs);
> > > | ^~~~~~~~~~~
> > > kernel/debug/kdb/kdb_main.c:1868:10: warning: assignment to ‘char *’
> > > from ‘int’ makes pointer from integer without a cast
> > > [-Wint-conversion]
> > > 1868 | rname = dbg_get_reg(i, &reg8, kdb_current_regs);
> > > | ^
> > > kernel/debug/kdb/kdb_main.c:1874:10: warning: assignment to ‘char *’
> > > from ‘int’ makes pointer from integer without a cast
> > > [-Wint-conversion]
> > > 1874 | rname = dbg_get_reg(i, &reg16, kdb_current_regs);
> > > | ^
> > > kernel/debug/kdb/kdb_main.c:1880:10: warning: assignment to ‘char *’
> > > from ‘int’ makes pointer from integer without a cast
> > > [-Wint-conversion]
> > > 1880 | rname = dbg_get_reg(i, &reg32, kdb_current_regs);
> > > | ^
> > > kernel/debug/kdb/kdb_main.c:1886:10: warning: assignment to ‘char *’
> > > from ‘int’ makes pointer from integer without a cast
> > > [-Wint-conversion]
> > > 1886 | rname = dbg_get_reg(i, &reg64, kdb_current_regs);
> > > | ^
> > > cc1: some warnings being treated as errors
> > > make[3]: *** [scripts/Makefile.build:266: kernel/debug/kdb/kdb_main.o] Error 1
> > > make[2]: *** [scripts/Makefile.build:503: kernel/debug/kdb] Error 2
> > > make[1]: *** [scripts/Makefile.build:503: kernel/debug] Error 2
> > > make: *** [Makefile:1681: kernel] Error 2
> > >
> > >
> > > reversing bbfceba15f8d with current git master branch - makes kernel
> > > compilable again.
> > >
> > > kernel config attached
> >
> > Argh. Sorry about this. :( I'm not setup with a sparc compiler, but
> > I've simulated your results on arm64 by just commenting out the
> > definition of "DBG_MAX_REG_NUM" in "arch/arm64/include/asm/kgdb.h".
> > Hopefully:
> >
> > https://lore.kernel.org/r/20200204141219.1.Ief3f3a7edbbd76165901b14813e90381c290786d@changeid
> >
> > ...will fix you?
>
> Fixes issue for me. Thank you.

Thanks for the update. I'll pass it along shortly.

Somewhat ironically I don't think I ever enabled pre-release sparc
build testing because of conflicts between the way the sparc kernel
adds -Werror to some of the architecture specific files and the tools I
use to detect new warnings. I might have to look at that as well!


Daniel.

Subject: Re: [sparc64] unable to build kernel after bbfceba15f8 / "kdb: Get rid of confusing diag msg from "rd" if current task has no regs"

Hi Doug!

On 2/4/20 11:13 PM, Doug Anderson wrote:
> Argh. Sorry about this. :( I'm not setup with a sparc compiler, but
> I've simulated your results on arm64 by just commenting out the
> definition of "DBG_MAX_REG_NUM" in "arch/arm64/include/asm/kgdb.h".
At least on Debian and openSUSE, compilers for most kernel architectures
are available as cross-compilers ready for installation. So it might
be a good idea to have a machine running Debian or openSUSE around
for performing these tests.

On Debian, you can just install a SPARC compiler with:

$ apt install gcc-sparc64-linux-gnu

The only target that is currently missing is ia64 but that's on my
TODO list for Debian :).

Adrian

--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - [email protected]
`. `' Freie Universitaet Berlin - [email protected]
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913