[Libvir] gnulib: take2, trunk-relative patch

Jim Meyering jim at meyering.net
Wed Dec 5 19:37:21 UTC 2007


"Richard W.M. Jones" <rjones at redhat.com> wrote:
> Jim Meyering wrote:
>> "Richard W.M. Jones" <rjones at redhat.com> wrote:
>>> Jim, I also needed the attached patch, and then I had to do this:
>>>
>>>   cd docs/examples && ./index.py
>> ...
>>> -LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la
>>> +LDADDS = @STATIC_BINARIES@ $(WARN_CFLAGS) $(top_builddir)/src/libvirt.la \\
>>> +	$(top_builddir)/gnulib/lib/libgnu.la
>>
>> Hi Rich,
>>
>> I don't seem to need it.  I.e., ./index.py works fine without it:
>>
>>     $ ./index.py
>>     loading ../libvirt-api.xml
>>     Parsing info1.c
>>     Parsing suspend.c
>>
>> If you could give me details of why you needed it,
>> I'd feel better about applying it.
>
> Hi Jim,
>
> It's not index.py that fails, but the Makefile.am (which in that
> directory is generated).  More specifically, a program called 'info1'
> fails to link:
>
> gcc -g -O2 -o .libs/info1 info1.o -Wall -Wformat -Wformat-security
> -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wextra -Wshadow
> -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes
> -Winline -Wredundant-decls -Wno-sign-compare -Wp,-D_FORTIFY_SOURCE=2
> -fexceptions -fasynchronous-unwind-tables -Werror
> ../../src/.libs/libvirt.so -lxml2 -lgnutls -lxenstore
> ../../src/.libs/libvirt.so: undefined reference to `physmem_total'
...
> make[1]: Leaving directory `/home/rjones/d/libvirt-mingw'
> make: *** [all] Error 2

That suggests something is wrong with your libvirt library.
It should include physmem_total.  That's why it works for me:

    $ rm info1.o && make info1
    gcc -DHAVE_CONFIG_H -I. -I../.. -I../../include -I../../include \
    -I./include -g -O2 -MT info1.o -MD -MP -MF .deps/info1.Tpo -c -o \
    info1.o info1.c
    mv -f .deps/info1.Tpo .deps/info1.Po
    /bin/sh ../../libtool --tag=CC --mode=link gcc -g -O2 -o info1 \
    info1.o -Wall -Wformat -Wformat-security -Wmissing-prototypes \
    -Wnested-externs -Wpointer-arith -Wextra -Wshadow -Wcast-align \
    -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Winline \
    -Wredundant-decls -Wno-sign-compare -Wp,-D_FORTIFY_SOURCE=2 \
    -fexceptions -fasynchronous-unwind-tables ../../src/libvirt.la \
    -lxenstore
    libtool: link: gcc -g -O2 -o .libs/info1 info1.o -Wall -Wformat \
    -Wformat-security -Wmissing-prototypes -Wnested-externs \
    -Wpointer-arith -Wextra -Wshadow -Wcast-align -Wwrite-strings \
    -Waggregate-return -Wstrict-prototypes -Winline -Wredundant-decls \
    -Wno-sign-compare -Wp,-D_FORTIFY_SOURCE=2 -fexceptions \
    -fasynchronous-unwind-tables  ../../src/.libs/libvirt.so -lxml2 \
    -lgnutls -lxenstore -Wl,-rpath -Wl,/usr/local/lib
    libtool: link: creating info1
    $

Please check your library.
Here's what I get:

    $ nm -e ../../src/.libs/libvirt.a|grep physmem
                     U physmem_total
    physmem.o:
    0000000000000060 T physmem_available
    0000000000000000 T physmem_total
    $

And you?

It looks like you're seeing this failure on mingw,
so I think the problem may be a little deeper.




More information about the libvir-list mailing list