[Libvir] [PATCH] Avoid link errors with "configure --disable-shared".

I got link errors when building with --disable-shared, and finally fixed it. Here's most of the solution. The patch after this one adjusts the gcov (test-coverage)-related things so that works with the new setup, too. This also fixes what look like accidental omissions in src/libvirt_sym.version. Avoid link errors with "configure --disable-shared". * src/Makefile.am: Create a convenience library, libvirt_test.la, and don't restrict access to *its* symbols. * tests/Makefile.am (LDADDS): Add ../src/libvirt_test.la, so that "configure --disable-shared" no longer provokes link errors. (LIBVIRT): Remove definition. (LDADDS): Remove use. ($(LIBVIRT)): Remove rule. (LDADDS): Use the new convenience library instead. (CLEANFILES): Define. * docs/examples/index.py (dump_Makefile): Append $(COVERAGE_LDFLAGS), to the LDADDS definition, to avoid link error with the combination of --enable-test-coverage and --disable-shared. * docs/examples/Makefile.am: Regenerate. * docs/examples/index.html: Likewise. * qemud/Makefile.am (libvirtd_LDFLAGS): Append $(COVERAGE_LDFLAGS). Signed-off-by: Jim Meyering <meyering@redhat.com> --- docs/examples/Makefile.am | 2 +- docs/examples/index.html | 2 +- docs/examples/index.py | 3 ++- qemud/Makefile.am | 26 ++++++++++++++++---------- src/Makefile.am | 19 +++++++++++++++++++ src/libvirt_sym.version | 11 +++++++---- tests/Makefile.am | 13 ++----------- 7 files changed, 48 insertions(+), 28 deletions(-) diff --git a/docs/examples/Makefile.am b/docs/examples/Makefile.am index 9da4e21..d8e4868 100644 --- a/docs/examples/Makefile.am +++ b/docs/examples/Makefile.am @@ -3,7 +3,7 @@ SUBDIRS=python INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include DEPS = $(top_builddir)/src/libvirt.la -LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la +LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la $(COVERAGE_LDFLAGS) rebuild: examples.xml index.html diff --git a/docs/examples/index.html b/docs/examples/index.html [...omitting generated diff containing a couple of 4000+-byte lines...] diff --git a/docs/examples/index.py b/docs/examples/index.py index 8f386ed..6be80c5 100755 --- a/docs/examples/index.py +++ b/docs/examples/index.py @@ -225,7 +225,8 @@ def dump_Makefile(): SUBDIRS=python INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include DEPS = $(top_builddir)/src/libvirt.la -LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la +LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la \ + $(COVERAGE_LDFLAGS) rebuild: examples.xml index.html diff --git a/qemud/Makefile.am b/qemud/Makefile.am index 1e1f861..b39bc2f 100644 --- a/qemud/Makefile.am +++ b/qemud/Makefile.am @@ -47,18 +47,22 @@ libvirtd_SOURCES = \ #-D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_POSIX_C_SOURCE=199506L libvirtd_CFLAGS = \ - -I$(top_srcdir)/gnulib/lib -I../gnulib/lib \ - -I$(top_srcdir)/include -I$(top_builddir)/include \ - $(LIBXML_CFLAGS) $(GNUTLS_CFLAGS) $(SASL_CFLAGS) \ - $(POLKIT_CFLAGS) \ - $(WARN_CFLAGS) -DLOCAL_STATE_DIR="\"$(localstatedir)\"" \ - -DSYSCONF_DIR="\"$(sysconfdir)\"" \ + -I$(top_srcdir)/gnulib/lib -I../gnulib/lib \ + -I$(top_srcdir)/include -I$(top_builddir)/include \ + $(LIBXML_CFLAGS) $(GNUTLS_CFLAGS) $(SASL_CFLAGS) \ + $(POLKIT_CFLAGS) \ + $(WARN_CFLAGS) -DLOCAL_STATE_DIR="\"$(localstatedir)\"" \ + $(COVERAGE_CFLAGS) \ + -DSYSCONF_DIR="\"$(sysconfdir)\"" \ -DQEMUD_PID_FILE="\"$(QEMUD_PID_FILE)\"" \ -DREMOTE_PID_FILE="\"$(REMOTE_PID_FILE)\"" \ - -DGETTEXT_PACKAGE=\"$(PACKAGE)\" + -DGETTEXT_PACKAGE=\"$(PACKAGE)\" + +libvirtd_LDFLAGS = \ + $(WARN_CFLAGS) $(LIBXML_LIBS) $(GNUTLS_LIBS) $(SASL_LIBS) \ + $(COVERAGE_LDFLAGS) + $(POLKIT_LIBS) -libvirtd_LDFLAGS = $(WARN_CFLAGS) $(LIBXML_LIBS) $(GNUTLS_LIBS) $(SASL_LIBS) \ - $(POLKIT_LIBS) libvirtd_DEPENDENCIES = ../src/libvirt.la libvirtd_LDADD = ../src/libvirt.la ../gnulib/lib/libgnu.la @@ -144,7 +148,6 @@ libvirtd.init: libvirtd.init.in chmod a+x $@-t mv $@-t $@ -CLEANFILES = libvirtd.init else install-init: @@ -153,3 +156,6 @@ uninstall-init: endif # DBUS_INIT_SCRIPTS_RED_HAT endif # WITH_LIBVIRTD + +CLEANFILES = libvirtd.init +CLEANFILES += *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda diff --git a/src/Makefile.am b/src/Makefile.am index 02be9db..c15de77 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -99,6 +99,25 @@ libvirt_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libvirt_sym.version \ @CYGWIN_EXTRA_LDFLAGS@ @MINGW_EXTRA_LDFLAGS@ libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT +# Create an automake "convenience library" version of libvirt_la, +# just for testing, since the test harness requires access to internal +# bits and pieces that we don't want to make publicly accessible. +noinst_LTLIBRARIES = libvirt_test.la + +# Convert libvirt_sym.version +# to libvirt_test_sym.version, and +# remove -version-info X.Y.Z (not needed since this is a convenience library. +test_LDFLAGS = \ + $$(echo '$(libvirt_la_LDFLAGS)' \ + |sed 's!-Wl,--v.*_sym\.version!!' \ + |sed 's!-version-info @LIBVIRT_VERSION_INFO@!!') + +# Just like the above, but with a slightly different set of public symbols. +libvirt_test_la_SOURCES = $(libvirt_la_SOURCES) +libvirt_test_la_LIBADD = $(libvirt_la_LIBADD) +libvirt_test_la_LDFLAGS = $(test_LDFLAGS) +libvirt_test_la_CFLAGS = $(COVERAGE_CFLAGS) + bin_PROGRAMS = virsh virsh_SOURCES = virsh.c console.c console.h util-lib.c diff --git a/src/libvirt_sym.version b/src/libvirt_sym.version index 38b631e..581f380 100644 --- a/src/libvirt_sym.version +++ b/src/libvirt_sym.version @@ -32,6 +32,7 @@ virDomainLookupByName; virDomainLookupByUUID; virDomainLookupByUUIDString; + virDomainParseXMLDesc; virDomainRestore; virDomainResume; virDomainSave; @@ -166,10 +167,10 @@ __virEventRegisterImpl; - __virStateInitialize; - __virStateCleanup; - __virStateReload; - __virStateActive; + __virStateInitialize; + __virStateCleanup; + __virStateReload; + __virStateActive; __virDrvSupportsFeature; @@ -184,6 +185,8 @@ __virBufferVSprintf; __virBufferAdd; __virBufferAddChar; + __virErrorMsg; + __virRaiseError; local: *; }; diff --git a/tests/Makefile.am b/tests/Makefile.am index fb9bcff..644715e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -3,14 +3,6 @@ SUBDIRS = virshdata confdata sexpr2xmldata \ xml2sexprdata xmconfigdata xencapsdata -# Wierd libtool related juju... -# -# We explicitly want wildcard here instead of just linking -# to the libvirt.a file. This ensures that when coverage -# tests are run, all the output data ends up in the correct -# location. ie, src/ instead of src/.libs. -LIBVIRT = $(wildcard $(top_builddir)/src/.libs/libvirt_la-*.o) - INCLUDES = \ -I$(top_srcdir)/gnulib/lib -I../gnulib/lib \ -I$(top_builddir)/include \ @@ -34,7 +26,7 @@ LDADDS = \ $(SASL_LIBS) \ $(SELINUX_LIBS) \ $(WARN_CFLAGS) \ - $(LIBVIRT) \ + ../src/libvirt_test.la \ ../gnulib/lib/libgnu.la \ $(COVERAGE_LDFLAGS) @@ -132,5 +124,4 @@ reconnect_SOURCES = \ reconnect.c reconnect_LDADD = $(LDADDS) -$(LIBVIRT): - -@(cd $(top_builddir)/src && $(MAKE) MAKEFLAGS+=--silent) +CLEANFILES = *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda -- 1.5.4.3.231.gc0a6

