The boot loader is a FreeBSD a.out binary for x86, not a VAX binary.

Rather than writing out a MID of '0', write a MID of 0x86 (aka
MID_I386) so that file gets it right.

This is a nop for boot2.  It just checks the MAGIC part of the field,
ignoring the MID.  boot2 is the only thing that loads this file, and
only on x86 so the MID_i386 is always the right value (the rest of the
code is already x86 specific).

Reviewed by:	bde@, jhb@
MFC after:	8.0 is out the door :)
This commit is contained in:
Warner Losh 2009-09-10 00:47:32 +00:00
parent b3bfcfd0d9
commit 9f85041125

View File

@ -407,7 +407,7 @@ puthdr(int fd, struct hdr *hdr)
switch (hdr->fmt) {
case F_AOUT:
memset(&ex, 0, sizeof(ex));
N_SETMAGIC(ex, ZMAGIC, MID_ZERO, 0);
N_SETMAGIC(ex, ZMAGIC, MID_I386, 0);
hdr->text = N_ALIGN(ex, hdr->text);
ex.a_text = htole32(hdr->text);
hdr->data = N_ALIGN(ex, hdr->data);