Bug 51207 - gcc-2.96-85 fails with AREG error
gcc-2.96-85 fails with AREG error
Status: CLOSED WONTFIX
Product: Red Hat Linux
Classification: Retired
Component: gcc (Show other bugs)
7.1
i386 Linux
medium Severity high
: ---
: ---
Assigned To: Jakub Jelinek
David Lawrence
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2001-08-08 10:23 EDT by Need Real Name
Modified: 2007-04-18 12:35 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2001-08-08 10:23:21 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Need Real Name 2001-08-08 10:23:17 EDT
From Bugzilla Helper:
User-Agent: Mozilla/4.76 [en] (Windows NT 5.0; U)

Description of problem:
The same C++ code that compiles with kgcc and gcc-2.91-66 fails when
I attempt to compile it with gcc-2.96-85.  Here is the log of the make:
/usr/bin/gcc -c -Wall -O2 -I. --schedule-insns -DINTEL -DUNIX -DLINUX -DSVR4 Array.cpp -fPIC -DPIC -o obj/Array.o
/usr/bin/gcc -c -Wall -O2 -I. --schedule-insns -DINTEL -DUNIX -DLINUX -DSVR4 Cache.cpp -fPIC -DPIC -o obj/Cache.o
Cache.cpp: In method `Bool Cache::Remove (MntrObject *, int)':
Cache.cpp:128: Unable to find a register to spill in class `AREG'.
Cache.cpp:128: confused by earlier errors, bailing out
make[4]: *** [obj/Cache.o] Error 1
make[3]: *** [releaseso] Error 2
make[2]: *** [releaseso] Error 2
make[1]: *** [releaseso] Error 2
make: *** [releaseso] Error 2

I need to compile this C++ library with gcc-2.96-85 so I can link it into
other executables compiled with gcc-2.96-85.  I can't compile
working executables for RH 7.1 until I get this fixed.

A work-around or fix would be appreciated.

How reproducible:
Always

Steps to Reproduce:
1.make > m.log 2>&1
2.
3.
	

Actual Results:  /usr/bin/gcc -c -Wall -O2 -I. --schedule-insns -DINTEL -DUNIX -DLINUX -DSVR4 Array.cpp -fPIC -DPIC -o obj/Array.o
/usr/bin/gcc -c -Wall -O2 -I. --schedule-insns -DINTEL -DUNIX -DLINUX -DSVR4 Cache.cpp -fPIC -DPIC -o obj/Cache.o
Cache.cpp: In method `Bool Cache::Remove (MntrObject *, int)':
Cache.cpp:128: Unable to find a register to spill in class `AREG'.
Cache.cpp:128: confused by earlier errors, bailing out
make[4]: *** [obj/Cache.o] Error 1
make[3]: *** [releaseso] Error 2
make[2]: *** [releaseso] Error 2
make[1]: *** [releaseso] Error 2
make: *** [releaseso] Error 2

Expected Results:  Cache.o should have compiled without errors.

Additional info:
Comment 1 Jakub Jelinek 2001-08-08 10:33:06 EDT
-fschedule-insns is not to be used on register starved machines like i386.
It generally creates much worse code on those, plus results in reload errors
too.
-fschedule-insns2 is more appropriate on i386, but -O2 already enables it
by default.
Comment 2 Need Real Name 2001-08-08 11:07:45 EDT
Thanks!! for the information regarding the -fschedule-insns option.
I removed it and my C++ library compiled just fine.

Thank you.
Kathy Bieltz

Note You need to log in before you can comment on or make changes to this bug.