Port-vax archive

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

Re: Issues with native build of -10 on VAX



So I've built a kernel natively, both with the tools from the
(cross-built) base system and also with the natively built tools
(using the inelegant gcc build workaround that Kalvis kindly sent me).

Turns out that no matter which toolchain I used, the natively built
kernel seems to work at first, but when the system is put under load it
quickly panics due to filesystem inconsistencies.

So I cross-built the same kernel on amd64, disassembled all the object
files generated by both builds, and ran diff. There was really only one
thing standing out, in ffs_truncate():

@@ -1958,9 +1958,9 @@
     1247:	7c 44 c3 d0 	clrd 0xd0(r3)[r4]
     124b:	00 
 			lastiblock[level] = -1;
-    124c:	7d 8f ff ff 	movq $0xffffffffffffffff,0xfffffedc(fp)[r4]
-    1250:	ff ff ff ff 
-    1254:	ff ff 44 cd 
+    124c:	7d 8f ff ff 	movq $0x00000000ffffffff,0xfffffedc(fp)[r4]
+    1250:	ff ff 00 00 
+    1254:	00 00 44 cd 
     1258:	dc fe 
 		blks[i] = DIP(oip, db[i]);
     125a:	d0 a6 14 50 	movl 0x14(r6),r0

Looking at the assembly that gcc generated, it's the same when native or
cross-built:

        clrq 208(%r3)[%r4]
.LM720:
.LM721:
.LM722:
        movq $-1,-292(%fp)[%r4]
.LM723:
        movl 20(%r6),%r0


So it's all the assembler's fault, I guess? Attached is a minimal test
case, in case anyone wants to take a closer look.


Hans



-- 
%SYSTEM-F-ANARCHISM, The operating system has been overthrown
	movq $-1,-292(%fp)[%r4]


Home | Main Index | Thread Index | Old Index