build: use correct libraries for clock_gettime

On OpenBSD, clock_gettime() exists in libc rather than librt, and
blindly linking with -lrt made the build fail.  Gnulib already
did the work for determining which libraries to use, so we should
reuse that work rather than doing it ourselves.

* bootstrap.conf (gnulib_modules): Pull in clock-time.
* configure.ac (RT_LIBS): Drop.
* src/Makefile.am (libvirt_util_la_LIBADD): Use gnulib variable
instead.
* src/util/virtime.c (includes): Simplify.
This commit is contained in:
Eric Blake 2012-09-04 10:57:25 -06:00
parent afa67b7743
commit d74e5a4dfc
4 changed files with 4 additions and 15 deletions

View File

@ -30,6 +30,7 @@ c-strcasestr
calloc-posix
canonicalize-lgpl
chown
clock-time
close
connect
configmake

View File

@ -183,16 +183,6 @@ LIBS="$LIBS $LIB_PTHREAD $LIBMULTITHREAD"
AC_CHECK_FUNCS([pthread_mutexattr_init])
LIBS=$old_libs
old_LIBS=$LIBS
RT_LIBS=
LIBS="$LIBS $LIB_PTHREAD -lrt"
AC_CHECK_FUNC([clock_gettime],[
AC_DEFINE([HAVE_CLOCK_GETTIME],[],[Defined if clock_gettime() exists in librt.so])
RT_LIBS=-lrt
])
LIBS=$old_libs
AC_SUBST(RT_LIBS)
dnl Availability of various common headers (non-fatal if missing).
AC_CHECK_HEADERS([pwd.h paths.h regex.h sys/un.h \
sys/poll.h syslog.h mntent.h net/ethernet.h linux/magic.h \

View File

@ -668,7 +668,7 @@ libvirt_util_la_CFLAGS = $(CAPNG_CFLAGS) $(YAJL_CFLAGS) $(LIBNL_CFLAGS) \
$(DBUS_CFLAGS) $(LDEXP_LIBM)
libvirt_util_la_LIBADD = $(CAPNG_LIBS) $(YAJL_LIBS) $(LIBNL_LIBS) \
$(THREAD_LIBS) $(AUDIT_LIBS) $(DEVMAPPER_LIBS) \
$(RT_LIBS) $(DBUS_LIBS) $(MSCOM_LIBS) $(LIBXML_LIBS)
$(LIB_CLOCK_GETTIME) $(DBUS_LIBS) $(MSCOM_LIBS) $(LIBXML_LIBS)
noinst_LTLIBRARIES += libvirt_conf.la

View File

@ -1,7 +1,7 @@
/*
* virtime.c: Time handling functions
*
* Copyright (C) 2006-2011 Red Hat, Inc.
* Copyright (C) 2006-2012 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -34,9 +34,7 @@
#include <config.h>
#include <stdio.h>
#ifndef HAVE_CLOCK_GETTIME
# include <sys/time.h>
#endif
#include <sys/time.h>
#include "virtime.h"
#include "util.h"