This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Your change breaks Linux/mips


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.


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