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;