[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: help with porting texmacs to mips ?



On Mon, Dec 02, 2002 at 08:47:48PM +0100, Ralf Treinen wrote:

> Hi, the texmacs package does not compile on mips[el]. The autobuilders
> bail out with message
> 
> /tmp/ccQouOpD.s: Assembler messages:
> /tmp/ccQouOpD.s:2744: Error: Branch out of range
> /tmp/ccQouOpD.s:3563: Error: Branch out of range
 
> When I asked for help on this list earlier this year, someone suggested
> to me to try gcc>=3.0. However, upstream told me that this is currently not
> an option sine on gcc3.2 optimization would have to be disabled.

> David Allouche, one of the upstream developers, wrote to me about this
> problem:
> 
> > > Personal guess:
> > > 
> > > g++-2.95.4 assembler on mipsel has a limitation on the maximum
> > > length of jumps inside a give subroutine, and this limit is
> > > exceeded in (one or both of) edit_env_rep::exec (tree)
> > > edit_env_rep::exec_until (tree, path).

> Does this make sense to you? Can anyone of this list give me an advice
> what to do?

Yes this makes sense. AFAIK a branch instruction can only access addresses
within a certain offset from the branch instruction (just not enough bits
for a larger offset in the instruction word) and gcc 2.95 does not produce
intermediate code to work around this.

So I see only the two options you have already mentioned:
- make the function smaller so that the maximum branch offset is large
  enough to reach any needed point within the function
- try using gcc-3.2 that has several mips fixes which gcc-2.95 lacks -
  although I am not sure whether exactly this problem is fully solved
  in gcc-3.2.

HTH,
Karsten  
-- 
#include <standard_disclaimer>
Nach Paragraph 28 Abs. 3 Bundesdatenschutzgesetz widerspreche ich der Nutzung
oder Uebermittlung meiner Daten fuer Werbezwecke oder fuer die Markt- oder
Meinungsforschung.



Reply to: