[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