[libvirt] [PATCH] fix rawhide/F13 --no-add-needed/dlopen-related build failures

Daniel Veillard veillard at redhat.com
Thu Mar 4 16:23:53 UTC 2010


On Thu, Mar 04, 2010 at 05:14:38PM +0100, Jim Meyering wrote:
> Diego,
> 
> I saw no follow-up here,
>   http://thread.gmane.org/gmane.comp.emulators.libvirt/21398/focus=21671
> so I've fixed your two patches to address Eric's review feedback,
> and confirmed that they solve the problem on Rawhide.
> 
> >From 55c182d89cd6e5417eafe9f4bdf2e0ef7f8721f5 Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= <flameeyes at gmail.com>
> Date: Thu, 4 Mar 2010 16:45:02 +0100
> Subject: [PATCH 1/2] build: avoid dlopen-related link failure on rawhide/F13
> 
> Instead of using AC_CHECK_LIB and hardcoding -ldl, search for the library
> needed to get dlopen() and then use the cached value.
> ---
>  configure.ac |    7 +++++--
>  1 files changed, 5 insertions(+), 2 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 682b8b5..d5d62ea 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -1700,7 +1700,7 @@ if test "x$with_driver_modules" = "xyes" ; then
>    old_libs="$LIBS"
>    fail=0
>    AC_CHECK_HEADER([dlfcn.h],[],[fail=1])
> -  AC_CHECK_LIB([dl], [dlopen],[],[fail=1])
> +  AC_SEARCH_LIBS([dlopen], [dl], [], [fail=1])
>    test $fail = 1 &&
>        AC_MSG_ERROR([You must have dlfcn.h / dlopen() support to build driver modules])
> 
> @@ -1709,7 +1709,10 @@ if test "x$with_driver_modules" = "xyes" ; then
>  fi
>  if test "$with_driver_modules" = "yes"; then
>    DRIVER_MODULE_CFLAGS="-export-dynamic"
> -  DRIVER_MODULE_LIBS="-ldl"
> +  case $ac_cv_search_dlopen in
> +    no*) DRIVER_MODULE_LIBS= ;;
> +    *) DRIVER_MODULE_LIBS=$ac_cv_search_dlopen ;;
> +  esac
>    AC_DEFINE_UNQUOTED([WITH_DRIVER_MODULES], 1, [whether to build drivers as modules])
>  fi
>  AM_CONDITIONAL([WITH_DRIVER_MODULES], [test "$with_driver_modules" != "no"])
> --
> 1.7.0.1.475.gaf89b

> 
> >From ca7a9f299b0bd415f8434b3c9e6c70528d2f85cc Mon Sep 17 00:00:00 2001
> From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= <flameeyes at gmail.com>
> Date: Thu, 4 Mar 2010 16:48:10 +0100
> Subject: [PATCH 2/2] build: vbox: avoid build failure when linking with --no-add-needed
> 
> With the recent changes to the linking defaults in Fedora 13 (namely
> enabling --no-add-needed behaviour by default), we have to pass the
> dlopen()-providing libraries directly at the link of the module; use the
> same AC_SEARCH_LIBS function as used before to look for it and add it to
> the Makefile.
> ---
>  configure.ac    |    6 ++++++
>  src/Makefile.am |    1 +
>  2 files changed, 7 insertions(+), 0 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index d5d62ea..923d7b8 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -303,6 +303,12 @@ fi
>  AM_CONDITIONAL([WITH_OPENVZ], [test "$with_openvz" = "yes"])
> 
>  if test "x$with_vbox" = "xyes"; then
> +    AC_SEARCH_LIBS([dlopen], [dl], [], [AC_MSG_ERROR([Unable to find dlopen()])])
> +    case $ac_cv_search_dlopen in
> +      no*) DLOPEN_LIBS= ;;
> +      *) DLOPEN_LIBS=$ac_cv_search_dlopen ;;
> +    esac
> +    AC_SUBST([DLOPEN_LIBS])
>      AC_DEFINE_UNQUOTED([WITH_VBOX], 1, [whether VirtualBox driver is enabled])
>  fi
>  AM_CONDITIONAL([WITH_VBOX], [test "$with_vbox" = "yes"])
> diff --git a/src/Makefile.am b/src/Makefile.am
> index 2051e5d..67f8b6d 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -463,6 +463,7 @@ libvirt_driver_vbox_la_CFLAGS = \
>  if WITH_DRIVER_MODULES
>  libvirt_driver_vbox_la_LDFLAGS = -module -avoid-version
>  endif
> +libvirt_driver_vbox_la_LIBADD = $(DLOPEN_LIBS)
>  libvirt_driver_vbox_la_SOURCES = $(VBOX_DRIVER_SOURCES)
>  endif
> 
> --

  ACK, can you push those ?

  thanks Jim !

Daniel

-- 
Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/




More information about the libvir-list mailing list