Question regarding m68k GCC compiler error

Jeff Law law@redhat.com
Wed Aug 12 14:48:48 GMT 2020


On Wed, 2020-08-12 at 15:43 +0200, Lukasz Majewski wrote:
> Dear Community,
> 
> During development of following patch [1]
> I've triggered some interesting error on m68k port:
> 
> pthread_cond_wait.c: In function
> \342\200\230__pthread_cond_wait_common\342\200\231:
> pthread_cond_wait.c:629:1: error: unable to find a register to spill in
> class \342\200\230DATA_REGS\342\200\231
>   629 | }
>       | ^
> pthread_cond_wait.c:629:1: error: this is the insn:
> (jump_insn 485 484 486 27 (parallel [
>             (set (pc)
>                 (if_then_else (eq (reg:DI 80 [ _123 ])
>                         (reg:DI 142 [ s+-4 ]))
>                     (label_ref 530)
>                     (pc)))
>             (clobber (scratch:DI))
>             (clobber (scratch:SI))
>         ]) "../sysdeps/nptl/futex-internal.h":552:10 5 {cbranchdi4_insn}
>      (expr_list:REG_DEAD (reg:DI 142 [ s+-4 ])
>         (int_list:REG_BR_PROB 536870916 (nil)))
>  -> 530)
> pthread_cond_wait.c:629: confused by earlier errors, bailing out
> 
> 
> This error only happens on:
> 
> glibcs-m68k-linux-gnu
> glibcs-m68k-linux-gnu-coldfire
> glibcs-m68k-linux-gnu-coldfire-soft
> 
> Used gcc:
> gcc version 10.2.1 20200810 [releases/gcc-10 revision
> f098bc87dca:780e3a9fbae:b5cc5c95664347082100a504710f5ca0467306a5] (GCC)
> 
> After poking around it looks like this may be an internal gcc error.
> 
> How to reproduce:
> 1. Please use branch [2]
> 2. ../src/scripts/build-many-glibcs.py
> /home/lukma/work/glibc/glibc-many-build --keep failed glibcs
> m68k-linux-gnu m68k-linux-gnu-coldfire
> 
> 
> 
> Before I submit a GCC bug - has anybody encountered any similar issue
> recently for this port?
Nope, haven't seen this.

As Florian noted, this could be a problem with simply using too many registers,
but we can't know without a self-contained testcase.

jeff
> 



More information about the Libc-help mailing list