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

            Bug ID: 94506
           Summary: broken code generate on MIPS
           Product: gcc
           Version: 8.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: g...@hauke-m.de
  Target Milestone: ---

Since we upgraded from GCC 8.3.0 to GCC 8.4.0 in OpenWrt the Linux kernel
crashes on some ath79 (MIPS BE 74Kec) boards with such a error reproducible:

[    0.084927] pid_max: default: 32768 minimum: 301
[    0.089999] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes,
linear)
[    0.097796] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes,
linear)
[    0.107070] Kernel panic - not syncing: Unexpected DSP exception
[    0.113470] Rebooting in 1 seconds..


I bisected it to change r278587 in GCC. When I revert this change the kernel
boot up fine.

We see this problem only in the Linux kernel since this commit:
https://git.kernel.org/linus/9012d011660ea5cf2a623e1de207a2bc0ca6936d

I got reports of the same problem in GCC 9.2.0, in GCC 9.3.0 it works for me
and others.

Here is the related OpenWrt Ticket:
https://bugs.openwrt.org/index.php?do=details&task_id=2928

Here is a Linux kernel binary compiled with GCC 8.4.0
https://hauke-m.de/files/vmlinux.debug-new-5.4-8.4.0.broken

Here is a Linux kernel binary compiled with GCC 8.4.0 + r278587 reverted:
https://hauke-m.de/files/vmlinux.debug-new-5.4-8.4.0.working

I was unable to go into the details what is different between these two
compiles.

Reply via email to