mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-02 01:45:17 +00:00
build: fix linking on BSD
While building on FreeBSD (and after fixing a ptsname_r link error), I got this failure: ./.libs/libvirt_util.a(libvirt_util_la-threads.o)(.text+0x240): In function `virThreadCreate': util/threads-pthread.c:185: undefined reference to `pthread_create' It turns out that gnulib used only pthread_join for LIB_PTHREAD, but on FreeBSD, libc provides that (as a stub function); whereas the more complex pthread_create really does require -pthread, which gnulib tracked under [LT]LIBMULTITHREAD. * configure.ac (LIBS): Check LIBMULTITHREAD alongside LIB_PTHREAD. * src/Makefile.am (THREAD_LIBS): New variable. (libvirt_util_la_LIBADD, libvirt_lxc_LDADD): Use it.
This commit is contained in:
parent
53c91e999c
commit
9d86cbcf5f
@ -141,9 +141,9 @@ AC_CHECK_FUNCS_ONCE([cfmakeraw geteuid getgid getgrnam_r getmntent_r \
|
|||||||
|
|
||||||
dnl Availability of pthread functions (if missing, win32 threading is
|
dnl Availability of pthread functions (if missing, win32 threading is
|
||||||
dnl assumed). Because of $LIB_PTHREAD, we cannot use AC_CHECK_FUNCS_ONCE.
|
dnl assumed). Because of $LIB_PTHREAD, we cannot use AC_CHECK_FUNCS_ONCE.
|
||||||
dnl LIB_PTHREAD was set during gl_INIT by gnulib.
|
dnl LIB_PTHREAD and LIBMULTITHREAD were set during gl_INIT by gnulib.
|
||||||
old_LIBS=$LIBS
|
old_LIBS=$LIBS
|
||||||
LIBS="$LIBS $LIB_PTHREAD"
|
LIBS="$LIBS $LIB_PTHREAD $LIBMULTITHREAD"
|
||||||
AC_CHECK_FUNCS([pthread_mutexattr_init])
|
AC_CHECK_FUNCS([pthread_mutexattr_init])
|
||||||
LIBS=$old_libs
|
LIBS=$old_libs
|
||||||
|
|
||||||
|
@ -29,6 +29,8 @@ CLEANFILES =
|
|||||||
DISTCLEANFILES =
|
DISTCLEANFILES =
|
||||||
MAINTAINERCLEANFILES =
|
MAINTAINERCLEANFILES =
|
||||||
|
|
||||||
|
THREAD_LIBS = $(LIB_PTHREAD) $(LTLIBMULTITHREAD)
|
||||||
|
|
||||||
if WITH_NETWORK
|
if WITH_NETWORK
|
||||||
UUID=$(shell uuidgen 2>/dev/null)
|
UUID=$(shell uuidgen 2>/dev/null)
|
||||||
endif
|
endif
|
||||||
@ -548,7 +550,7 @@ libvirt_util_la_SOURCES = \
|
|||||||
libvirt_util_la_CFLAGS = $(CAPNG_CFLAGS) $(YAJL_CFLAGS) $(LIBNL_CFLAGS) \
|
libvirt_util_la_CFLAGS = $(CAPNG_CFLAGS) $(YAJL_CFLAGS) $(LIBNL_CFLAGS) \
|
||||||
$(AM_CFLAGS) $(AUDIT_CFLAGS) $(DEVMAPPER_CFLAGS)
|
$(AM_CFLAGS) $(AUDIT_CFLAGS) $(DEVMAPPER_CFLAGS)
|
||||||
libvirt_util_la_LIBADD = $(CAPNG_LIBS) $(YAJL_LIBS) $(LIBNL_LIBS) \
|
libvirt_util_la_LIBADD = $(CAPNG_LIBS) $(YAJL_LIBS) $(LIBNL_LIBS) \
|
||||||
$(LIB_PTHREAD) $(AUDIT_LIBS) $(DEVMAPPER_LIBS)
|
$(THREAD_LIBS) $(AUDIT_LIBS) $(DEVMAPPER_LIBS)
|
||||||
|
|
||||||
|
|
||||||
noinst_LTLIBRARIES += libvirt_conf.la
|
noinst_LTLIBRARIES += libvirt_conf.la
|
||||||
@ -1481,7 +1483,7 @@ libvirt_lxc_SOURCES = \
|
|||||||
$(NWFILTER_PARAM_CONF_SOURCES)
|
$(NWFILTER_PARAM_CONF_SOURCES)
|
||||||
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(AM_LDFLAGS)
|
libvirt_lxc_LDFLAGS = $(WARN_CFLAGS) $(AM_LDFLAGS)
|
||||||
libvirt_lxc_LDADD = $(CAPNG_LIBS) $(YAJL_LIBS) \
|
libvirt_lxc_LDADD = $(CAPNG_LIBS) $(YAJL_LIBS) \
|
||||||
$(LIBXML_LIBS) $(NUMACTL_LIBS) $(LIB_PTHREAD) \
|
$(LIBXML_LIBS) $(NUMACTL_LIBS) $(THREAD_LIBS) \
|
||||||
$(LIBNL_LIBS) $(AUDIT_LIBS) $(DEVMAPPER_LIBS) \
|
$(LIBNL_LIBS) $(AUDIT_LIBS) $(DEVMAPPER_LIBS) \
|
||||||
../gnulib/lib/libgnu.la
|
../gnulib/lib/libgnu.la
|
||||||
if WITH_DTRACE
|
if WITH_DTRACE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user