Commit 6bb75c2f authored by Dag Erling Smørgrav's avatar Dag Erling Smørgrav

Fix build on MacOS X: add a fake clock_gettime() and fix some includes.

WARNING: varnish will build and run, but the lack of a monotonic clock
may lead to strange behaviour if the clock is stepped (rather than skewed)
while varnish is running.

Thanks to Niklas Saers for providing a test environment.

git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@1145 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent 328daf3d
......@@ -43,6 +43,10 @@
#include <sys/types.h>
#include <sys/socket.h>
#ifndef HAVE_CLOCK_GETTIME
#include "compat/clock_gettime.h"
#endif
#ifndef HAVE_SRANDOMDEV
#include "compat/srandomdev.h"
#endif
......
......@@ -41,6 +41,10 @@
#include <sys/epoll.h>
#ifndef HAVE_CLOCK_GETTIME
#include "compat/clock_gettime.h"
#endif
#include "heritage.h"
#include "shmlog.h"
#include "cache.h"
......
......@@ -43,6 +43,10 @@
#include <sys/event.h>
#ifndef HAVE_CLOCK_GETTIME
#include "compat/clock_gettime.h"
#endif
#include "heritage.h"
#include "shmlog.h"
#include "cache.h"
......
......@@ -42,6 +42,10 @@
#include <unistd.h>
#include <poll.h>
#ifndef HAVE_CLOCK_GETTIME
#include "compat/clock_gettime.h"
#endif
#include "heritage.h"
#include "shmlog.h"
#include "cache.h"
......
......@@ -31,6 +31,8 @@
* Ban processing
*/
#include <sys/types.h>
#include <stdlib.h>
#include <string.h>
#include <regex.h>
......
......@@ -60,6 +60,10 @@ DOT start -> RECV
#include <string.h>
#include <unistd.h>
#ifndef HAVE_CLOCK_GETTIME
#include "compat/clock_gettime.h"
#endif
#include "shmlog.h"
#include "vcl.h"
#include "cache.h"
......
......@@ -41,6 +41,10 @@
#include <sys/socket.h>
#include <netdb.h>
#ifndef HAVE_CLOCK_GETTIME
#include "compat/clock_gettime.h"
#endif
#include "shmlog.h"
#include "cache.h"
......
......@@ -38,6 +38,10 @@
#include <stdlib.h>
#include <sys/socket.h>
#ifndef HAVE_CLOCK_GETTIME
#include "compat/clock_gettime.h"
#endif
#include "shmlog.h"
#include "heritage.h"
#include "cache.h"
......
......@@ -34,6 +34,10 @@
#include <sys/types.h>
#include <sys/time.h>
#ifndef HAVE_CLOCK_GETTIME
#include "compat/clock_gettime.h"
#endif
#include "shmlog.h"
#include "heritage.h"
#include "cache.h"
......
......@@ -31,6 +31,7 @@
* Runtime support for compiled VCL programs
*/
#include <sys/types.h>
#include <stdio.h>
#include <string.h>
......
......@@ -34,6 +34,8 @@
* XXX: a refresh facility.
*/
#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
......
......@@ -31,6 +31,8 @@
* Runtime support for compiled VCL programs, regexps
*/
#include <sys/types.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
......
......@@ -31,6 +31,8 @@
* This is the reference hash(/lookup) implementation
*/
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
......
......@@ -37,6 +37,10 @@
#include <string.h>
#include <stdlib.h>
#ifndef HAVE_CLOCK_GETTIME
#include "compat/clock_gettime.h"
#endif
#include "mgt.h"
#include "mgt_event.h"
#include "miniobj.h"
......
......@@ -29,6 +29,8 @@
* $Id$
*/
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
......
......@@ -31,6 +31,8 @@
* Storage method based on malloc(3)
*/
#include <sys/types.h>
#include <stdlib.h>
#include "cache.h"
......
......@@ -39,6 +39,10 @@
#include <curses.h>
#include <time.h>
#ifndef HAVE_CLOCK_GETTIME
#include "compat/clock_gettime.h"
#endif
#include "libvarnish.h"
#include "shmlog.h"
#include "varnishapi.h"
......
......@@ -78,6 +78,7 @@ AC_CHECK_FUNCS([srandomdev])
AC_CHECK_FUNCS([strlcat strlcpy])
AC_CHECK_FUNCS([strndup])
AC_CHECK_FUNCS([vis strvis strvisx])
AC_CHECK_FUNCS([clock_gettime])
# Check which mechanism to use for the acceptor
AC_CHECK_FUNCS([kqueue])
......
......@@ -6,6 +6,7 @@ noinst_HEADERS = \
cli_common.h \
cli_priv.h \
compat/asprintf.h \
compat/clock_gettime.h \
compat/setproctitle.h \
compat/srandomdev.h \
compat/strlcat.h \
......
/*-
* Copyright (c) 2006 Verdens Gang AS
* Copyright (c) 2006 Linpro AS
* All rights reserved.
*
* Author: Dag-Erling Smørgrav <des@linpro.no>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id$
*/
#ifndef COMPAT_CLOCK_GETTIME_H_INCLUDED
#define COMPAT_CLOCK_GETTIME_H_INCLUDED
#ifndef HAVE_CLOCK_GETTIME
typedef enum {
CLOCK_REALTIME,
CLOCK_MONOTONIC,
} clockid_t;
int clock_gettime(clockid_t clk_id, struct timespec *tp);
#endif
#endif
......@@ -6,6 +6,7 @@ noinst_LIBRARIES = libcompat.a
libcompat_a_SOURCES = \
asprintf.c \
clock_gettime.c \
vasprintf.c \
setproctitle.c \
srandomdev.c \
......
/*-
* Copyright (c) 2006 Verdens Gang AS
* Copyright (c) 2006 Linpro AS
* All rights reserved.
*
* Author: Dag-Erling Smørgrav <des@linpro.no>
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id$
*
*/
#ifndef HAVE_CLOCK_GETTIME
#include <sys/time.h>
#include <errno.h>
#include <time.h>
#include "compat/clock_gettime.h"
int
clock_gettime(clockid_t clk_id, struct timespec *tp)
{
struct timeval tv;
switch (clk_id) {
case CLOCK_REALTIME:
case CLOCK_MONOTONIC:
if (gettimeofday(&tv, NULL) != 0)
return (-1);
tp->tv_sec = tv.tv_sec;
tp->tv_nsec = tv.tv_usec * 1000;
return (0);
default:
errno = EINVAL;
return (-1);
}
}
#endif
Markdown is supported
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