This file is part of MXE. See index.html for further information. This patch has been taken from: http://sourceforge.net/tracker/?func=detail&aid=3119898&group_id=2435&atid=102435 diff -r 62cf992c82c9 reimp/reimp.c --- a/reimp/reimp.c Fri Nov 26 19:02:28 2010 +0100 +++ b/reimp/reimp.c Fri Nov 26 19:14:59 2010 +0100 @@ -80,20 +80,20 @@ return 1; } -static int do_import (char *, uint32, FILE *); +static int do_import (char *, uint32_t, FILE *); /* read second linker member and process all archive members */ static int read_link_member (struct ar_hdr *hdr, FILE *f) { - uint32 n_memb; - uint32 n_syms; - uint32 *ofs; - uint16 *idx; + uint32_t n_memb; + uint32_t n_syms; + uint32_t *ofs; + uint16_t *idx; char *buf; char *sym; - uint32 n; - uint16 i; + uint32_t n; + uint16_t i; /* FIXME: are offsets and sizes in host endianness? Currently we assume so. */ @@ -305,7 +305,7 @@ } void -extract_member (char *name, uint32 size, FILE *f) +extract_member (char *name, uint32_t size, FILE *f) { static int non_imports = 0; char buf[2048]; @@ -379,7 +379,7 @@ /* process an import */ static int -do_import (char *name, uint32 offset, FILE *f) +do_import (char *name, uint32_t offset, FILE *f) { struct ar_hdr ar_hdr; struct imp_hdr imp_hdr; diff -r 62cf992c82c9 reimp/reimp.h --- a/reimp/reimp.h Fri Nov 26 19:02:28 2010 +0100 +++ b/reimp/reimp.h Fri Nov 26 19:14:59 2010 +0100 @@ -1,14 +1,6 @@ #include +#include #include - -/* we need integers of specific sizes */ -#ifndef uint32 -#define uint32 unsigned long -#endif - -#ifndef uint16 -#define uint16 unsigned short -#endif /* defines for archive */ #ifndef ARMAG @@ -41,13 +33,13 @@ /* import header */ struct imp_hdr { - uint16 sig1; - uint16 sig2; - uint16 version; - uint32 time; - uint32 size; - uint16 ord_or_hint; - uint16 type; + uint16_t sig1; + uint16_t sig2; + uint16_t version; + uint32_t time; + uint32_t size; + uint16_t ord_or_hint; + uint16_t type; }; /* sig1 */ @@ -67,7 +59,7 @@ #define IMPORT_NAME_UNDECORATE IMPNT(3) #define TEST_IMPNT(t,v) (((t) & IMPNT(7)) == (v)) -uint32 swap_endian (uint32); +uint32_t swap_endian (uint32_t); #ifdef BIG_ENDIAN #define btonat(u) u @@ -87,7 +79,7 @@ #if !defined(_WIN32) && !defined(__MSDOS__) #define spawnvp do_spawn -int spawnvp (int, char *, char **); +int spawnvp (int, char *, const char * const *); #define P_WAIT 0 #define P_NOWAIT 1 #endif diff -r 62cf992c82c9 reimp/util.c --- a/reimp/util.c Fri Nov 26 19:02:28 2010 +0100 +++ b/reimp/util.c Fri Nov 26 19:14:59 2010 +0100 @@ -1,6 +1,7 @@ #include #include #include +#include #include @@ -9,14 +10,14 @@ #define swapb(a,b) a ^= b; b ^= a; a ^= b /* swap little <=> big endian */ -uint32 -swap_endian (uint32 u) +uint32_t +swap_endian (uint32_t u) { #define swapb(a,b) a ^= b; b ^= a; a ^= b unsigned char *p = (unsigned char *) &u; swapb (p[0], p[3]); swapb (p[1], p[2]); - return *((uint32 *) p); + return *((uint32_t *) p); } @@ -79,7 +80,7 @@ #endif int -spawnvp (int mode, char *path, char **argv) +spawnvp (int mode, char *path, const char * const *argv) { int pid; int status; @@ -89,7 +90,7 @@ case -1: return -1; case 0: - execvp (path, argv); + execvp (path, (char * const *) argv); _exit (EXIT_FAILURE); break;