[Pkg-clamav-commits] [SCM] Debian repository for ClamAV branch, debian/unstable, updated. debian/0.95+dfsg-1-6156-g094ec9b

aCaB acab at clamav.net
Sun Apr 4 00:59:06 UTC 2010


The following commit has been merged in the debian/unstable branch:
commit 86d59b249e12809a5c7c2a4720e3dab6fa31ce80
Author: aCaB <acab at clamav.net>
Date:   Thu Jul 16 13:22:28 2009 +0200

    fix portability issues for fseeko, sysconf(_SC_PAGESIZE), getpagesize() (bb#1658)

diff --git a/ChangeLog b/ChangeLog
index c64201f..589d6b4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jul 16 14:20:01 CEST 2009 (acab)
+------------------------------------
+ * libclamav, build system: fix portability issues for fseeko, sysconf(_SC_PAGESIZE),
+			    getpagesize() (bb#1658)
+
 Wed Jul 15 23:36:09 EEST 2009 (edwin)
 -------------------------------------
  * libclamav/pe.c, yc.c: Make yC able to handle more samples and variants.
diff --git a/clamav-config.h.in b/clamav-config.h.in
index bcbf9eb..e1ce966 100644
--- a/clamav-config.h.in
+++ b/clamav-config.h.in
@@ -196,6 +196,9 @@
 /* gethostbyname_r takes 6 arguments */
 #undef HAVE_GETHOSTBYNAME_R_6
 
+/* Define to 1 if getpagesize() is available */
+#undef HAVE_GETPAGESIZE
+
 /* Define to 1 if you have the <grp.h> header file. */
 #undef HAVE_GRP_H
 
@@ -356,6 +359,9 @@
 /* Define to 1 if you have the `strlcpy' function. */
 #undef HAVE_STRLCPY
 
+/* Define to 1 if sysconf(_SC_PAGESIZE) is available */
+#undef HAVE_SYSCONF_SC_PAGESIZE
+
 /* link against system-wide libtommath */
 #undef HAVE_SYSTEM_TOMMATH
 
diff --git a/configure b/configure
index ef5e3b2..6d2500f 100755
--- a/configure
+++ b/configure
@@ -16384,6 +16384,139 @@ _ACEOF
 fi
 done
 
+{ $as_echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5
+$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
+if test "${ac_cv_sys_largefile_source+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  while :; do
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <sys/types.h> /* for off_t */
+     #include <stdio.h>
+int
+main ()
+{
+int (*fp) (FILE *, off_t, int) = fseeko;
+     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_sys_largefile_source=no; break
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#define _LARGEFILE_SOURCE 1
+#include <sys/types.h> /* for off_t */
+     #include <stdio.h>
+int
+main ()
+{
+int (*fp) (FILE *, off_t, int) = fseeko;
+     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
+  ac_cv_sys_largefile_source=1; break
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+  ac_cv_sys_largefile_source=unknown
+  break
+done
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5
+$as_echo "$ac_cv_sys_largefile_source" >&6; }
+case $ac_cv_sys_largefile_source in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
+_ACEOF
+;;
+esac
+rm -rf conftest*
+
+# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
+# in glibc 2.1.3, but that breaks too many other things.
+# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+if test $ac_cv_sys_largefile_source != unknown; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_FSEEKO 1
+_ACEOF
+
+fi
+
+
 
 	{ $as_echo "$as_me:$LINENO: checking for working mmap" >&5
 $as_echo_n "checking for working mmap... " >&6; }
@@ -16508,25 +16641,29 @@ _ACEOF
 fi
 rm -f conftest.mmap
 
-{ $as_echo "$as_me:$LINENO: checking for _LARGEFILE_SOURCE value needed for large files" >&5
-$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
-if test "${ac_cv_sys_largefile_source+set}" = set; then
+
+ac_cv_c_can_get_pagesize="no"
+{ $as_echo "$as_me:$LINENO: checking for sysconf(_SC_PAGESIZE)" >&5
+$as_echo_n "checking for sysconf(_SC_PAGESIZE)... " >&6; }
+if test "${ac_cv_c_sysconf_sc_pagesize+set}" = set; then
   $as_echo_n "(cached) " >&6
 else
-  while :; do
-  cat >conftest.$ac_ext <<_ACEOF
+
+	cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <sys/types.h> /* for off_t */
-     #include <stdio.h>
+
+#include <sys/types.h>
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
 int
 main ()
 {
-int (*fp) (FILE *, off_t, int) = fseeko;
-     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+int x = sysconf(_SC_PAGESIZE);
   ;
   return 0;
 }
@@ -16552,31 +16689,49 @@ $as_echo "$ac_try_echo") >&5
 	 test "$cross_compiling" = yes ||
 	 $as_test_x conftest$ac_exeext
        }; then
-  ac_cv_sys_largefile_source=no; break
+  ac_cv_c_sysconf_sc_pagesize=yes
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-
+	ac_cv_c_sysconf_sc_pagesize=no
 fi
 
 rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_sysconf_sc_pagesize" >&5
+$as_echo "$ac_cv_c_sysconf_sc_pagesize" >&6; }
+if test "$ac_cv_c_sysconf_sc_pagesize" = "yes"; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_SYSCONF_SC_PAGESIZE 1
+_ACEOF
+
+	ac_cv_c_can_get_pagesize="yes"
+fi
+{ $as_echo "$as_me:$LINENO: checking for getpagesize()" >&5
+$as_echo_n "checking for getpagesize()... " >&6; }
+if test "${ac_cv_c_getpagesize+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+
+	cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#define _LARGEFILE_SOURCE 1
-#include <sys/types.h> /* for off_t */
-     #include <stdio.h>
+
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
 int
 main ()
 {
-int (*fp) (FILE *, off_t, int) = fseeko;
-     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
+int x = getpagesize();
   ;
   return 0;
 }
@@ -16602,45 +16757,30 @@ $as_echo "$ac_try_echo") >&5
 	 test "$cross_compiling" = yes ||
 	 $as_test_x conftest$ac_exeext
        }; then
