[LEDE-DEV] [PATCH] tools/sstrip: Fix compile under standard linux.

Rosen Penev rosenp at gmail.com
Tue Dec 12 11:27:28 PST 2017


bswap32 undefined is the issue. Added the proper header.

Also fixed a few format/conversion warnings that clang complained about without -Wall or -Wextra.

Command to compile was "clang sstrip.c" (output is a.out)

Multiple instances of these warnings were thrown.

sstrip.c:365:1: warning: format specifies type 'int' but the argument has type 'unsigned long' [-Wformat]
HEADER_FUNCTIONS(64)

as well as:

sstrip.c:(.text+0x1aa1): undefined reference to `bswap_64'

Signed-off-by: Rosen Penev <rosenp at gmail.com>
---
 tools/sstrip/src/sstrip.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/tools/sstrip/src/sstrip.c b/tools/sstrip/src/sstrip.c
index 0508aaac81..12cf12e095 100644
--- a/tools/sstrip/src/sstrip.c
+++ b/tools/sstrip/src/sstrip.c
@@ -59,6 +59,7 @@
 #include	<unistd.h>
 #include	<fcntl.h>
 #include	<elf.h>
+#include	<byteswap.h>
 
 #ifndef TRUE
 #define	TRUE		1
@@ -103,7 +104,7 @@ static int do_reverse_endian;
 		} else if (sizeof(X) == 8) { \
 			__res = bswap_64((X)); \
 		} 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)); \
 			exit(EXIT_FAILURE); \
 		} \
@@ -124,7 +125,7 @@ static int do_reverse_endian;
 		} else if (sizeof(Y) == 8) { \
 			Y = bswap_64((uint64_t)(X)); \
 		} 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)); \
 			exit(EXIT_FAILURE); \
 		} while (0)
@@ -197,7 +198,7 @@ static int getmemorysize ## CLASS (Elf ## CLASS ## _Ehdr const *ehdr, \
 { \
 	Elf ## CLASS ## _Phdr const   *phdr; \
 	unsigned long	size, n; \
-	int			i; \
+	size_t			i; \
  \
 	/* Start by setting the size to include the ELF header and the \
 	 * complete program segment header table. \
@@ -230,7 +231,7 @@ static int modifyheaders ## CLASS (Elf ## CLASS ## _Ehdr *ehdr, \
 								   unsigned long newsize) \
 { \
 	Elf ## CLASS ## _Phdr *phdr; \
-	int		i; \
+	size_t		i; \
  \
 	/* If the section header table is gone, then remove all references \
 	 * to it in the ELF header. \
-- 
2.14.3




More information about the Lede-dev mailing list