Bug fix, program was not partable. it assumed same byte order as i86.

This commit is contained in:
ceriel 1987-04-13 15:57:33 +00:00
parent 3433445bbb
commit 218c1c46c4

View file

@ -163,7 +163,14 @@ main(argc, argv)
} }
/* Action at last */ /* Action at last */
write(output, (char *) e, 32); write(output, (char *) e, 6);
wr_int2(e->a_version);
wr_long(e->a_text);
wr_long(e->a_data);
wr_long(e->a_bss);
wr_long(e->a_entry);
wr_long(e->a_misc);
wr_long(e->a_syms);
emits(&outsect[TEXTSG]) ; emits(&outsect[TEXTSG]) ;
emits(&outsect[ROMSG]) ; emits(&outsect[ROMSG]) ;
emits(&outsect[DATASG]) ; emits(&outsect[DATASG]) ;
@ -172,6 +179,27 @@ main(argc, argv)
return 0; return 0;
} }
wr_int2(n)
{
char buf[2];
buf[0] = n;
buf[1] = (n >> 8);
write(output, buf, 2);
}
wr_long(l)
long l;
{
char buf[4];
buf[0] = l;
buf[1] = (l >> 8);
buf[2] = (l >> 16);
buf[3] = (l >> 24);
write(output, buf, 4);
}
/* /*
* Transfer the emitted byted from one file to another. * Transfer the emitted byted from one file to another.
*/ */
@ -260,7 +288,10 @@ emit_symtab()
for (j++; j < 8; j++) { for (j++; j < 8; j++) {
IX_name.n_name[j] = 0; IX_name.n_name[j] = 0;
} }
write(output, (char *) &IX_name, sizeof(struct nlist)); write(output, (char *) &IX_name, 8);
wr_long(IX_name.n_value);
write(output, &(IX_name.n_sclass), 2);
wr_int2(IX_name.n_type);
} }
} }