This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

rotten egcs causing gas pains



I am running egcs 1.0.2 on an SGI Indigo2 EX with IRIX 5.3.

Most of the codes that have produced "Relocation Overflow"
under binutils-2.7 gas were possible to (eventually) compile by 
just fiddling with  the optimization and debug flags a bit.  

One 2393-line .C file is just being  stubborn, however.  I upgraded 
to binutils-2.9.1 gas, to find that  "Relocation Overflow" error now
calls itself "Branch out of range."  

In the file binutils-2.9.1/config/tc-mips.c, just preceding line 9451
is a 'FIXME' comment, indicating that indeed this is still a problem:   

"It would be possible in principle to handle conditional branches
which overflow.  They could be transformed into a branch around a
jump.  This would require setting up variant frags for each different
branch type.  The native MIPS assembler attempts to handle these
cases, but it appears to do so incorrectly."  

I've asked gnu.utils.bug if they are working on applying this FIXME
possibly.

However, it seems to me that it would be reasonable to request
that egcs  produce as code with no relocation overflow/branch 
out-of-range errors. 

Is there a particular egcs/gcc compile option that tends to 
generate gas code that does not have this problem?  Is there someone
working on the MIPS version of egcs, and maybe knows about this
problem, and is maybe working on it?  

Or  would a particular type of change made to the source help.

2380: warning: name lookup for `joe' changed for new ANSI `for' scoping
2363: warning: using obsolete binding at `joe'

shows up for about 20 little indices on for-loops.  It's annoying, 
and it might be responsible for the "Branch out of range" problem.

I did not write the code I'm trying to compile, and have no desire to 
re-write it.   The author blames the compiler.  It works fine--
for him -- apparently, under egcs 1.0.1 under "Linux" (no variant
specified)
using gas version ??? on a ??? cpu.  It also works, for him, on the "64-bit

SGI's" again, IRIX and compiler rev unspecified.   

Upgrading my OS is an expensive proposition, and not guaranteed to work.  

Any suggestions?  Thanks.

Cheryl


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]