[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
Re: [Libvir] [PATCH] Avoid link errors with "configure --disable-shared".
- From: "Daniel P. Berrange" <berrange redhat com>
- To: Jim Meyering <jim meyering net>
- Cc: Libvirt <libvir-list redhat com>
- Subject: Re: [Libvir] [PATCH] Avoid link errors with "configure --disable-shared".
- Date: Tue, 29 Jan 2008 16:07:54 +0000
On Tue, Jan 29, 2008 at 05:01:17PM +0100, Jim Meyering wrote:
> "Richard W.M. Jones" <rjones redhat com> wrote:
> > Jim Meyering wrote:
> >> I tried to build static binaries in the usual libtool way,
> >> via "configure --disable-shared" and got some link errors
> >> due to the tests linking only with shared-lib-related files.
> >> Here's the fix:
> >>
> >> Avoid link errors with "configure --disable-shared".
> >> * tests/Makefile.am (LDADDS): Add ../src/libvirt.la, so that
> >> "configure --disable-shared" no longer provokes link errors.
> >>
> >> ---
> >> tests/Makefile.am | 1 +
> >> 1 files changed, 1 insertions(+), 0 deletions(-)
> >>
> >> diff --git a/tests/Makefile.am b/tests/Makefile.am
> >> index dfd9e34..1b5f287 100644
> >> --- a/tests/Makefile.am
> >> +++ b/tests/Makefile.am
> >> @@ -33,6 +33,7 @@ LDADDS = \
> >> $(SASL_LIBS) \
> >> $(WARN_CFLAGS) \
> >> $(LIBVIRT) \
> >> + ../src/libvirt.la \
> >> ../gnulib/lib/libgnu.la \
> >> $(COVERAGE_LDFLAGS)
> >
> > Not sure I understand this one.
> >
> > LIBVIRT is defined as:
> >
> > LIBVIRT = $(wildcard $(top_builddir)/src/.libs/libvirt_la-*.o)
> >
> > Doesn't that work in the static case too?
>
> Unfortunately not, since the wildcard doesn't match anything:
>
> $ ls -1 ../src/.libs/libvirt*
> ../src/.libs/libvirt.a
> ../src/.libs/libvirt.la@
> ../src/.libs/libvirt.lai
Even in the shared case, it doesn't really work too well - if you
make clean you can often end up with this pulling in too many files.
I don't particuarly like this bit of the tests Makefile, but I could
not find any other way to getting the coverage data to work correctly
at the time.
The problem is only wrt to the test case which invokes virsh - all the
others work fine. Its just that virsh gets linked & invoked in a differnet
context to the other scripts. The possible way around it is to not invoke
virsh binary from the test suite - instead just compile virsh.c straight
into the virsh test case & call its main() method. I never got around to
testing this idea. If it works, then we could remove the wildcard and
just link to libvirt.la as normal
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 -=|
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]