Your change breaks Linux/mips
H . J . Lu
hjl@lucon.org
Thu Jan 17 13:38:00 GMT 2002
On Thu, Jan 17, 2002 at 10:30:09AM -0800, H . J . Lu wrote:
> Hi Eric,
>
> Your change
>
> http://sources.redhat.com/ml/binutils-cvs/2002-01/msg00088.html
>
> breaks Linux/mips. Now "make check" in ld complains:
>
> /export/build/gnu/binutils-release/build-mipsel-linux/ld/ld-new:
> tmpdir/cross1.o: .text+0x0: jump to stub routine which is not jal
> /export/build/gnu/binutils-release/build-mipsel-linux/ld/ld-new: final
> link failed: Bad value
> FAIL: NOCROSSREFS 1
>
> Could you please fix it?
>
Hi Eric,
Do you have a testcase for your patch? That is
@@ -6735,7 +6735,8 @@
/* Calls from 16-bit code to 32-bit code and vice versa require the
special jalx instruction. */
*require_jalxp = (!info->relocateable
- && ((r_type == R_MIPS16_26) != target_is_16_bit_code_p));
+ && (((r_type == R_MIPS16_26) != target_is_16_bit_code_p
+ || ((r_type == R_MIPS_26) == target_is_16_bit_code_p))));
local_p = mips_elf_local_relocation_p (input_bfd, relocation,
local_sections, true);
I couldn't tell what was wrong with the old code. Why can't R_MIPS_26
be used for the 32bit target?
Thanks.
H.J.
More information about the Binutils
mailing list