To: J Kinsley cc: bug-glibc AT gnu DOT org, pgcc AT delorie DOT com, pcg AT goof DOT com, egcs AT egcs DOT cygnus DOT com, egcs-bugs AT egcs DOT cygnus DOT com Subject: Re: pgcc-1.1.1 glibc-2.1.1 strptime.c forbidden register In-reply-to: Your message of Fri, 09 Apr 1999 07:58:47 EDT. Date: Fri, 09 Apr 1999 13:42:53 -0600 Message-ID: <21886.923686973@upchuck> From: Jeffrey A Law Reply-To: pgcc AT delorie DOT com In message 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