[Spice-devel] [PATCH spice 02/18] build-sys: build a utility libserver.la

Frediano Ziglio fziglio at redhat.com
Wed Dec 16 00:53:10 PST 2015


> 
> > 
> > This allow tests programs to link with statically built library to access
> > all
> > symbols
> > 
> 
> Why is this necessary? libtool can run programs pointing to shared libraries.
> 
> Frediano
> 
> > Signed-off-by: Marc-André Lureau <marcandre.lureau at gmail.com>
> > ---
> >  server/Makefile.am | 10 +++++++---
> >  1 file changed, 7 insertions(+), 3 deletions(-)
> > 
> > diff --git a/server/Makefile.am b/server/Makefile.am
> > index 32ab8eb..b20beec 100644
> > --- a/server/Makefile.am
> > +++ b/server/Makefile.am
> > @@ -17,6 +17,7 @@ AM_CPPFLAGS =					\
> >  	$(WARN_CFLAGS)				\
> >  	$(NULL)
> >  
> > +noinst_LTLIBRARIES = libserver.la
> >  lib_LTLIBRARIES = libspice-server.la
> >  
> >  libspice_server_la_LDFLAGS =			\
> > @@ -31,7 +32,7 @@ libspice_server_la_LDFLAGS += \
> >  	-Wl,--version-script=$(top_srcdir)/server/spice-server.syms
> >  endif
> >  
> > -libspice_server_la_LIBADD =						\
> > +libserver_la_LIBADD =							\
> >  	$(top_builddir)/spice-common/common/libspice-common.la		\
> >  	$(top_builddir)/spice-common/common/libspice-common-server.la	\
> >  	$(GL_LIBS)							\
> > @@ -61,7 +62,7 @@ libspice_serverinclude_HEADERS =		\
> >  	spice.h					\
> >  	$(NULL)
> >  
> > -libspice_server_la_SOURCES =			\
> > +libserver_la_SOURCES =				\
> >  	$(libspice_serverinclude_HEADERS)	\
> >  	agent-msg-filter.c			\
> >  	agent-msg-filter.h			\
> > @@ -144,12 +145,15 @@ libspice_server_la_SOURCES =			\
> >  	$(NULL)
> >  
> >  if HAVE_SMARTCARD
> > -libspice_server_la_SOURCES +=	\
> > +libserver_la_SOURCES +=	\
> >  	smartcard.c		\
> >  	smartcard.h		\
> >  	$(NULL)
> >  endif
> >  
> > +libspice_server_la_LIBADD = libserver.la
> > +libspice_server_la_SOURCES =
> > +
> >  EXTRA_DIST =					\
> >  	spice-bitmap-utils.tmpl.c			\
> >  	cache-item.tmpl.c			\

Looking at following patches I understood the reason for this patch!
Not all symbols are exported from shared library but you want to
access to some not exported.
Note however that convenience libraries are meant to be linked to
create shared libraries, not to link to programs (test ones in this
case), you are probably doing something not portable.

Frediano


More information about the Spice-devel mailing list