From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: [PATCH] build/xenstore: Correct static link failure for xenstore Date: Mon, 15 Oct 2012 16:42:54 +0100 Message-ID: <507C2EFE.8060806@citrix.com> References: <952b1ef292469c9a9af5.1350314699@andrewcoop.uk.xensource.com> <1350315108.18058.73.camel@zakaz.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1350315108.18058.73.camel@zakaz.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Campbell Cc: Ian Jackson , "xen-devel@lists.xen.org" List-Id: xen-devel@lists.xenproject.org On 15/10/12 16:31, Ian Campbell wrote: > On Mon, 2012-10-15 at 16:24 +0100, Andrew Cooper wrote: >> There is support for building xenstore clients statically. However, >> recent changes to the makefiles have rendered the static build broken. >> >> tools/xenstore/Makefile sets LIBXENSTORE depending on whether >> XENSTORE_STATIC_CLIENTS is specified, but will unconditionally try to >> link against libxenstore.so by use of the LDLIBS_libxenstore variable. >> >> This patch doubles the logic already present to select the appropriate >> library target. >> >> Signed-off-by: Andrew Cooper >> >> -- >> This is a bit of a hack, but seems to be the only reliable way, >> espcially when linking with the LDLIBS_libxenstore variable in >> toos/misc. > I think it would be cleaner to define LDLIBS_libxenstore_static in > Rules.mk alongside the existing thing and make the appropriate selection > in the xenstore Makefile. That keeps the fugliness next to where it is > used. But that then requires patching for *every* consumer of LDLIBS_libxenstore, which is a substantially larger and more invasive. ~Andrew > >> diff -r 099589002239 -r 952b1ef29246 tools/Rules.mk >> --- a/tools/Rules.mk >> +++ b/tools/Rules.mk >> @@ -28,7 +28,11 @@ LDLIBS_libxenguest = $(XEN_LIBXC)/libxen >> SHLIB_libxenguest = -Wl,-rpath-link=L$(XEN_LIBXC) >> >> CFLAGS_libxenstore = -I$(XEN_XENSTORE) $(CFLAGS_xeninclude) >> +ifneq ($(XENSTORE_STATIC_CLIENTS),y) >> LDLIBS_libxenstore = $(XEN_XENSTORE)/libxenstore.so >> +else >> +LDLIBS_libxenstore = $(XEN_XENSTORE)/libxenstore.a >> +endif >> SHLIB_libxenstore = -Wl,-rpath-link=$(XEN_XENSTORE) >> >> CFLAGS_libxenstat = -I$(XEN_LIBXENSTAT) > -- Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer T: +44 (0)1223 225 900, http://www.citrix.com