-  ac_cv_sys_largefile_source=1; break
+  ac_cv_c_getpagesize=yes
 else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-
+	ac_cv_c_getpagesize=no
 fi
 
 rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
-  ac_cv_sys_largefile_source=unknown
-  break
-done
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sys_largefile_source" >&5
-$as_echo "$ac_cv_sys_largefile_source" >&6; }
-case $ac_cv_sys_largefile_source in #(
-  no | unknown) ;;
-  *)
-cat >>confdefs.h <<_ACEOF
-#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
-_ACEOF
-;;
-esac
-rm -rf conftest*
 
-# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
-# in glibc 2.1.3, but that breaks too many other things.
-# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
-if test $ac_cv_sys_largefile_source != unknown; then
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_getpagesize" >&5
+$as_echo "$ac_cv_c_getpagesize" >&6; }
+if test "$ac_cv_c_getpagesize" = "yes"; then
 
 cat >>confdefs.h <<\_ACEOF
-#define HAVE_FSEEKO 1
+#define HAVE_GETPAGESIZE 1
 _ACEOF
 
+	ac_cv_c_can_get_pagesize="yes"
 fi
 
-
 # Check whether --enable-mempool was given.
 if test "${enable_mempool+set}" = set; then
   enableval=$enable_mempool; enable_mempool=$enableval
@@ -16653,93 +16793,10 @@ if test "$enable_mempool" = "yes"; then
 		{ $as_echo "$as_me:$LINENO: ****** mempool support disabled (mmap not available or not usable)" >&5
 $as_echo "$as_me: ****** mempool support disabled (mmap not available or not usable)" >&6;}
 	else