On Wed, Feb 27, 2008 at 04:52:21PM +0100, Jim Meyering wrote:
I got link errors when building with --disable-shared, and finally fixed it. Here's most of the solution. The patch after this one adjusts the gcov (test-coverage)-related things so that works with the new setup, too. diff --git a/src/libvirt_sym.version b/src/libvirt_sym.version index 38b631e..581f380 100644 --- a/src/libvirt_sym.version +++ b/src/libvirt_sym.version @@ -32,6 +32,7 @@ virDomainLookupByName; virDomainLookupByUUID; virDomainLookupByUUIDString; + virDomainParseXMLDesc;
This is not part of the public API.
@@ -184,6 +185,8 @@ __virBufferVSprintf; __virBufferAdd; __virBufferAddChar; + __virErrorMsg; + __virRaiseError;
What uses these two symbols ? AFAIK they shoudl only ever be called by internal drivers and not exported Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|

"Daniel P. Berrange" <berrange@redhat.com> wrote:
On Wed, Feb 27, 2008 at 04:52:21PM +0100, Jim Meyering wrote:
I got link errors when building with --disable-shared, and finally fixed it. Here's most of the solution. The patch after this one adjusts the gcov (test-coverage)-related things so that works with the new setup, too. diff --git a/src/libvirt_sym.version b/src/libvirt_sym.version index 38b631e..581f380 100644 --- a/src/libvirt_sym.version +++ b/src/libvirt_sym.version @@ -32,6 +32,7 @@ virDomainLookupByName; virDomainLookupByUUID; virDomainLookupByUUIDString; + virDomainParseXMLDesc;
This is not part of the public API.
Good catch. I needed that with an earlier incarnation of this work, but no longer.
@@ -184,6 +185,8 @@ __virBufferVSprintf; __virBufferAdd; __virBufferAddChar; + __virErrorMsg; + __virRaiseError;
What uses these two symbols ? AFAIK they shoudl only ever be called by internal drivers and not exported
Same here. With those adjustments, the only changes to libvirt_sym.version are to remove some SPACE-before-TAB.

