summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2012-06-05 10:31:00 -0400
committerNick Mathewson <nickm@torproject.org>2012-06-05 10:31:00 -0400
commit7f45ea5c41bd076accd3720c021e6d3b512fb2b2 (patch)
treeaf409914df269d50de5bfb6d75b63e91d10f24e5
parentb4bd4964eba5b0dae811a5c28c664b8f78a0672c (diff)
parentf35271bf3eceadd03bff26d34c1d020892d6c6f0 (diff)
downloadtor-7f45ea5c41bd076accd3720c021e6d3b512fb2b2.tar.gz
tor-7f45ea5c41bd076accd3720c021e6d3b512fb2b2.zip
Merge remote-tracking branch 'public/bug3894'
-rw-r--r--changes/bug3894_more4
-rw-r--r--configure.in2
-rw-r--r--src/common/compat.h3
-rw-r--r--src/common/torint.h10
-rw-r--r--src/common/util.c2
5 files changed, 20 insertions, 1 deletions
diff --git a/changes/bug3894_more b/changes/bug3894_more
new file mode 100644
index 0000000000..4c2220aba8
--- /dev/null
+++ b/changes/bug3894_more
@@ -0,0 +1,4 @@
+ o Build fixes:
+ - Clean up some code issues that prevented Tor from building on older
+ BSDs. Fixes bug 3894; reported by grarpamp.
+
diff --git a/configure.in b/configure.in
index 0f31071a4d..56cf3d6d33 100644
--- a/configure.in
+++ b/configure.in
@@ -680,6 +680,8 @@ AC_CHECK_HEADERS(
utime.h
)
+AC_CHECK_HEADERS(sys/param.h)
+
TOR_CHECK_PROTOTYPE(malloc_good_size, HAVE_MALLOC_GOOD_SIZE_PROTOTYPE,
[#ifdef HAVE_MALLOC_H
#include <malloc.h>
diff --git a/src/common/compat.h b/src/common/compat.h
index 23081ac495..4efb0c8b8c 100644
--- a/src/common/compat.h
+++ b/src/common/compat.h
@@ -20,6 +20,9 @@
#include <ws2tcpip.h>
#endif
#endif
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
diff --git a/src/common/torint.h b/src/common/torint.h
index 09495ac588..8771802d70 100644
--- a/src/common/torint.h
+++ b/src/common/torint.h
@@ -191,6 +191,16 @@ typedef unsigned __int64 uint64_t;
#endif
#endif
+#ifndef SIZE_MAX
+#if SIZEOF_SIZE_T == 8
+#define SIZE_MAX UINT64_MAX
+#elif SIZEOF_SIZE_T == 4
+#define SIZE_MAX UINT32_MAX
+#else
+#error "Can't define SIZE_MAX"
+#endif
+#endif
+
#ifndef HAVE_SSIZE_T
#if SIZEOF_SIZE_T == 8
typedef int64_t ssize_t;
diff --git a/src/common/util.c b/src/common/util.c
index 09cb2e966f..74f8bd84b6 100644
--- a/src/common/util.c
+++ b/src/common/util.c
@@ -80,7 +80,7 @@
#include <malloc/malloc.h>
#endif
#ifdef HAVE_MALLOC_H
-#ifndef OPENBSD
+#if !defined(OPENBSD) && !defined(__FreeBSD__)
/* OpenBSD has a malloc.h, but for our purposes, it only exists in order to
* scold us for being so stupid as to autodetect its presence. To be fair,
* they've done this since 1996, when autoconf was only 5 years old. */