Commit 444eff62 authored by Nick Mathewson's avatar Nick Mathewson 🎨
Browse files

Fix compilation on OSX 10.3.

On this OSX version, there is a stub mlockall() function
that doesn't work, *and* the declaration for it is hidden by
an '#ifdef _P1003_1B_VISIBLE'.  This would make autoconf
successfully find the function, but our code fail to build
when no declaration was found.

This patch adds an additional test for the declaration.
parent 1ee58040
Changes in version 0.2.2.7-alpha - 2009-??-??
o Minor bugfixes:
- Fix compilation on OSX 10.3, which has a stub mlockall() but hides it.
Changes in version 0.2.2.6-alpha - 2009-11-19
o Major features:
- Directory authorities can now create, vote on, and serve multiple
......
......@@ -629,9 +629,14 @@ if test x$tcmalloc = xyes ; then
fi
# By default, we're going to assume we don't have mlockall()
# bionic and other platforms have various broken mlockall subsystems
# some of systems don't have a working mlockall, some aren't linkable
# bionic and other platforms have various broken mlockall subsystems.
# Some systems don't have a working mlockall, some aren't linkable,
# and some have it but don't declare it.
AC_CHECK_FUNCS(mlockall)
AC_CHECK_DECLS([mlockall], , , [
#ifdef HAVE_SYS_MMAN_H
#include <sys/mman.h>
#endif])
# Allow user to specify an alternate syslog facility
AC_ARG_WITH(syslog-facility,
......
......@@ -2258,7 +2258,6 @@ int
tor_mlockall(void)
{
static int memory_lock_attempted = 0;
int ret;
if (memory_lock_attempted) {
return 1;
......@@ -2273,15 +2272,13 @@ tor_mlockall(void)
* http://msdn.microsoft.com/en-us/library/aa366895(VS.85).aspx
*/
#ifdef HAVE_MLOCKALL
ret = tor_set_max_memlock();
if (ret == 0) {
#if defined(HAVE_MLOCKALL) && HAVE_DECL_MLOCKALL
if (tor_set_max_memlock() == 0) {
/* Perhaps we only want to log this if we're in a verbose mode? */
log_notice(LD_GENERAL, "RLIMIT_MEMLOCK is now set to RLIM_INFINITY.");
}
ret = mlockall(MCL_CURRENT|MCL_FUTURE);
if (ret == 0) {
if (mlockall(MCL_CURRENT|MCL_FUTURE) == 0) {
log_notice(LD_GENERAL, "Insecure OS paging is effectively disabled.");
return 0;
} else {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment