--- a/cdb.c
+++ b/cdb.c
@@ -41,7 +41,7 @@
     }
 }
 
-int cdb_read(struct cdb *c,char *buf,unsigned int len,uint32 pos)
+int cdb_read(struct cdb *c,char *buf,unsigned int len,uint32_t pos)
 {
   if (c->map) {
     if ((pos > c->size) || (c->size - pos < len)) goto FORMAT;
@@ -67,7 +67,7 @@
   return -1;
 }
 
-static int match(struct cdb *c,char *key,unsigned int len,uint32 pos)
+static int match(struct cdb *c,char *key,unsigned int len,uint32_t pos)
 {
   char buf[32];
   int n;
@@ -87,8 +87,8 @@
 int cdb_findnext(struct cdb *c,char *key,unsigned int len)
 {
   char buf[8];
-  uint32 pos;
-  uint32 u;
+  uint32_t pos;
+  uint32_t u;
 
   if (!c->loop) {
     u = cdb_hash(key,len);
--- a/cdbdump.c
+++ b/cdbdump.c
@@ -18,7 +18,7 @@
   if (buffer_flush(buffer_1) == -1) die_write();
 }
 
-uint32 pos = 0;
+uint32_t pos = 0;
 
 void get(char *buf,unsigned int len)
 {
@@ -37,7 +37,7 @@
 
 char buf[512];
 
-void copy(uint32 len)
+void copy(uint32_t len)
 {
   unsigned int x;
 
@@ -50,7 +50,7 @@
   }
 }
 
-void getnum(uint32 *num)
+void getnum(uint32_t *num)
 {
   get(buf,4);
   uint32_unpack(buf,num);
@@ -60,9 +60,9 @@
 
 main()
 {
-  uint32 eod;
-  uint32 klen;
-  uint32 dlen;
+  uint32_t eod;
+  uint32_t klen;
+  uint32_t dlen;
 
   getnum(&eod);
   while (pos < 2048) getnum(&dlen);
--- a/cdbget.c
+++ b/cdbget.c
@@ -27,8 +27,8 @@
 {
   char *key;
   int r;
-  uint32 pos;
-  uint32 len;
+  uint32_t pos;
+  uint32_t len;
   unsigned long u = 0;
 
   if (!*argv) die_usage();
--- a/cdb.h
+++ b/cdb.h
@@ -6,26 +6,26 @@
 #include "uint32.h"
 
 #define CDB_HASHSTART 5381
-extern uint32 cdb_hashadd(uint32,unsigned char);
-extern uint32 cdb_hash(char *,unsigned int);
+extern uint32_t cdb_hashadd(uint32_t,unsigned char);
+extern uint32_t cdb_hash(char *,unsigned int);
 
 struct cdb {
   char *map; /* 0 if no map is available */
   int fd;
-  uint32 size; /* initialized if map is nonzero */
-  uint32 loop; /* number of hash slots searched under this key */
-  uint32 khash; /* initialized if loop is nonzero */
-  uint32 kpos; /* initialized if loop is nonzero */
-  uint32 hpos; /* initialized if loop is nonzero */
-  uint32 hslots; /* initialized if loop is nonzero */
-  uint32 dpos; /* initialized if cdb_findnext() returns 1 */
-  uint32 dlen; /* initialized if cdb_findnext() returns 1 */
+  uint32_t size; /* initialized if map is nonzero */
+  uint32_t loop; /* number of hash slots searched under this key */
+  uint32_t khash; /* initialized if loop is nonzero */
+  uint32_t kpos; /* initialized if loop is nonzero */
+  uint32_t hpos; /* initialized if loop is nonzero */
+  uint32_t hslots; /* initialized if loop is nonzero */
+  uint32_t dpos; /* initialized if cdb_findnext() returns 1 */
+  uint32_t dlen; /* initialized if cdb_findnext() returns 1 */
 } ;
 
 extern void cdb_free(struct cdb *);
 extern void cdb_init(struct cdb *,int fd);
 
-extern int cdb_read(struct cdb *,char *,unsigned int,uint32);
+extern int cdb_read(struct cdb *,char *,unsigned int,uint32_t);
 
 extern void cdb_findstart(struct cdb *);
 extern int cdb_findnext(struct cdb *,char *,unsigned int);
--- a/cdb_hash.c
+++ b/cdb_hash.c
@@ -2,15 +2,15 @@
 
 #include "cdb.h"
 
-uint32 cdb_hashadd(uint32 h,unsigned char c)
+uint32_t cdb_hashadd(uint32_t h,unsigned char c)
 {
   h += (h << 5);
   return h ^ c;
 }
 
-uint32 cdb_hash(char *buf,unsigned int len)
+uint32_t cdb_hash(char *buf,unsigned int len)
 {
-  uint32 h;
+  uint32_t h;
 
   h = CDB_HASHSTART;
   while (len) {
--- a/cdb_make.c
+++ b/cdb_make.c
@@ -19,15 +19,15 @@
   return seek_set(fd,c->pos);
 }
 
-static int posplus(struct cdb_make *c,uint32 len)
+static int posplus(struct cdb_make *c,uint32_t len)
 {
-  uint32 newpos = c->pos + len;
+  uint32_t newpos = c->pos + len;
   if (newpos < len) { errno = error_nomem; return -1; }
   c->pos = newpos;
   return 0;
 }
 
-int cdb_make_addend(struct cdb_make *c,unsigned int keylen,unsigned int datalen,uint32 h)
+int cdb_make_addend(struct cdb_make *c,unsigned int keylen,unsigned int datalen,uint32_t h)
 {
   struct cdb_hplist *head;
 
@@ -74,11 +74,11 @@
 {
   char buf[8];
   int i;
-  uint32 len;
-  uint32 u;
-  uint32 memsize;
-  uint32 count;
-  uint32 where;
+  uint32_t len;
+  uint32_t u;
+  uint32_t memsize;
+  uint32_t count;
+  uint32_t where;
   struct cdb_hplist *x;
   struct cdb_hp *hp;
 
@@ -99,7 +99,7 @@
   }
 
   memsize += c->numentries; /* no overflow possible up to now */
-  u = (uint32) 0 - (uint32) 1;
+  u = UINT32_MAX;
   u /= sizeof(struct cdb_hp);
   if (memsize > u) { errno = error_nomem; return -1; }
 
--- a/cdbmake.c
+++ b/cdbmake.c
@@ -41,7 +41,7 @@
   unsigned int klen;
   unsigned int dlen;
   unsigned int i;
-  uint32 h;
+  uint32_t h;
   int fd;
   char ch;
 
--- a/cdb_make.h
+++ b/cdb_make.h
@@ -8,7 +8,7 @@
 
 #define CDB_HPLIST 1000
 
-struct cdb_hp { uint32 h; uint32 p; } ;
+struct cdb_hp { uint32_t h; uint32_t p; } ;
 
 struct cdb_hplist {
   struct cdb_hp hp[CDB_HPLIST];
@@ -19,20 +19,20 @@
 struct cdb_make {
   char bspace[8192];
   char final[2048];
-  uint32 count[256];
-  uint32 start[256];
+  uint32_t count[256];
+  uint32_t start[256];
   struct cdb_hplist *head;
   struct cdb_hp *split; /* includes space for hash */
   struct cdb_hp *hash;
-  uint32 numentries;
+  uint32_t numentries;
   buffer b;
-  uint32 pos;
+  uint32_t pos;
   int fd;
 } ;
 
 extern int cdb_make_start(struct cdb_make *,int);
 extern int cdb_make_addbegin(struct cdb_make *,unsigned int,unsigned int);
-extern int cdb_make_addend(struct cdb_make *,unsigned int,unsigned int,uint32);
+extern int cdb_make_addend(struct cdb_make *,unsigned int,unsigned int,uint32_t);
 extern int cdb_make_add(struct cdb_make *,char *,unsigned int,char *,unsigned int);
 extern int cdb_make_finish(struct cdb_make *);
 
--- a/cdbstats.c
+++ b/cdbstats.c
@@ -28,7 +28,7 @@
   if (buffer_flush(buffer_1small) == -1) die_write();
 }
 
-uint32 pos = 0;
+uint32_t pos = 0;
 
 void get(char *buf,unsigned int len)
 {
@@ -43,7 +43,7 @@
   }
 }
 
-void getnum(uint32 *num)
+void getnum(uint32_t *num)
 {
   char buf[4];
   get(buf,4);
@@ -70,9 +70,9 @@
 
 main()
 {
-  uint32 eod;
-  uint32 klen;
-  uint32 dlen;
+  uint32_t eod;
+  uint32_t klen;
+  uint32_t dlen;
   seek_pos rest;
   int r;
 
--- a/cdbtest.c
+++ b/cdbtest.c
@@ -24,7 +24,7 @@
   if (buffer_flush(buffer_1small) == -1) die_write();
 }
 
-uint32 pos = 0;
+uint32_t pos = 0;
 
 void get(char *buf,unsigned int len)
 {
@@ -40,7 +40,7 @@
   }
 }
 
-void getnum(uint32 *num)
+void getnum(uint32_t *num)
 {
   char buf[4];
   get(buf,4);
@@ -68,9 +68,9 @@
 
 main()
 {
-  uint32 eod;
-  uint32 klen;
-  uint32 dlen;
+  uint32_t eod;
+  uint32_t klen;
+  uint32_t dlen;
   seek_pos rest;
   int r;
 
--- a/Makefile
+++ b/Makefile
@@ -298,13 +298,6 @@
 uint32.h
 	./compile testzero.c
 
-uint32.h: \
-tryulong32.c compile load uint32.h1 uint32.h2
-	( ( ./compile tryulong32.c && ./load tryulong32 && \
-	./tryulong32 ) >/dev/null 2>&1 \
-	&& cat uint32.h2 || cat uint32.h1 ) > uint32.h
-	rm -f tryulong32.o tryulong32
-
 uint32_pack.o: \
 compile uint32_pack.c uint32.h
 	./compile uint32_pack.c
--- a/TARGETS
+++ b/TARGETS
@@ -1,6 +1,5 @@
 load
 compile
-uint32.h
 cdbget.o
 systype
 makelib
--- a/uint32.h
+++ b/uint32.h
@@ -0,0 +1,11 @@
+#ifndef UINT32_H
+#define UINT32_H
+
+#include <stdint.h>
+
+extern void uint32_pack(char *,uint32_t);
+extern void uint32_pack_big(char *,uint32_t);
+extern void uint32_unpack(char *,uint32_t *);
+extern void uint32_unpack_big(char *,uint32_t *);
+
+#endif
--- a/uint32.h1
+++ b/uint32.h1
@@ -1,11 +0,0 @@
-#ifndef UINT32_H
-#define UINT32_H
-
-typedef unsigned int uint32;
-
-extern void uint32_pack(char *,uint32);
-extern void uint32_pack_big(char *,uint32);
-extern void uint32_unpack(char *,uint32 *);
-extern void uint32_unpack_big(char *,uint32 *);
-
-#endif
--- a/uint32.h2
+++ b/uint32.h2
@@ -1,11 +0,0 @@
-#ifndef UINT32_H
-#define UINT32_H
-
-typedef unsigned long uint32;
-
-extern void uint32_pack(char *,uint32);
-extern void uint32_pack_big(char *,uint32);
-extern void uint32_unpack(char *,uint32 *);
-extern void uint32_unpack_big(char *,uint32 *);
-
-#endif
--- a/uint32_pack.c
+++ b/uint32_pack.c
@@ -1,6 +1,6 @@
 #include "uint32.h"
 
-void uint32_pack(char s[4],uint32 u)
+void uint32_pack(char s[4],uint32_t u)
 {
   s[0] = u & 255;
   u >>= 8;
@@ -10,7 +10,7 @@
   s[3] = u >> 8;
 }
 
-void uint32_pack_big(char s[4],uint32 u)
+void uint32_pack_big(char s[4],uint32_t u)
 {
   s[3] = u & 255;
   u >>= 8;
--- a/uint32_unpack.c
+++ b/uint32_unpack.c
@@ -1,8 +1,8 @@
 #include "uint32.h"
 
-void uint32_unpack(char s[4],uint32 *u)
+void uint32_unpack(char s[4],uint32_t *u)
 {
-  uint32 result;
+  uint32_t result;
 
   result = (unsigned char) s[3];
   result <<= 8;
@@ -15,9 +15,9 @@
   *u = result;
 }
 
-void uint32_unpack_big(char s[4],uint32 *u)
+void uint32_unpack_big(char s[4],uint32_t *u)
 {
-  uint32 result;
+  uint32_t result;
 
   result = (unsigned char) s[0];
   result <<= 8;