Subject: The Linux binutils vs. the FSF binutils on Linux/mips

From: "H . J . Lu" <[email-masked]>
Date: Fri, 14 Sep 2001 12:36:42 -0700

FYI, the Linux binutils contains a 64bit MIPS ELF patch which doesn't
exist in the FSF binutils. At first, I thought this 64bit MIPS ELF
patch shouldn't affect the 32bit MIPS ELF. But for some reason, I
cannot get a stable 32bit Linux/mips kernel without this 64bit MIPS ELF
patch. I compared kernels generated by 2 linkers from the same input.
They are identical. Then I compared the object files generated from
2 assemblers. Some of them are different. Here is one example:

--- /tmp/2	Fri Sep 14 12:22:08 2001
+++ /tmp/1	Fri Sep 14 12:22:08 2001
@@ -1,5 +1,5 @@
 
-../linux-mips-0914/./net/socket.o:     file format elf32-tradlittlemips
+./net/socket.o:     file format elf32-tradlittlemips
 
 Disassembly of section .text:
 
@@ -2475,14 +2475,15 @@ Disassembly of section .text.init:
   60:	02002021 	move	a0,s0
   64:	3c010000 	lui	at,0x0
 			64: R_MIPS_HI16	.bss
-  68:	0c000000 	jal	0 <sock_init>
-			68: R_MIPS_26	rtnetlink_init
-  6c:	ac220084 	sw	v0,132(at)
-			6c: R_MIPS_LO16	.bss
-  70:	0c000000 	jal	0 <sock_init>
-			70: R_MIPS_26	init_netlink
-  74:	00000000 	nop
-  78:	8fbf0014 	lw	ra,20(sp)
-  7c:	8fb00010 	lw	s0,16(sp)
-  80:	03e00008 	jr	ra
-  84:	27bd0018 	addiu	sp,sp,24
+  68:	ac220084 	sw	v0,132(at)
+			68: R_MIPS_LO16	.bss
+  6c:	0c000000 	jal	0 <sock_init>
+			6c: R_MIPS_26	rtnetlink_init
+  70:	00000000 	nop
+  74:	0c000000 	jal	0 <sock_init>
+			74: R_MIPS_26	init_netlink
+  78:	00000000 	nop
+  7c:	8fbf0014 	lw	ra,20(sp)
+  80:	8fb00010 	lw	s0,16(sp)
+  84:	03e00008 	jr	ra
+  88:	27bd0018 	addiu	sp,sp,24

It seems that those small differences between 2 assemblers make a big
difference for the Linux/mips kernel. Does anyone know why?

H.J.

---

From: Eric Christopher <[email-masked]>
Date: 14 Sep 2001 12:40:01 -0700

> difference for the Linux/mips kernel. Does anyone know why?

Dunno, what's the change.

-eric

-- 
Look out behind you!