Question regarding m68k GCC compiler error

Jeff Law law@redhat.com
Thu Aug 13 15:28:36 GMT 2020


On Thu, 2020-08-13 at 10:04 +0200, Lukasz Majewski wrote:
> Hi Jeff,
> 
> > 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,
> 
> Ok.
> 
> > but we can't know without a self-contained testcase.
> 
> Could you be more specific about above statement? Aren't the above
> reproduction steps enough?
You're not likely to get enough upstream attention to this issue by requiring
folsk to check out your github bits.

The CPP output and command line are what we'd need.  You can get the former by
adding -save-temps to the command line which will create a .i file which is the
CPP output.  The command line you can just cut-n-paste.

jeff
> 



More information about the Libc-help mailing list