Jim Meyering <jim@meyering.net> wrote:
"Daniel P. Berrange" <berrange@redhat.com> wrote:
On Wed, Feb 27, 2008 at 04:52:21PM +0100, Jim Meyering wrote:
I got link errors when building with --disable-shared, and finally fixed it. Here's most of the solution. The patch after this one adjusts the gcov (test-coverage)-related things so that works with the new setup, too. diff --git a/src/libvirt_sym.version b/src/libvirt_sym.version index 38b631e..581f380 100644 --- a/src/libvirt_sym.version +++ b/src/libvirt_sym.version @@ -32,6 +32,7 @@ virDomainLookupByName; virDomainLookupByUUID; virDomainLookupByUUIDString; + virDomainParseXMLDesc;
This is not part of the public API.
Good catch. I needed that with an earlier incarnation of this work, but no longer.
@@ -184,6 +185,8 @@ __virBufferVSprintf; __virBufferAdd; __virBufferAddChar; + __virErrorMsg; + __virRaiseError;
What uses these two symbols ? AFAIK they shoudl only ever be called by internal drivers and not exported
Same here.
With those adjustments, the only changes to libvirt_sym.version are to remove some SPACE-before-TAB.
Here's the adjusted patch. If no one objects, I'll commit these two later today. Subject: [PATCH] Avoid link errors with "configure --disable-shared". * src/Makefile.am: Create a convenience library, libvirt_test.la, and don't restrict access to *its* symbols. * tests/Makefile.am (LDADDS): Add ../src/libvirt_test.la, so that "configure --disable-shared" no longer provokes link errors. (LIBVIRT): Remove definition. (LDADDS): Remove use. ($(LIBVIRT)): Remove rule. (LDADDS): Use the new convenience library instead. (CLEANFILES): Define. * docs/examples/index.py (dump_Makefile): Append $(COVERAGE_LDFLAGS), to the LDADDS definition, to avoid link error with the combination of --enable-test-coverage and --disable-shared. * docs/examples/Makefile.am: Regenerate. * docs/examples/index.html: Likewise. * qemud/Makefile.am (libvirtd_LDFLAGS): Append $(COVERAGE_LDFLAGS). * src/libvirt_sym.version: Remove some SP-before-TAB. Signed-off-by: Jim Meyering <meyering@redhat.com> --- docs/examples/Makefile.am | 2 +- docs/examples/index.html | 2 +- docs/examples/index.py | 3 ++- qemud/Makefile.am | 26 ++++++++++++++++---------- src/Makefile.am | 19 +++++++++++++++++++ src/libvirt_sym.version | 8 ++++---- tests/Makefile.am | 13 ++----------- 7 files changed, 45 insertions(+), 28 deletions(-) diff --git a/docs/examples/Makefile.am b/docs/examples/Makefile.am index 9da4e21..d8e4868 100644 --- a/docs/examples/Makefile.am +++ b/docs/examples/Makefile.am @@ -3,7 +3,7 @@ SUBDIRS=python INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include DEPS = $(top_builddir)/src/libvirt.la -LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la +LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la $(COVERAGE_LDFLAGS) rebuild: examples.xml index.html diff --git a/docs/examples/index.py b/docs/examples/index.py index 8f386ed..6be80c5 100755 --- a/docs/examples/index.py +++ b/docs/examples/index.py @@ -225,7 +225,8 @@ def dump_Makefile(): SUBDIRS=python INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I@srcdir@/include DEPS = $(top_builddir)/src/libvirt.la -LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la +LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la \ + $(COVERAGE_LDFLAGS) rebuild: examples.xml index.html diff --git a/qemud/Makefile.am b/qemud/Makefile.am index 3094b18..8cbcebe 100644 --- a/qemud/Makefile.am +++ b/qemud/Makefile.am @@ -48,18 +48,22 @@ libvirtd_SOURCES = \ #-D_XOPEN_SOURCE=600 -D_XOPEN_SOURCE_EXTENDED=1 -D_POSIX_C_SOURCE=199506L libvirtd_CFLAGS = \ - -I$(top_srcdir)/gnulib/lib -I../gnulib/lib \ - -I$(top_srcdir)/include -I$(top_builddir)/include \ - $(LIBXML_CFLAGS) $(GNUTLS_CFLAGS) $(SASL_CFLAGS) \ - $(POLKIT_CFLAGS) \ - $(WARN_CFLAGS) -DLOCAL_STATE_DIR="\"$(localstatedir)\"" \ - -DSYSCONF_DIR="\"$(sysconfdir)\"" \ + -I$(top_srcdir)/gnulib/lib -I../gnulib/lib \ + -I$(top_srcdir)/include -I$(top_builddir)/include \ + $(LIBXML_CFLAGS) $(GNUTLS_CFLAGS) $(SASL_CFLAGS) \ + $(POLKIT_CFLAGS) \ + $(WARN_CFLAGS) -DLOCAL_STATE_DIR="\"$(localstatedir)\"" \ + $(COVERAGE_CFLAGS) \ + -DSYSCONF_DIR="\"$(sysconfdir)\"" \ -DQEMUD_PID_FILE="\"$(QEMUD_PID_FILE)\"" \ -DREMOTE_PID_FILE="\"$(REMOTE_PID_FILE)\"" \ - -DGETTEXT_PACKAGE=\"$(PACKAGE)\" + -DGETTEXT_PACKAGE=\"$(PACKAGE)\" + +libvirtd_LDFLAGS = \ + $(WARN_CFLAGS) $(LIBXML_LIBS) $(GNUTLS_LIBS) $(SASL_LIBS) \ + $(COVERAGE_LDFLAGS) + $(POLKIT_LIBS) -libvirtd_LDFLAGS = $(WARN_CFLAGS) $(LIBXML_LIBS) $(GNUTLS_LIBS) $(SASL_LIBS) \ - $(POLKIT_LIBS) libvirtd_DEPENDENCIES = ../src/libvirt.la libvirtd_LDADD = ../src/libvirt.la ../gnulib/lib/libgnu.la @@ -145,7 +149,6 @@ libvirtd.init: libvirtd.init.in chmod a+x $@-t mv $@-t $@ -CLEANFILES = libvirtd.init else install-init: @@ -154,3 +157,6 @@ uninstall-init: endif # DBUS_INIT_SCRIPTS_RED_HAT endif # WITH_LIBVIRTD + +CLEANFILES = libvirtd.init +CLEANFILES += *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda diff --git a/src/Makefile.am b/src/Makefile.am index 9c4810a..8821faa 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -99,6 +99,25 @@ libvirt_la_LDFLAGS = -Wl,--version-script=$(srcdir)/libvirt_sym.version \ @CYGWIN_EXTRA_LDFLAGS@ @MINGW_EXTRA_LDFLAGS@ libvirt_la_CFLAGS = $(COVERAGE_CFLAGS) -DIN_LIBVIRT +# Create an automake "convenience library" version of libvirt_la, +# just for testing, since the test harness requires access to internal +# bits and pieces that we don't want to make publicly accessible. +noinst_LTLIBRARIES = libvirt_test.la + +# Convert libvirt_sym.version +# to libvirt_test_sym.version, and +# remove -version-info X.Y.Z (not needed since this is a convenience library. +test_LDFLAGS = \ + $$(echo '$(libvirt_la_LDFLAGS)' \ + |sed 's!-Wl,--v.*_sym\.version!!' \ + |sed 's!-version-info @LIBVIRT_VERSION_INFO@!!') + +# Just like the above, but with a slightly different set of public symbols. +libvirt_test_la_SOURCES = $(libvirt_la_SOURCES) +libvirt_test_la_LIBADD = $(libvirt_la_LIBADD) +libvirt_test_la_LDFLAGS = $(test_LDFLAGS) +libvirt_test_la_CFLAGS = $(COVERAGE_CFLAGS) + bin_PROGRAMS = virsh virsh_SOURCES = virsh.c console.c console.h util-lib.c util-lib.h diff --git a/src/libvirt_sym.version b/src/libvirt_sym.version index 15c05dc..694e041 100644 --- a/src/libvirt_sym.version +++ b/src/libvirt_sym.version @@ -166,10 +166,10 @@ __virEventRegisterImpl; - __virStateInitialize; - __virStateCleanup; - __virStateReload; - __virStateActive; + __virStateInitialize; + __virStateCleanup; + __virStateReload; + __virStateActive; __virDrvSupportsFeature; diff --git a/tests/Makefile.am b/tests/Makefile.am index fb9bcff..644715e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -3,14 +3,6 @@ SUBDIRS = virshdata confdata sexpr2xmldata \ xml2sexprdata xmconfigdata xencapsdata -# Wierd libtool related juju... -# -# We explicitly want wildcard here instead of just linking -# to the libvirt.a file. This ensures that when coverage -# tests are run, all the output data ends up in the correct -# location. ie, src/ instead of src/.libs. -LIBVIRT = $(wildcard $(top_builddir)/src/.libs/libvirt_la-*.o) - INCLUDES = \ -I$(top_srcdir)/gnulib/lib -I../gnulib/lib \ -I$(top_builddir)/include \ @@ -34,7 +26,7 @@ LDADDS = \ $(SASL_LIBS) \ $(SELINUX_LIBS) \ $(WARN_CFLAGS) \ - $(LIBVIRT) \ + ../src/libvirt_test.la \ ../gnulib/lib/libgnu.la \ $(COVERAGE_LDFLAGS) @@ -132,5 +124,4 @@ reconnect_SOURCES = \ reconnect.c reconnect_LDADD = $(LDADDS) -$(LIBVIRT): - -@(cd $(top_builddir)/src && $(MAKE) MAKEFLAGS+=--silent) +CLEANFILES = *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda -- 1.5.4.3.326.g7655e3 Rewrite test-coverage rules to accommodate multiple .o files per .c. * src/Makefile.am (cov): Rewrite rule to merge gcov results corresponding to two .o files: the libvirt_la- one, and the libvirt_test_la- one. (tst): Remove unused rule. * configure.in (LV_LIBTOOL_OBJDIR): Define and AC_SUBST. Signed-off-by: Jim Meyering <meyering@redhat.com> --- configure.in | 7 +++++++ src/Makefile.am | 24 ++++++++++++------------ 2 files changed, 19 insertions(+), 12 deletions(-) diff --git a/configure.in b/configure.in index c2030c7..6367990 100644 --- a/configure.in +++ b/configure.in @@ -913,6 +913,13 @@ AC_SUBST(MINGW_EXTRA_LDFLAGS) AC_SYS_LARGEFILE +# Set LV_LIBTOOL_OBJDIR to "." or $lt_cv_objdir, depending on whether +# we're building shared libraries. This is the name of the directory +# in which .o files will be created. +test "$enable_shared" = no && lt_cv_objdir=. +LV_LIBTOOL_OBJDIR=${lt_cv_objdir-.} +AC_SUBST(LV_LIBTOOL_OBJDIR) + # very annoying rm -f COPYING cp COPYING.LIB COPYING diff --git a/src/Makefile.am b/src/Makefile.am index 8821faa..d7e4a91 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -137,20 +137,20 @@ else EXTRA_DIST += parthelper.c endif -# -# target to ease building test programs -# -tst: tst.c - $(CC) $(CFLAGS) $(INCLUDES) -I../include -o tst tst.c .libs/libvirt.a $(LIBXML_LIBS) $(VIRSH_LIBS) $(GNUTLS_LIBS) $(LIBS) - -COVERAGE_FILES = $(CLIENT_SOURCES:%.c=libvirt_la-%.cov) - -cov: clean-cov $(COVERAGE_FILES) +cov: clean-cov + for i in $(CLIENT_SOURCES); do \ + case $$i in *.c) ;; *) continue;; esac; \ + b=$$(basename $$i .c); \ + o_files=; \ + for i in '' _test; do \ + o="$(LV_LIBTOOL_OBJDIR)/libvirt$${i}_la-$$b.o"; \ + test -f "$$o" \ + && o_files="$$o_files $$o"; \ + done; \ + gcov -b -f $$o_files > $$b.cov; \ + done clean-cov: rm -f *.cov *.gcov -%.cov: .libs/%.o - gcov -b -f -o .libs $< > $@ - CLEANFILES = *.cov *.gcov .libs/*.gcda .libs/*.gcno *.gcno *.gcda -- 1.5.4.3.326.g7655e3

