Date: Fri, 9 Apr 1999 23:40:33 +0200 From: Ronald de Man To: pgcc AT delorie DOT com Subject: Re: pgcc-1.1.1 glibc-2.1.1 strptime.c forbidden register Message-ID: <19990409234033.A31824@win.tue.nl> References: <21886 DOT 923686973 AT upchuck> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.95.4i In-Reply-To: <21886.923686973@upchuck>; from Jeffrey A Law on Fri, Apr 09, 1999 at 01:42:53PM -0600 X-Operating-System: Linux localhost 2.2.5 Reply-To: pgcc AT delorie DOT com X-Mailing-List: pgcc AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Fri, Apr 09, 1999 at 01:42:53PM -0600, Jeffrey A Law wrote: > > 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. Doesn't -O6 already include -fomit-frame-pointer? And how does this explain that compiling without optimization solves the problem? Ronald