]> granicus.if.org Git - file/commitdiff
Remove array code that was avoiding int64_t use. The rest of the code
authorChristos Zoulas <christos@zoulas.com>
Wed, 6 Mar 2013 03:35:30 +0000 (03:35 +0000)
committerChristos Zoulas <christos@zoulas.com>
Wed, 6 Mar 2013 03:35:30 +0000 (03:35 +0000)
uses int64_t, so this does not make sense, and the code was broken on
LP64 Big Endian (sparc64 eg).

configure.ac
src/readelf.c
src/readelf.h

index 920fc25330105c29a0cf6f8ddc8cf5be9de04672..699792c2c8cadc0bf54e505d624becde54ee5136 100644 (file)
@@ -107,7 +107,6 @@ AC_TYPE_UINT32_T
 AC_TYPE_INT32_T
 AC_TYPE_UINT64_T
 AC_TYPE_INT64_T
-AC_CHECK_SIZEOF(long long)
 AC_FUNC_MMAP
 AC_FUNC_FORK
 AC_FUNC_MBRTOWC
index 38151f51950a5ddc2f060f298c7aee535a24e0cb..7144ec62245a9dd85c8c6d5354dc49acf919c202 100644 (file)
@@ -27,7 +27,7 @@
 #include "file.h"
 
 #ifndef lint
-FILE_RCSID("@(#)$File: readelf.c,v 1.95 2013/02/18 15:40:59 christos Exp $")
+FILE_RCSID("@(#)$File: readelf.c,v 1.96 2013/02/22 01:35:49 christos Exp $")
 #endif
 
 #ifdef BUILTIN_ELF
@@ -58,9 +58,7 @@ private size_t donote(struct magic_set *, void *, size_t, size_t, int,
 
 private uint16_t getu16(int, uint16_t);
 private uint32_t getu32(int, uint32_t);
-#ifndef USE_ARRAY_FOR_64BIT_TYPES
 private uint64_t getu64(int, uint64_t);
-#endif
 
 private uint16_t
 getu16(int swap, uint16_t value)
@@ -102,7 +100,6 @@ getu32(int swap, uint32_t value)
                return value;
 }
 
-#ifndef USE_ARRAY_FOR_64BIT_TYPES
 private uint64_t
 getu64(int swap, uint64_t value)
 {
@@ -127,19 +124,10 @@ getu64(int swap, uint64_t value)
        } else
                return value;
 }
-#endif
 
 #define elf_getu16(swap, value) getu16(swap, value)
 #define elf_getu32(swap, value) getu32(swap, value)
-#ifdef USE_ARRAY_FOR_64BIT_TYPES
-# define elf_getu64(swap, array) \
-    ((swap ? ((uint64_t)elf_getu32(swap, array[0])) << 32 \
-     : elf_getu32(swap, array[0])) + \
-     (swap ? elf_getu32(swap, array[1]) : \
-     ((uint64_t)elf_getu32(swap, array[1]) << 32)))
-#else
-# define elf_getu64(swap, value) getu64(swap, value)
-#endif
+#define elf_getu64(swap, value) getu64(swap, value)
 
 #define xsh_addr       (clazz == ELFCLASS32                    \
                         ? (void *)&sh32                        \
index 4308e6ac4dfa3f6d15d8361038be22c2bcaa979f..e34fcc3207999e5090187ffaa8e7ff99ef36a5c0 100644 (file)
@@ -44,17 +44,9 @@ typedef uint16_t     Elf32_Half;
 typedef uint32_t       Elf32_Word;
 typedef uint8_t                Elf32_Char;
 
-#if SIZEOF_LONG_LONG != 8
-#define        USE_ARRAY_FOR_64BIT_TYPES
-typedef        uint32_t        Elf64_Addr[2];
-typedef        uint32_t        Elf64_Off[2];
-typedef uint32_t       Elf64_Xword[2];
-#else
-#undef USE_ARRAY_FOR_64BIT_TYPES
 typedef        uint64_t        Elf64_Addr;
 typedef        uint64_t        Elf64_Off;
 typedef uint64_t       Elf64_Xword;
-#endif
 typedef uint16_t       Elf64_Half;
 typedef uint32_t       Elf64_Word;
 typedef uint8_t                Elf64_Char;