tools/sstrip: Fix compile under standard linux.

bswap32 undefined is the issue. Added the proper header. Also fixed a few format/conversion warnings that clang complained about without -Wall or -Wextra.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
openwrt-18.06
Rosen Penev 2017-11-23 13:18:07 -08:00 committed by Jo-Philipp Wich
parent 01c5cf0b24
commit d6e34b7352
1 changed files with 5 additions and 4 deletions

View File

@ -59,6 +59,7 @@
#include <unistd.h> #include <unistd.h>
#include <fcntl.h> #include <fcntl.h>
#include <elf.h> #include <elf.h>
#include <byteswap.h>
#ifndef TRUE #ifndef TRUE
#define TRUE 1 #define TRUE 1
@ -103,7 +104,7 @@ static int do_reverse_endian;
} else if (sizeof(X) == 8) { \ } else if (sizeof(X) == 8) { \
__res = bswap_64((X)); \ __res = bswap_64((X)); \
} else { \ } else { \
fprintf(stderr, "%s: %s: EGET failed for size %d\n", \ fprintf(stderr, "%s: %s: EGET failed for size %zu\n", \
progname, filename, sizeof(X)); \ progname, filename, sizeof(X)); \
exit(EXIT_FAILURE); \ exit(EXIT_FAILURE); \
} \ } \
@ -124,7 +125,7 @@ static int do_reverse_endian;
} else if (sizeof(Y) == 8) { \ } else if (sizeof(Y) == 8) { \
Y = bswap_64((uint64_t)(X)); \ Y = bswap_64((uint64_t)(X)); \
} else { \ } else { \
fprintf(stderr, "%s: %s: ESET failed for size %d\n", \ fprintf(stderr, "%s: %s: ESET failed for size %zu\n", \
progname, filename, sizeof(Y)); \ progname, filename, sizeof(Y)); \
exit(EXIT_FAILURE); \ exit(EXIT_FAILURE); \
} while (0) } while (0)
@ -197,7 +198,7 @@ static int getmemorysize ## CLASS (Elf ## CLASS ## _Ehdr const *ehdr, \
{ \ { \
Elf ## CLASS ## _Phdr const *phdr; \ Elf ## CLASS ## _Phdr const *phdr; \
unsigned long size, n; \ unsigned long size, n; \
int i; \ size_t i; \
\ \
/* Start by setting the size to include the ELF header and the \ /* Start by setting the size to include the ELF header and the \
* complete program segment header table. \ * complete program segment header table. \
@ -230,7 +231,7 @@ static int modifyheaders ## CLASS (Elf ## CLASS ## _Ehdr *ehdr, \
unsigned long newsize) \ unsigned long newsize) \
{ \ { \
Elf ## CLASS ## _Phdr *phdr; \ Elf ## CLASS ## _Phdr *phdr; \
int i; \ size_t i; \
\ \
/* If the section header table is gone, then remove all references \ /* If the section header table is gone, then remove all references \
* to it in the ELF header. \ * to it in the ELF header. \