-		{ $as_echo "$as_me:$LINENO: checking for getpagesize" >&5
-$as_echo_n "checking for getpagesize... " >&6; }
-if test "${ac_cv_func_getpagesize+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define getpagesize to an innocuous variant, in case <limits.h> declares getpagesize.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define getpagesize innocuous_getpagesize
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char getpagesize (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef getpagesize
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char getpagesize ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_getpagesize || defined __stub___getpagesize
-choke me
-#endif
-
-int
-main ()
-{
-return getpagesize ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_getpagesize=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_getpagesize=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_getpagesize" >&5
-$as_echo "$ac_cv_func_getpagesize" >&6; }
-if test "x$ac_cv_func_getpagesize" = x""yes; then
-
+		if test "$ac_cv_c_can_get_pagesize" != "yes"; then
+			{ $as_echo "$as_me:$LINENO: ****** mempool support disabled (pagesize cannot be determined)" >&5
+$as_echo "$as_me: ****** mempool support disabled (pagesize cannot be determined)" >&6;}
+		else
 
 	{ $as_echo "$as_me:$LINENO: checking for MAP_ANON(YMOUS)" >&5
 $as_echo_n "checking for MAP_ANON(YMOUS)... " >&6; }
@@ -16867,12 +16924,7 @@ cat >>confdefs.h <<\_ACEOF
 _ACEOF
 
 			fi
-
-else
-  { $as_echo "$as_me:$LINENO: ****** mempool support disabled (getpagesize not available)" >&5
-$as_echo "$as_me: ****** mempool support disabled (getpagesize not available)" >&6;}
-fi
-
+		fi
 	fi
 fi
 
diff --git a/configure.in b/configure.in
index 449eaf9..7a97f37 100644
--- a/configure.in
+++ b/configure.in
@@ -424,22 +424,26 @@ AC_CHECK_LIB([socket], [bind], [LIBS="$LIBS -lsocket"; CLAMAV_MILTER_LIBS="$CLAM
 AC_SEARCH_LIBS([gethostent],[nsl], [(LIBS="$LIBS -lnsl"; CLAMAV_MILTER_LIBS="$CLAMAV_MILTER_LIBS -lnsl"; FRESHCLAM_LIBS="$FRESHCLAM_LIBS -lnsl"; CLAMD_LIBS="$CLAMD_LIBS -lnsl")])
 
 AC_CHECK_FUNCS([poll setsid memcpy snprintf vsnprintf strerror_r strlcpy strlcat strcasestr inet_ntop setgroups initgroups ctime_r mkstemp mallinfo])
-AC_C_FUNC_MMAP_PRIVATE
 AC_FUNC_FSEEKO
 
+dnl Check if anon maps are available, check if we can determine the page size
+AC_C_FUNC_MMAP_PRIVATE
+AC_C_FUNC_PAGESIZE
 AC_ARG_ENABLE([mempool],[  --disable-mempool       disable memory pools], enable_mempool=$enableval, enable_mempool="yes")
 if test "$enable_mempool" = "yes"; then
 	if test "$ac_cv_c_mmap_private" != "yes"; then
 		AC_MSG_NOTICE([****** mempool support disabled (mmap not available or not usable)])
 	else
-		AC_CHECK_FUNC([getpagesize], [
+		if test "$ac_cv_c_can_get_pagesize" != "yes"; then
+			AC_MSG_NOTICE([****** mempool support disabled (pagesize cannot be determined)])
+		else
 			AC_C_FUNC_MMAP_ANONYMOUS
 			if test "$ac_cv_c_mmap_anonymous" = "no"; then
 				AC_MSG_NOTICE([****** mempool support disabled (anonymous mmap not available)])
 			else
 				AC_DEFINE([USE_MPOOL],1,[enable memory pools])
 			fi
-		], [AC_MSG_NOTICE([****** mempool support disabled (getpagesize not available)])])
+		fi
 	fi
 fi
 
diff --git a/libclamav/blob.c b/libclamav/blob.c
index b687d56..49bd398 100644
--- a/libclamav/blob.c
+++ b/libclamav/blob.c
@@ -181,7 +181,7 @@ blobGetFilename(const blob *b)
 int
 blobAddData(blob *b, const unsigned char *data, size_t len)
 {
-#ifdef	HAVE_GETPAGESIZE
+#if	HAVE_CLI_GETPAGESIZE
 	static int pagesize;
 	int growth;
 #endif
@@ -210,9 +210,9 @@ blobAddData(blob *b, const unsigned char *data, size_t len)
 	 * size of a blob before you start adding data, use blobGrow() that's
 	 * the most optimum
 	 */
-#ifdef	HAVE_GETPAGESIZE
+#if	HAVE_CLI_GETPAGESIZE
 	if(pagesize == 0) {
-		pagesize = getpagesize();
+		pagesize = cli_getpagesize();
 		if(pagesize == 0)
 			pagesize = 4096;
 	}
diff --git a/libclamav/ishield.c b/libclamav/ishield.c
index 8f27b6e..df423bb 100644
--- a/libclamav/ishield.c
+++ b/libclamav/ishield.c
@@ -41,7 +41,9 @@
 #include <string.h>
 #endif
 #include <limits.h>
+#if HAVE_STRINGS_H
 #include <strings.h>
+#endif
 #include <zlib.h>
 
 #include "scanners.h"
@@ -514,8 +516,8 @@ static int is_parse_hdr(int desc, cli_ctx *ctx, struct IS_CABSTUFF *c) {
 	    return CL_EREAD; /* hdr must be within bounds, it's k to hard fail here */
 	}
     } else {
-#if HAVE_MMAP
-	int psz = getpagesize();
+#if HAVE_MMAP && HAVE_CLI_GETPAGESIZE
+	int psz = cli_getpagesize();
 	off_t mp_hdr = (c->hdr / psz) * psz;
 	mp_hdrsz = c->hdrsz + c->hdr - mp_hdr;
 	if((map = mmap(NULL, mp_hdrsz, PROT_READ, MAP_PRIVATE, desc, mp_hdr))==MAP_FAILED) {
@@ -524,7 +526,7 @@ static int is_parse_hdr(int desc, cli_ctx *ctx, struct IS_CABSTUFF *c) {
 	}
 	hdr = map + c->hdr - mp_hdr;
 #else
-	cli_warnmsg("is_parse_hdr: hdr too big and mmap unavailable\n");
+	cli_warnmsg("is_parse_hdr: hdr too big and mmap is not usable\n");
 	return CL_CLEAN
 #endif
     }
@@ -716,7 +718,12 @@ static int is_extract_cab(int desc, cli_ctx *ctx, uint64_t off, uint64_t size, u
 	close(ofd);
 	return CL_EOPEN;
     }
-    if(fseeko(in, off, SEEK_SET)) {
+#if HAVE_FSEEKO
+    if(fseeko(in, (off_t)off, SEEK_SET))
+#else
+    if(fseek(in, (long)off, SEEK_SET))
+#endif
+    {
 	cli_dbgmsg("is_extract_cab: fseek failed\n");
 	fclose(in);
 	return CL_ESEEK;
diff --git a/libclamav/mpool.c b/libclamav/mpool.c
index 4f6bebd..e70bee4 100644
--- a/libclamav/mpool.c
+++ b/libclamav/mpool.c
@@ -349,7 +349,7 @@ struct MP *mpool_create() {
   struct MP mp, *mpool_p;
   unsigned int sz;
   memset(&mp, 0, sizeof(mp));
-  mp.psize = getpagesize();
+  mp.psize = cli_getpagesize();
   sz = align_to_pagesize(&mp, MIN_FRAGSIZE);
   mp.mpm.usize = align_to_voidptr(sizeof(struct MPMAP));
   mp.mpm.size = sz - align_to_voidptr(sizeof(mp));
diff --git a/libclamav/others.h b/libclamav/others.h
index 21b7c29..7cb8721 100644
--- a/libclamav/others.h
+++ b/libclamav/others.h
@@ -365,6 +365,17 @@ void cli_dbgmsg_internal(const char *str, ...) __attribute__((format(printf, 1,
 void cli_dbgmsg_internal(const char *str, ...);
 #endif
 
+#if HAVE_SYSCONF_SC_PAGESIZE
+static inline int cli_getpagesize() { return sysconf(_SC_PAGESIZE); }
+#define HAVE_CLI_GETPAGESIZE 1
+#else
+#if HAVE_GETPAGESIZE
+static inline int cli_getpagesize() { return getpagesize(); }
+#define HAVE_CLI_GETPAGESIZE 1
+#endif
+#define HAVE_CLI_GETPAGESIZE 0
+#endif
+
 void *cli_malloc(size_t nmemb);
 void *cli_calloc(size_t nmemb, size_t size);
 void *cli_realloc(void *ptr, size_t size);
diff --git a/m4/mmap_private.m4 b/m4/mmap_private.m4
index 6c73818..1050864 100644
--- a/m4/mmap_private.m4
+++ b/m4/mmap_private.m4
@@ -100,3 +100,32 @@ AC_DEFUN([AC_C_FUNC_MMAP_ANONYMOUS],
 		AC_DEFINE_UNQUOTED([ANONYMOUS_MAP],[$ac_cv_c_mmap_anonymous],[mmap flag for anonymous maps])
 	fi
 ])
+
+AC_DEFUN([AC_C_FUNC_PAGESIZE],
+[
+ac_cv_c_can_get_pagesize="no"
+AC_CACHE_CHECK([for sysconf(_SC_PAGESIZE)], [ac_cv_c_sysconf_sc_pagesize], [
+	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#include <sys/types.h>
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif]], [[int x = sysconf(_SC_PAGESIZE);]])],
+	[ac_cv_c_sysconf_sc_pagesize=yes], [ac_cv_c_sysconf_sc_pagesize=no])
+])
+if test "$ac_cv_c_sysconf_sc_pagesize" = "yes"; then
+	AC_DEFINE([HAVE_SYSCONF_SC_PAGESIZE], 1, [Define to 1 if sysconf(_SC_PAGESIZE) is available])
+	ac_cv_c_can_get_pagesize="yes"
+fi
+AC_CACHE_CHECK([for getpagesize()], [ac_cv_c_getpagesize], [
+	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif]], [[int x = getpagesize();]])], 
+	[ac_cv_c_getpagesize=yes], [ac_cv_c_getpagesize=no])
+])
+if test "$ac_cv_c_getpagesize" = "yes"; then
+	AC_DEFINE([HAVE_GETPAGESIZE], 1, [Define to 1 if getpagesize() is available])
+	ac_cv_c_can_get_pagesize="yes"
+fi
+])
+

-- 
Debian repository for ClamAV



More information about the Pkg-clamav-commits mailing list