From 52675184552c7284d4b4eb9a55f098cc80319f85 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Mon, 11 Aug 2003 20:40:21 +0000 Subject: [PATCH] autoconf around missing stdint.h svn:r376 --- configure.in | 10 +++++++++ src/common/aes.c | 1 - src/common/aes.h | 2 +- src/common/torint.h | 55 +++++++++++++++++++++++++++++++++++++++++++++ src/or/or.h | 4 +--- 5 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 src/common/torint.h diff --git a/configure.in b/configure.in index a1f573b01..f977d4e9a 100644 --- a/configure.in +++ b/configure.in @@ -135,5 +135,15 @@ dnl The warning message here is no longer strictly accurate. AC_CHECK_HEADERS(unistd.h string.h signal.h netdb.h ctype.h poll.h sys/poll.h sys/types.h sys/fcntl.h sys/ioctl.h sys/socket.h sys/time.h netinet/in.h arpa/inet.h errno.h assert.h stdint.h, , AC_MSG_WARN(some headers were not found, compilation may fail)) +dnl In case we aren't given a working stdint.h, we'll need to grow our own. +dnl Watch out. + +AC_CHECK_SIZEOF(char) +AC_CHECK_SIZEOF(short) +AC_CHECK_SIZEOF(int) +AC_CHECK_SIZEOF(long) +AC_CHECK_SIZEOF(long long) +AC_CHECK_SIZEOF(__int64) + AC_OUTPUT(Makefile src/Makefile src/common/Makefile src/orkeygen/Makefile src/or/Makefile) diff --git a/src/common/aes.c b/src/common/aes.c index e965f1baa..aa834fdb1 100644 --- a/src/common/aes.c +++ b/src/common/aes.c @@ -10,7 +10,6 @@ #include #include #include -#include #include "../../orconfig.h" #include "./aes.h" #include "util.h" diff --git a/src/common/aes.h b/src/common/aes.h index 0b43619bc..918770889 100644 --- a/src/common/aes.h +++ b/src/common/aes.h @@ -7,7 +7,7 @@ #ifndef __AES_H #define __AES_H -#include +#include "../common/torint.h" struct aes_cnt_cipher; typedef struct aes_cnt_cipher aes_cnt_cipher_t; diff --git a/src/common/torint.h b/src/common/torint.h new file mode 100644 index 000000000..65984b519 --- /dev/null +++ b/src/common/torint.h @@ -0,0 +1,55 @@ +/* Copyright 2003 Roger Dingledine */ +/* See LICENSE for licensing information */ +/* $Id$ */ + +#ifndef __TORINT_H +#define __TORINT_H + +#ifdef HAVE_STDINT_H +#include +#else + +#if (SIZEOF_CHAR == 1) +typedef unsigned char uint8_t; +typedef signed char int8_t; +#else +#error "sizeof(char) != 1" +#endif + +#if (SIZEOF_SHORT == 2) +typedef unsigned short uint16_t; +typedef signed short int16_t; +#elif (SIZEOF_INT == 2) +typedef unsigned int uint16_t; +typedef signed int int16_t; +#else +#error "sizeof(short) != 2 && sizeof(int) != 2" +#endif + +#if (SIZEOF_INT == 4) +typedef unsigned int uint32_t; +typedef signed int int32_t; +#elif (SIZEOF_LONG == 4) +typedef unsigned long uint32_t; +typedef signed long int32_t; +#else +#error "sizeof(int) != 4 && sizeof(long) != 4" +#endif + +#if (SIZEOF_LONG == 8) +typedef unsigned long uint64_t; +typedef signed long int64_t; +#elif (SIZEOF_LONG_LONG == 8) +typedef unsigned long long uint64_t; +typedef signed long long int64_t; +#elif (SIZEOF___INT64 == 8) +typedef unsigned __int64 uint64_t; +typedef signed __int64 int64_t; +#else +#error "sizeof(long) != 8 && sizeof(long long) != 8 && sizeof(__int64) != 8" +#endif + +#endif /* HAVE_STDINT_H */ + + +#endif /* __TORINT_H */ diff --git a/src/or/or.h b/src/or/or.h index 37a971e8d..dba32795e 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -15,9 +15,7 @@ #include #include #include -#ifdef HAVE_STDINT_H -#include -#endif +#include "../common/torint.h" #ifdef HAVE_SYS_POLL_H #include #elif HAVE_POLL_H