~louis/ubuntu/trusty/clamav/lp799623_fix_logrotate

0.1.1 by Stephen Gran
Import upstream version 0.94.dfsg
1
dnl Check for mmap()
2
dnl AC_FUNC_MMAP checks for private fixed mappings, we don't need
3
dnl fixed mappings, so check only wether private mappings work.
4
dnl AC_FUNC_MMAP would fail on HP-UX for example.
5
AC_DEFUN([AC_C_FUNC_MMAP_PRIVATE],
6
[ 
7
	AC_CACHE_CHECK([for working mmap], [ac_cv_c_mmap_private],
8
	[
9
		AC_RUN_IFELSE([AC_LANG_SOURCE([
10
#include <unistd.h>
11
#include <stdlib.h>
12
#include <sys/mman.h>
13
#ifdef HAVE_SYS_TYPES_H
14
#include <sys/types.h>
15
#endif
16
#ifdef HAVE_SYS_STAT_H
17
#include <sys/stat.h>
18
#endif
19
#include <fcntl.h> 
20
int main(void)
21
{
22
	char *data, *data2, *data3;
23
	unsigned i, datasize = 1024;
24
	int fd;
25
26
  	/* First, make a file with some known garbage in it. */
27
	data = (char*) malloc(datasize);
28
	if(!data)
29
		return 1;
30
	for(i=0;i<datasize;i++)
31
		*(data + i) = rand();
32
	umask(0);
33
	fd = creat("conftest.mmap", 0600);
34
	if(fd < 0)
35
		return 1;
36
	if(write (fd, data, datasize) != datasize)
37
		return 1;
38
	close(fd);
39
	fd = open("conftest.mmap", O_RDWR);
40
	if (fd < 0)
41
		return 1;
42
	/* Next, try to mmap the file at a fixed address which already has
43
	   something else allocated at it.  If we can, also make sure that
44
	   we see the same garbage.  */
45
	data2 = mmap(NULL, sizeof(data), PROT_READ | PROT_WRITE,
46
		MAP_PRIVATE, fd, 0L);	
47
	if(data2 == MAP_FAILED)
48
		return 2;
49
	for(i=0;i<sizeof(data);i++)
50
		if(*(data + i) != *(data2+ i))
51
			return 3;
52
	  /* Finally, make sure that changes to the mapped area do not
53
     	     percolate back to the file as seen by read().  (This is a bug on
54
             some variants of i386 svr4.0.)  */
55
	  for (i = 0; i < datasize; ++i)
56
	    *(data2 + i) = *(data2 + i) + 1;
57
	data3 = (char*) malloc(datasize);
58
	if(!data3)
59
		return 1;
60
	if(read (fd, data3, datasize) != datasize)
61
		return 1;
62
	for(i=0;i<sizeof(data);i++)
63
		if(*(data + i) != *(data3 + i))
64
			return 3;
65
	close(fd);
66
	return 0;
67
}])],
68
	[ac_cv_c_mmap_private=yes],
69
	[ac_cv_c_mmap_private=no],
70
	[ac_cv_c_mmap_private=no])])
71
if test $ac_cv_c_mmap_private = yes; then
72
	AC_DEFINE(HAVE_MMAP, 1,
73
		[Define to 1 if you have a working `mmap' system call that supports MAP_PRIVATE.])
74
fi
75
rm -f conftest.mmap
76
])
77
78
0.1.3 by Stephen Gran
Import upstream version 0.95.1+dfsg
79
AC_DEFUN([AC_C_FUNC_MMAP_ANONYMOUS],
80
[
81
	AC_CACHE_CHECK([for MAP_ANON(YMOUS)], [ac_cv_c_mmap_anonymous],[
82
		ac_cv_c_mmap_anonymous='no'
0.35.14 by Michael Tautschnig, Stephen Gran, Alberto WU, Michael Tautschnig
[ Stephen Gran ]
83
		AC_LINK_IFELSE(
0.1.3 by Stephen Gran
Import upstream version 0.95.1+dfsg
84
			[AC_LANG_PROGRAM([[#include <sys/mman.h>]], [[mmap((void *)0, 0, PROT_READ | PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);]])],
85
			[ac_cv_c_mmap_anonymous='MAP_ANONYMOUS'],
86
			[
87
				AC_LINK_IFELSE(
88
					[AC_LANG_PROGRAM([[
89
/* OPENBSD WORKAROUND - DND*/
90
#include <sys/types.h>
91
/* OPENBSD WORKAROUND - END*/
92
#include <sys/mman.h>
93
]], [[mmap((void *)0, 0, PROT_READ | PROT_WRITE, MAP_PRIVATE|MAP_ANON, -1, 0);]])],
94
					[ac_cv_c_mmap_anonymous='MAP_ANON']
95
				)
96
			]
97
		)
98
	])
99
	if test "$ac_cv_c_mmap_anonymous" != "no"; then
100
		AC_DEFINE_UNQUOTED([ANONYMOUS_MAP],[$ac_cv_c_mmap_anonymous],[mmap flag for anonymous maps])
101
	fi
102
])
0.35.9 by Michael Tautschnig, Michael Tautschnig
[ Michael Tautschnig ]
103
104
AC_DEFUN([AC_C_FUNC_PAGESIZE],
105
[
106
ac_cv_c_can_get_pagesize="no"
107
AC_CACHE_CHECK([for sysconf(_SC_PAGESIZE)], [ac_cv_c_sysconf_sc_pagesize], [
108
	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
109
#include <sys/types.h>
110
#if HAVE_UNISTD_H
111
#include <unistd.h>
112
#endif]], [[int x = sysconf(_SC_PAGESIZE);]])],
113
	[ac_cv_c_sysconf_sc_pagesize=yes], [ac_cv_c_sysconf_sc_pagesize=no])
114
])
115
if test "$ac_cv_c_sysconf_sc_pagesize" = "yes"; then
116
	AC_DEFINE([HAVE_SYSCONF_SC_PAGESIZE], 1, [Define to 1 if sysconf(_SC_PAGESIZE) is available])
117
	ac_cv_c_can_get_pagesize="yes"
118
fi
119
AC_CACHE_CHECK([for getpagesize()], [ac_cv_c_getpagesize], [
120
	AC_LINK_IFELSE([AC_LANG_PROGRAM([[
121
#if HAVE_UNISTD_H
122
#include <unistd.h>
123
#endif]], [[int x = getpagesize();]])], 
124
	[ac_cv_c_getpagesize=yes], [ac_cv_c_getpagesize=no])
125
])
126
if test "$ac_cv_c_getpagesize" = "yes"; then
127
	AC_DEFINE([HAVE_GETPAGESIZE], 1, [Define to 1 if getpagesize() is available])
128
	ac_cv_c_can_get_pagesize="yes"
129
fi
130
])
131