Mail Archives: pgcc/1999/04/09/15:54:27
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.
jeff
- Raw text -