Linux/arm is broken

Nick Clifton nickc@redhat.com
Thu Aug 1 09:29:00 GMT 2002


Hi H.J.

> I configured with
> 
> # /home/hjl/work/linux/import/binutils/configure
> --host=i686-pc-linux-gnu --enable-64-bit-bfd --target=arm-linux
> --prefix=/export/tools --with-local-prefix=/export/tools

Thanks.  It was the "--enable-64-bit-bfd" that was difference between
your build and mine.  I have now tracked down the bug and I will apply
the following patch to fix it.

Cheers
        Nick

2002-08-01  Nick Clifton  <nickc@redhat.com>

	* config/tc-arm.c (add_to_lit_pool): Ensure that offset to literal
	pool is computed using signed arithmetic so that proper sign
	extension is performed if X_add_number is a 64-bit integer.

Index: gas/config/tc-arm.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-arm.c,v
retrieving revision 1.125
diff -c -3 -p -w -r1.125 tc-arm.c
*** gas/config/tc-arm.c	30 Jul 2002 10:56:04 -0000	1.125
--- gas/config/tc-arm.c	1 Aug 2002 16:25:01 -0000
*************** add_to_lit_pool ()
*** 2237,2243 ****
      }
  
    inst.reloc.exp.X_op         = O_symbol;
!   inst.reloc.exp.X_add_number = (entry) * 4 - 8;
    inst.reloc.exp.X_add_symbol = pool->symbol;
  
    return SUCCESS;
--- 2237,2243 ----
      }
  
    inst.reloc.exp.X_op         = O_symbol;
!   inst.reloc.exp.X_add_number = ((int) entry) * 4 - 8;
    inst.reloc.exp.X_add_symbol = pool->symbol;
  
    return SUCCESS;



More information about the Binutils mailing list