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;

Reply via email to