Преглед на файлове

Fix compilation with with bionic libc.

This fixes bug 1147:

 bionic doesn't have an actual implementation of mlockall();
 mlockall() is merely in the headers but not actually in the library.
 This prevents Tor compilation with the bionic libc for Android handsets.
Jacob Appelbaum преди 15 години
родител
ревизия
6f1fe7e941
променени са 2 файла, в които са добавени 6 реда и са изтрити 1 реда
  1. 5 0
      configure.in
  2. 1 1
      src/common/compat.c

+ 5 - 0
configure.in

@@ -628,6 +628,11 @@ if test x$tcmalloc = xyes ; then
    LDFLAGS="-ltcmalloc $LDFLAGS"
 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
+AC_CHECK_FUNCS(mlockall)
+
 # Allow user to specify an alternate syslog facility
 AC_ARG_WITH(syslog-facility,
 [  --with-syslog-facility=LOG syslog facility to use (default=LOG_DAEMON)],

+ 1 - 1
src/common/compat.c

@@ -2273,7 +2273,7 @@ tor_mlockall(void)
    * http://msdn.microsoft.com/en-us/library/aa366895(VS.85).aspx
    */
 
-#ifdef HAVE_SYS_MMAN_H
+#ifdef HAVE_MLOCKALL
   ret = tor_set_max_memlock();
   if (ret == 0) {
     /* Perhaps we only want to log this if we're in a verbose mode? */