delorie.com/archives/browse.cgi   search  
Mail Archives: pgcc/1999/04/09/07:59:38

Date: Fri, 9 Apr 1999 07:58:47 -0400 (EDT)
From: J Kinsley <jkinsley AT bticc DOT net>
To: 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: pgcc-1.1.1 glibc-2.1.1 strptime.c forbidden register
Message-ID: <Pine.LNX.4.02.9904090755400.745-100000@isis.bticc.net>
MIME-Version: 1.0
Reply-To: pgcc AT delorie DOT com

While building glibc-2.1.1-990323 using the following packages,

os:		RedHat 5.0/5.2/homegrown
kernel:		2.0.34
kernel includes:2.2.5
compiler:	pgcc-2.91.60 19981201 (egcs-1.1.1)
binutils:	2.9.1.0.23
gettext:	0.10.35

compilation halted on the shared object version of time/strptime.c with the 
following error message:


make  -C time subdir_lib
make[2]: Entering directory `/home/system/redhat/BUILD/glibc/time'

gcc strptime.c -c -D__USE_STRING_INLINES -O2 -Wall -Winline -Wstrict-prototypes
-Wwrite-strings -fstrict-aliasing -g -march=pentiumpro -mpentiumpro -fPIC
-I../include -I. -I/usr/src/redhat/BUILD/glibc/build-i686-linux/time -I..
-I../libio  -I/usr/src/redhat/BUILD/glibc/build-i686-linux
-I../sysdeps/i386/elf -I../crypt/sysdeps/unix
-I../linuxthreads/sysdeps/unix/sysv/linux
-I../linuxthreads/sysdeps/pthread -I../linuxthreads/sysdeps/unix/sysv
-I../linuxthreads/sysdeps/unix -I../linuxthreads/sysdeps/i386/i686
-I../linuxthreads/sysdeps/i386 -I../linuxthreads/sysdeps/pthread/no-cmpxchg
-I../sysdeps/unix/sysv/linux/i386/i686 -I../sysdeps/unix/sysv/linux/i386
-I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common
-I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv/i386/i686
-I../sysdeps/unix/sysv/i386 -I../sysdeps/unix/sysv -I../sysdeps/unix/i386
-I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i686
-I../sysdeps/i386/i486 -I../sysdeps/libm-i387/i686 -I../sysdeps/i386/fpu
-I../sysdeps/libm-i387 -I../sysdeps/i386 -I../sysdeps/wordsize-32
-I../sysdeps/ieee754 -I../sysdeps/libm-ieee754 -I../sysdeps/generic/elf
-I../sysdeps/generic -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DPIC
-o /usr/src/redhat/BUILD/glibc/build-i686-linux/time/strptime.os

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 clauses.

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?  

TIA

Regards,
Jarrod Kinsley

Copies-To: glibc bugs <bug-glibc AT gnu DOT org>, 
	pgcc-developers <pgcc AT delorie DOT com>,
	Marc Lehmann <pcg AT goof DOT com>, 
	egcs <egcs AT egcs DOT cygnus DOT com>, 
	egcs-bugs <egcs-bugs AT egcs DOT cygnus DOT com>

--
Jarrod S. Kinsley
System Administrator
BTI Communications

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019