Mail Archives: pgcc/1999/04/09/17:39:44
On Fri, Apr 09, 1999 at 01:42:53PM -0600, Jeffrey A Law wrote:
>
> In message <Pine DOT LNX DOT 4 DOT 02 DOT 9904090755400 DOT 745-100000 AT isis DOT bticc DOT net>you write:
> >
> > strptime.c: In function `strptime_internal':
> > strptime.c:818: fixed or forbidden register 3 (bx) was spilled for class
> > GENERAL_REGS.
> >
> > This may be due to a compiler bug or to impossible asm statements or clause
> > s.
> >
> > make[2]: *** [/usr/src/redhat/BUILD/glibc/build-i686-linux/time/strptime.os
> > ] Error 1
> > make[2]: Leaving directory `/home/system/redhat/BUILD/glibc/time'
> > make[1]: *** [time/subdir_lib] Error 2
> > make[1]: Leaving directory `/home/system/redhat/BUILD/glibc'
> > make: *** [all] Error 2
> >
> >
> > Initially, I was using -O6, then I tried -O3 as well as -O2 only for the
> > problem be repeated each time. It only compiles with no optimization.
> > I've seen reference to this specific problem in both teh pgcc and egcs list
> >
> > archives, but no definitive solution. I've also seen quite a few
> > references to 'forbidden register' but have been unable to figure out how
> > to fix the code from that information. Are there any patches for this
> > problem or has anyone been able to get strptime.c to compile with optimization?
> There's an asm in that code that requires 6 registers to satisfy. However,
> when compiling with -fPIC the compiler is only allowed to allocate 5 registers.
>
> Compiling with -fomit-frame-pointer will give the compiler an additional
> register and it can compile the asm.
Doesn't -O6 already include -fomit-frame-pointer? And how does this
explain that compiling without optimization solves the problem?
Ronald
- Raw text -