Module Name: src
Committed By: tsutsui
Date: Sun Jul 10 04:56:32 UTC 2011
Modified Files:
src/usr.bin/elf2aout: elf2aout.c
Log Message:
Set a_midmag MAGIC in a.out header properly for more possible a.out ports
in the past per ex.e_machine in ELF header.
To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/usr.bin/elf2aout/elf2aout.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/elf2aout/elf2aout.c
diff -u src/usr.bin/elf2aout/elf2aout.c:1.13 src/usr.bin/elf2aout/elf2aout.c:1.14
--- src/usr.bin/elf2aout/elf2aout.c:1.13 Tue Jun 28 13:15:24 2011
+++ src/usr.bin/elf2aout/elf2aout.c Sun Jul 10 04:56:31 2011
@@ -1,4 +1,4 @@
-/* $NetBSD: elf2aout.c,v 1.13 2011/06/28 13:15:24 tsutsui Exp $ */
+/* $NetBSD: elf2aout.c,v 1.14 2011/07/10 04:56:31 tsutsui Exp $ */
/*
* Copyright (c) 1995
@@ -75,6 +75,7 @@
struct exec aex;
int infile, outfile;
unsigned long cur_vma = ULONG_MAX;
+ unsigned long mid;
int symflag = 0;
strtabix = symtabix = 0;
@@ -209,10 +210,36 @@
text.len = data.vaddr - text.vaddr;
/* We now have enough information to cons up an a.out header... */
- aex.a_midmag = htonl((symflag << 26) | (MID_PMAX << 16) | OMAGIC);
- if (ex.e_machine == EM_PPC)
- aex.a_midmag = htonl((symflag << 26) | (MID_POWERPC << 16)
- | OMAGIC);
+ switch (ex.e_machine) {
+ case EM_SPARC:
+ mid = MID_SPARC;
+ break;
+ case EM_386:
+ mid = MID_PC386;
+ break;
+ case EM_68K:
+ mid = MID_M68K;
+ break;
+ case EM_MIPS:
+ if (ex.e_ident[EI_DATA] == ELFDATA2LSB)
+ mid = MID_PMAX;
+ else
+ mid = MID_MIPS;
+ break;
+ case EM_PPC:
+ mid = MID_POWERPC;
+ break;
+ case EM_ARM:
+ mid = MID_ARM6;
+ break;
+ case EM_VAX:
+ mid = MID_VAX;
+ break;
+ case EM_NONE:
+ default:
+ mid = MID_ZERO;
+ }
+ aex.a_midmag = htonl((symflag << 26) | (mid << 16) | OMAGIC);
aex.a_text = text.len;
aex.a_data = data.len;