On Thu, Feb 28, 2008 at 01:04:22PM +0100, Jim Meyering wrote:
Jim Meyering <jim@meyering.net> wrote:
"Daniel P. Berrange" <berrange@redhat.com> wrote:
On Wed, Feb 27, 2008 at 04:52:21PM +0100, Jim Meyering wrote:
I got link errors when building with --disable-shared, and finally fixed it. Here's most of the solution. The patch after this one adjusts the gcov (test-coverage)-related things so that works with the new setup, too. diff --git a/src/libvirt_sym.version b/src/libvirt_sym.version index 38b631e..581f380 100644 --- a/src/libvirt_sym.version +++ b/src/libvirt_sym.version @@ -32,6 +32,7 @@ virDomainLookupByName; virDomainLookupByUUID; virDomainLookupByUUIDString; + virDomainParseXMLDesc;
This is not part of the public API.
Good catch. I needed that with an earlier incarnation of this work, but no longer.
@@ -184,6 +185,8 @@ __virBufferVSprintf; __virBufferAdd; __virBufferAddChar; + __virErrorMsg; + __virRaiseError;
What uses these two symbols ? AFAIK they shoudl only ever be called by internal drivers and not exported
Same here.
With those adjustments, the only changes to libvirt_sym.version are to remove some SPACE-before-TAB.
Here's the adjusted patch. If no one objects, I'll commit these two later today.
Looks fine to me, I'm just wondering if there haven't been some weirdness in the mail processing as I saw Signed-off-by: twice Daniel -- Red Hat Virtualization group http://redhat.com/virtualization/ Daniel Veillard | virtualization library http://libvirt.org/ veillard@redhat.com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
participants (3)
-
Daniel P. Berrange
-
Daniel Veillard
-
Jim Meyering