From b1591d1f8b9444c770771c9482d708dd5e497829 Mon Sep 17 00:00:00 2001
From: Eric Andersen <andersen@codepoet.org>
Date: Fri, 12 Apr 2002 00:28:59 +0000
Subject: Fix handling of endianness.  -Erik

---
 modutils/insmod.c | 32 +++++++++-----------------------
 1 file changed, 9 insertions(+), 23 deletions(-)

(limited to 'modutils')

diff --git a/modutils/insmod.c b/modutils/insmod.c
index a3680ab1a..cbd423e18 100644
--- a/modutils/insmod.c
+++ b/modutils/insmod.c
@@ -140,7 +140,7 @@
 #ifndef MODUTILS_MODULE_H
 static const int MODUTILS_MODULE_H = 1;
 
-#ident "$Id: insmod.c,v 1.80 2002/04/01 14:25:51 miles Exp $"
+#ident "$Id: insmod.c,v 1.81 2002/04/12 00:28:59 andersen Exp $"
 
 /* This file contains the structures used by the 2.0 and 2.1 kernels.
    We do not use the kernel headers directly because we do not wish
@@ -357,12 +357,19 @@ int delete_module(const char *);
 #ifndef MODUTILS_OBJ_H
 static const int MODUTILS_OBJ_H = 1;
 
-#ident "$Id: insmod.c,v 1.80 2002/04/01 14:25:51 miles Exp $"
+#ident "$Id: insmod.c,v 1.81 2002/04/12 00:28:59 andersen Exp $"
 
 /* The relocatable object is manipulated using elfin types.  */
 
 #include <stdio.h>
 #include <elf.h>
+#include <endian.h>
+
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+#define ELFDATAM	ELFDATA2LSB
+#elif __BYTE_ORDER == __BIG_ENDIAN
+#define ELFDATAM	ELFDATA2MSB
+#endif
 
 
 /* Machine-specific elf macros for i386 et al.  */
@@ -382,37 +389,24 @@ static const int MODUTILS_OBJ_H = 1;
 
 #define ELFCLASSM	ELFCLASS32
 
-#if (defined(__mc68000__))					
-#define ELFDATAM	ELFDATA2MSB
-#endif
-
-
 
 #if defined(__sh__)
 
 #define MATCH_MACHINE(x) (x == EM_SH)
 #define SHT_RELM	SHT_RELA
 #define Elf32_RelM	Elf32_Rela
-#define ELFDATAM	ELFDATA2LSB
 
 #elif defined(__arm__)
 
 #define MATCH_MACHINE(x) (x == EM_ARM)
 #define SHT_RELM	SHT_REL
 #define Elf32_RelM	Elf32_Rel
-#ifdef __ARMEB__
-#define ELFDATAM	ELFDATA2MSB
-#endif
-#ifdef __ARMEL__
-#define ELFDATAM	ELFDATA2LSB
-#endif
 
 #elif defined(__powerpc__)
 
 #define MATCH_MACHINE(x) (x == EM_PPC)
 #define SHT_RELM	SHT_RELA
 #define Elf32_RelM	Elf32_Rela
-#define ELFDATAM    ELFDATA2MSB
 
 #elif defined(__mips__)
 
@@ -428,12 +422,6 @@ static const int MODUTILS_OBJ_H = 1;
 #define MATCH_MACHINE(x) (x == EM_MIPS || x == EM_MIPS_RS3_LE)
 #define SHT_RELM	SHT_REL
 #define Elf32_RelM	Elf32_Rel
-#ifdef __MIPSEB__
-#define ELFDATAM        ELFDATA2MSB
-#endif
-#ifdef __MIPSEL__
-#define ELFDATAM        ELFDATA2LSB
-#endif
 
 #elif defined(__i386__)
 
@@ -448,7 +436,6 @@ static const int MODUTILS_OBJ_H = 1;
 
 #define SHT_RELM	SHT_REL
 #define Elf32_RelM	Elf32_Rel
-#define ELFDATAM	ELFDATA2LSB
 
 #elif defined(__mc68000__) 
 
@@ -465,7 +452,6 @@ static const int MODUTILS_OBJ_H = 1;
 #define MATCH_MACHINE(x)	((x) == EM_V850 || (x) == EM_CYGNUS_V850)
 #define SHT_RELM		SHT_RELA
 #define Elf32_RelM		Elf32_Rela
-#define ELFDATAM		ELFDATA2LSB
 
 #define SYMBOL_PREFIX	"_"
 
-- 
cgit v1.2.3