lalonde@torolab2.vnet.ibm.com (Glen Lalonde) (03/13/91)
Can you mix object files created with c68 and the original c (ack?) compiler? That is, do they use the same storage mapping and calling convention. I have rebuilt the kernel, fs, and mm on MacMinix using c68 but I now get intermittent read failures. If I retry the operation the read failure goes away though. I did not rebuilt the library and crtso.o with c68 though.
HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu (Christoph van Wuellen) (03/14/91)
As long as no floating point stuff is included, c68 and ACK code can be mixed. This might not be true for nested structures: In c68, struct a { struct b { char x1; char x2; char x3; }; char x4; } struct a has a length of 6 bytes, with the following offsets: b.x1 0, b.x2 1, b.x3 2, x4 4 The reason is that the length of every structure is rounded up to the default alignment. I do not know how ACK treats this, but you have to be careful when implementing TeX with the web2c package in 32-bit mode: struct halfword { struct v { char b0; char b1; }; short h0; } WIth a default alignment of 32 bit, this structure is 8 bytes long! because the Sun386 compiler makes this struct 4 bytes long (as it is intended), I once had problems mixing Sun and c386 code on that application. C.v.W.