https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98784

            Bug ID: 98784
           Summary: [gcc 8.4/9.3/10] sparcv8 regression
           Product: gcc
           Version: 10.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: romain.naour at gmail dot com
  Target Milestone: ---

Hello,

When building a rootfs for sparcv8 using the Buildroot defconfig
qemu_sparc_ss10_defconfig, the system produce some illegal instruction
messages.

gcc 8.3, 9.2 are the latest working gcc version.
git bisect between gcc 8.3 and 8.4 allowed to identify the commit that
introduced the regression:

https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=0a83f1a441d7aaadecb368c237b6ee70bd7b91d6

The commit has been introduced to fix the following bub:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92095

It has been backported to gcc 8.4 and 9.3.

Reverting this patch allowed to produce a working rootfs.

This issue can be reproduced using the following steps:

$ git://git.busybox.net/buildroot
$ cd buildroot/
$ git checkout 2020.11.1
$ make qemu_sparc_ss10_defconfig
$ make
$ ./output/images/start-qemu.sh

The kernel boot correctly but the login program (busybox) crash while trying to
login:

[...]
Starting syslogd: 
Welcome to Buildroot
buildroot login: root

Welcome to Buildroot
buildroot login: root


For now, It's just a basic test that allow to reproduce the issue.

We can use a shell instead of init program but even with a simple command such
'ls' the system crash:

sh-5.0# ls

CPU: 0 PID: 1 Comm: sh Not tainted 4.19.16 #1
[f0022fbc : 
do_exit+0x948/0x968 ] 
[f000afec : 
do_signal+0x5f8/0x79c ] 
[f000b4b4 : 
do_notify_resume+0x48/0x58 ] 
[f0008c88 : 
signal_p+0x14/0x24 ] 
[0004b874 : 
0x4b874 ]

Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004

Best regards,
Romain

Reply via email to