* libxenstat python bindings
@ 2005-10-17 14:10 Travis Vachon
2005-10-17 16:40 ` Anthony Liguori
2005-10-17 21:37 ` Josh Triplett
0 siblings, 2 replies; 3+ messages in thread
From: Travis Vachon @ 2005-10-17 14:10 UTC (permalink / raw)
To: xen-devel
Hi
I seem to be having a little trouble with libxenstat, and was wondering
if the xenstat guys might be able to help.
I've pulled the xen-unstable.hg tree and done a somewhat clean install
(ie, post-make uninstall, as well as deleting the relevant libxenstat
libraries).
Next, I entered the tools/xenstat/libxenstat directory and modified the
Makefile so that the shared libraries would be installed. I've included
my Makefile below.
I ran:
make
make install
make python-bindings
make install-python-bindings
Next, I started a python session and entered:
import xenstat
and got the following output.
> Python 2.3.5 (#2, Sep 4 2005, 22:01:42)
> [GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> import xenstat
> Traceback (most recent call last):
> File "<stdin>", line 1, in ?
> File "/usr/local/lib/python2.3/site-packages/xenstat.py", line 5, in ?
> import _xenstat
> ImportError: /usr/local/lib/python2.3/site-packages/_xenstat.so: undefined symbol: xenstat_init
>
Any thoughts?
Thanks!
Travis
Makefile:
# libxenstat: statistics-collection library for Xen
# Copyright (C) International Business Machines Corp., 2005
# Author: Josh Triplett <josht@us.ibm.com>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
XEN_ROOT=../../..
include $(XEN_ROOT)/tools/Rules.mk
LINUX_ROOT := $(XEN_ROOT)/linux-2.6-xen-sparse
INSTALL = install
INSTALL_PROG = $(INSTALL) -m0755 -D
INSTALL_DATA = $(INSTALL) -m0644 -D
prefix=/usr/local
includedir=$(prefix)/include
libdir=$(prefix)/lib
LDCONFIG=ldconfig
MAKE_LINK=ln -sf
MAJOR=0
MINOR=0
LIB=src/libxenstat.a
SHLIB=src/libxenstat.so.$(MAJOR).$(MINOR)
SHLIB_LINKS=src/libxenstat.so.$(MAJOR) src/libxenstat.so
OBJECTS=src/xenstat.o src/xen-interface.o
SONAME_FLAGS=-Wl,-soname -Wl,libxenstat.so.$(MAJOR)
WARN_FLAGS=-Wall -Werror
CFLAGS+=-Isrc -I$(XEN_LIBXC)
LDFLAGS+=-Lsrc
all: $(LIB) $(SHLIB)
$(LIB): $(OBJECTS)
$(AR) rc $@ $^
$(RANLIB) $@
$(SHLIB): $(OBJECTS)
$(CC) $(LDFLAGS) $(SONAME_FLAGS) -shared -o $@ $(OBJECTS)
src/xenstat.o: src/xenstat.c src/xenstat.h src/xen-interface.h
$(CC) $(CFLAGS) $(WARN_FLAGS) -c -o $@ $<
src/xen-interface.o: src/xen-interface.c src/xen-interface.h
$(CC) $(CFLAGS) $(WARN_FLAGS) -c -o $@ $<
src/libxenstat.so.$(MAJOR): $(LIB)
$(MAKE_LINK) $(<F) $@
src/libxenstat.so: src/libxenstat.so.$(MAJOR)
$(MAKE_LINK) $(<F) $@
install: all
$(INSTALL_DATA) src/xenstat.h $(DESTDIR)$(includedir)/xenstat.h
$(INSTALL_PROG) $(LIB) $(DESTDIR)$(libdir)/libxenstat.a
$(INSTALL_PROG) $(SHLIB) \
$(DESTDIR)$(libdir)/libxenstat.so.$(MAJOR).$(MINOR)
$(MAKE_LINK) libxenstat.so.$(MAJOR).$(MINOR) \
$(DESTDIR)$(libdir)/libxenstat.so.$(MAJOR)
$(MAKE_LINK) libxenstat.so.$(MAJOR) \
$(DESTDIR)$(libdir)/libxenstat.so
-$(LDCONFIG)
PYLIB=bindings/swig/python/_xenstat.so
PYMOD=bindings/swig/python/xenstat.py
PYSRC=bindings/swig/python/_xenstat.c
PERLLIB=bindings/swig/perl/xenstat.so
PERLMOD=bindings/swig/perl/xenstat.pm
PERLSRC=bindings/swig/perl/xenstat.c
BINDINGS=$(PYLIB) $(PYMOD) $(PERLLIB) $(PERLMOD)
BINDINGSRC=$(PYSRC) $(PERLSRC)
# The all-bindings target builds all the language bindings
all-bindings: perl-bindings python-bindings
# The install-bindings target installs all the language bindings
install-bindings: install-perl-bindings install-python-bindings
$(BINDINGS): $(SHLIB) $(SHLIB_LINKS) src/xenstat.h
SWIG_FLAGS=-module xenstat -Isrc
# Python bindings
PYTHON_VERSION=2.3
PYTHON_FLAGS=-I/usr/include/python$(PYTHON_VERSION) -lpython$(PYTHON_VERSION)
$(PYSRC) $(PYMOD): bindings/swig/xenstat.i
swig -python $(SWIG_FLAGS) -outdir $(@D) -o $(PYSRC) $<
$(PYLIB): $(PYSRC)
$(CC) $(CFLAGS) $(LDFLAGS) $(PYTHON_FLAGS) -shared -lxenstat -o $@ $<
python-bindings: $(PYLIB) $(PYMOD)
pythonlibdir=$(prefix)/lib/python$(PYTHON_VERSION)/site-packages
install-python-bindings: $(PYLIB) $(PYMOD)
$(INSTALL_PROG) $(PYLIB) $(DESTDIR)$(pythonlibdir)/_xenstat.so
$(INSTALL_PROG) $(PYMOD) $(DESTDIR)$(pythonlibdir)/xenstat.py
ifeq ($(XENSTAT_PYTHON_BINDINGS),y)
all: python-bindings
install: install-python-bindings
endif
# Perl bindings
PERL_FLAGS=`perl -MConfig -e 'print "$$Config{ccflags} -I$$Config{archlib}/CORE";'`
$(PERLSRC) $(PERLMOD): bindings/swig/xenstat.i
swig -perl $(SWIG_FLAGS) -outdir $(@D) -o $(PERLSRC) $<
$(PERLLIB): $(PERLSRC)
$(CC) $(CFLAGS) $(LDFLAGS) $(PERL_FLAGS) -shared -lxenstat -o $@ $<
perl-bindings: $(PERLLIB) $(PERLMOD)
perllibdir=$(prefix)/lib/perl5
perlmoddir=$(prefix)/share/perl5
install-perl-bindings: $(PERLLIB) $(PERLMOD)
$(INSTALL_PROG) $(PERLLIB) $(DESTDIR)$(perllibdir)/xenstat.so
$(INSTALL_PROG) $(PERLMOD) $(DESTDIR)$(perlmoddir)/xenstat.pm
ifeq ($(XENSTAT_PERL_BINDINGS),y)
all: perl-bindings
install: install-perl-bindings
endif
clean:
rm -f $(LIB) $(SHLIB) $(SHLIB_LINKS) $(OBJECTS) \
$(BINDINGS) $(BINDINGSRC)
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: libxenstat python bindings
2005-10-17 14:10 libxenstat python bindings Travis Vachon
@ 2005-10-17 16:40 ` Anthony Liguori
2005-10-17 21:37 ` Josh Triplett
1 sibling, 0 replies; 3+ messages in thread
From: Anthony Liguori @ 2005-10-17 16:40 UTC (permalink / raw)
To: Travis Vachon; +Cc: xen-devel
Travis Vachon wrote:
>Hi
>
>I seem to be having a little trouble with libxenstat, and was wondering
>if the xenstat guys might be able to help.
>
>I've pulled the xen-unstable.hg tree and done a somewhat clean install
>(ie, post-make uninstall, as well as deleting the relevant libxenstat
>libraries).
>
>
You have to install libxenstat.so to use the python bindings.
libxenstat is not a supported interface for 3.0. It's in the tree for
xentop. It may play a larger role in future versions but for right now
it's function is pretty limited.
You may have better luck using the xc python bindings that are installed
with Xend. You can get the same information as you can get in
libxenstat just through a different interface.
In xen.lowlevel.xc, you want to use domain_get_info() and
domain_get_vcpu_info().
Regards,
Anthony Liguori
>Next, I entered the tools/xenstat/libxenstat directory and modified the
>Makefile so that the shared libraries would be installed. I've included
>my Makefile below.
>
>I ran:
>
>make
>make install
>make python-bindings
>make install-python-bindings
>
>
>Next, I started a python session and entered:
>
>import xenstat
>
>and got the following output.
>
>
>
>>Python 2.3.5 (#2, Sep 4 2005, 22:01:42)
>>[GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2
>>Type "help", "copyright", "credits" or "license" for more information.
>>
>>
>>>>>import xenstat
>>>>>
>>>>>
>>Traceback (most recent call last):
>> File "<stdin>", line 1, in ?
>> File "/usr/local/lib/python2.3/site-packages/xenstat.py", line 5, in ?
>> import _xenstat
>>ImportError: /usr/local/lib/python2.3/site-packages/_xenstat.so: undefined symbol: xenstat_init
>>
>>
>>
>
>Any thoughts?
>
>Thanks!
>
>Travis
>
>
>Makefile:
>
># libxenstat: statistics-collection library for Xen
># Copyright (C) International Business Machines Corp., 2005
># Author: Josh Triplett <josht@us.ibm.com>
>#
># This library is free software; you can redistribute it and/or
># modify it under the terms of the GNU Lesser General Public
># License as published by the Free Software Foundation; either
># version 2.1 of the License, or (at your option) any later version.
>#
># This library is distributed in the hope that it will be useful,
># but WITHOUT ANY WARRANTY; without even the implied warranty of
># MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
># Lesser General Public License for more details.
>
>XEN_ROOT=../../..
>include $(XEN_ROOT)/tools/Rules.mk
>LINUX_ROOT := $(XEN_ROOT)/linux-2.6-xen-sparse
>
>INSTALL = install
>INSTALL_PROG = $(INSTALL) -m0755 -D
>INSTALL_DATA = $(INSTALL) -m0644 -D
>
>prefix=/usr/local
>includedir=$(prefix)/include
>libdir=$(prefix)/lib
>
>LDCONFIG=ldconfig
>MAKE_LINK=ln -sf
>
>MAJOR=0
>MINOR=0
>
>LIB=src/libxenstat.a
>SHLIB=src/libxenstat.so.$(MAJOR).$(MINOR)
>SHLIB_LINKS=src/libxenstat.so.$(MAJOR) src/libxenstat.so
>OBJECTS=src/xenstat.o src/xen-interface.o
>SONAME_FLAGS=-Wl,-soname -Wl,libxenstat.so.$(MAJOR)
>
>WARN_FLAGS=-Wall -Werror
>
>CFLAGS+=-Isrc -I$(XEN_LIBXC)
>LDFLAGS+=-Lsrc
>
>all: $(LIB) $(SHLIB)
>
>
>$(LIB): $(OBJECTS)
> $(AR) rc $@ $^
> $(RANLIB) $@
>
>$(SHLIB): $(OBJECTS)
> $(CC) $(LDFLAGS) $(SONAME_FLAGS) -shared -o $@ $(OBJECTS)
>
>src/xenstat.o: src/xenstat.c src/xenstat.h src/xen-interface.h
> $(CC) $(CFLAGS) $(WARN_FLAGS) -c -o $@ $<
>
>src/xen-interface.o: src/xen-interface.c src/xen-interface.h
> $(CC) $(CFLAGS) $(WARN_FLAGS) -c -o $@ $<
>
>src/libxenstat.so.$(MAJOR): $(LIB)
> $(MAKE_LINK) $(<F) $@
>
>src/libxenstat.so: src/libxenstat.so.$(MAJOR)
> $(MAKE_LINK) $(<F) $@
>
>install: all
> $(INSTALL_DATA) src/xenstat.h $(DESTDIR)$(includedir)/xenstat.h
> $(INSTALL_PROG) $(LIB) $(DESTDIR)$(libdir)/libxenstat.a
> $(INSTALL_PROG) $(SHLIB) \
> $(DESTDIR)$(libdir)/libxenstat.so.$(MAJOR).$(MINOR)
> $(MAKE_LINK) libxenstat.so.$(MAJOR).$(MINOR) \
> $(DESTDIR)$(libdir)/libxenstat.so.$(MAJOR)
> $(MAKE_LINK) libxenstat.so.$(MAJOR) \
> $(DESTDIR)$(libdir)/libxenstat.so
> -$(LDCONFIG)
>
>PYLIB=bindings/swig/python/_xenstat.so
>PYMOD=bindings/swig/python/xenstat.py
>PYSRC=bindings/swig/python/_xenstat.c
>PERLLIB=bindings/swig/perl/xenstat.so
>PERLMOD=bindings/swig/perl/xenstat.pm
>PERLSRC=bindings/swig/perl/xenstat.c
>BINDINGS=$(PYLIB) $(PYMOD) $(PERLLIB) $(PERLMOD)
>BINDINGSRC=$(PYSRC) $(PERLSRC)
>
># The all-bindings target builds all the language bindings
>all-bindings: perl-bindings python-bindings
>
># The install-bindings target installs all the language bindings
>install-bindings: install-perl-bindings install-python-bindings
>
>$(BINDINGS): $(SHLIB) $(SHLIB_LINKS) src/xenstat.h
>
>SWIG_FLAGS=-module xenstat -Isrc
>
># Python bindings
>PYTHON_VERSION=2.3
>PYTHON_FLAGS=-I/usr/include/python$(PYTHON_VERSION) -lpython$(PYTHON_VERSION)
>$(PYSRC) $(PYMOD): bindings/swig/xenstat.i
> swig -python $(SWIG_FLAGS) -outdir $(@D) -o $(PYSRC) $<
>
>$(PYLIB): $(PYSRC)
> $(CC) $(CFLAGS) $(LDFLAGS) $(PYTHON_FLAGS) -shared -lxenstat -o $@ $<
>
>python-bindings: $(PYLIB) $(PYMOD)
>
>pythonlibdir=$(prefix)/lib/python$(PYTHON_VERSION)/site-packages
>install-python-bindings: $(PYLIB) $(PYMOD)
> $(INSTALL_PROG) $(PYLIB) $(DESTDIR)$(pythonlibdir)/_xenstat.so
> $(INSTALL_PROG) $(PYMOD) $(DESTDIR)$(pythonlibdir)/xenstat.py
>
>ifeq ($(XENSTAT_PYTHON_BINDINGS),y)
>all: python-bindings
>install: install-python-bindings
>endif
>
># Perl bindings
>PERL_FLAGS=`perl -MConfig -e 'print "$$Config{ccflags} -I$$Config{archlib}/CORE";'`
>$(PERLSRC) $(PERLMOD): bindings/swig/xenstat.i
> swig -perl $(SWIG_FLAGS) -outdir $(@D) -o $(PERLSRC) $<
>
>$(PERLLIB): $(PERLSRC)
> $(CC) $(CFLAGS) $(LDFLAGS) $(PERL_FLAGS) -shared -lxenstat -o $@ $<
>
>perl-bindings: $(PERLLIB) $(PERLMOD)
>
>perllibdir=$(prefix)/lib/perl5
>perlmoddir=$(prefix)/share/perl5
>install-perl-bindings: $(PERLLIB) $(PERLMOD)
> $(INSTALL_PROG) $(PERLLIB) $(DESTDIR)$(perllibdir)/xenstat.so
> $(INSTALL_PROG) $(PERLMOD) $(DESTDIR)$(perlmoddir)/xenstat.pm
>
>ifeq ($(XENSTAT_PERL_BINDINGS),y)
>all: perl-bindings
>install: install-perl-bindings
>endif
>
>clean:
> rm -f $(LIB) $(SHLIB) $(SHLIB_LINKS) $(OBJECTS) \
> $(BINDINGS) $(BINDINGSRC)
>
>
>
>_______________________________________________
>Xen-devel mailing list
>Xen-devel@lists.xensource.com
>http://lists.xensource.com/xen-devel
>
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: libxenstat python bindings
2005-10-17 14:10 libxenstat python bindings Travis Vachon
2005-10-17 16:40 ` Anthony Liguori
@ 2005-10-17 21:37 ` Josh Triplett
1 sibling, 0 replies; 3+ messages in thread
From: Josh Triplett @ 2005-10-17 21:37 UTC (permalink / raw)
To: Travis Vachon; +Cc: xen-devel
[-- Attachment #1.1: Type: text/plain, Size: 1851 bytes --]
Travis Vachon wrote:
> I seem to be having a little trouble with libxenstat, and was wondering
> if the xenstat guys might be able to help.
>
> I've pulled the xen-unstable.hg tree and done a somewhat clean install
> (ie, post-make uninstall, as well as deleting the relevant libxenstat
> libraries).
>
> Next, I entered the tools/xenstat/libxenstat directory and modified the
> Makefile so that the shared libraries would be installed. I've included
> my Makefile below.
>
> I ran:
>
> make
> make install
> make python-bindings
> make install-python-bindings
>
>
> Next, I started a python session and entered:
>
> import xenstat
>
> and got the following output.
>
>
>>Python 2.3.5 (#2, Sep 4 2005, 22:01:42)
>>[GCC 3.3.5 (Debian 1:3.3.5-13)] on linux2
>>Type "help", "copyright", "credits" or "license" for more information.
>>
>>>>>import xenstat
>>
>>Traceback (most recent call last):
>> File "<stdin>", line 1, in ?
>> File "/usr/local/lib/python2.3/site-packages/xenstat.py", line 5, in ?
>> import _xenstat
>>ImportError: /usr/local/lib/python2.3/site-packages/_xenstat.so: undefined symbol: xenstat_init
>
> Any thoughts?
You have modified the makefile to install into the prefix /usr/local,
but /usr/local/lib is often not included in the default library search
path; this may be the cause of your problem. If so, you can either add
/usr/local/lib to the default search path by editting /etc/ld.so.conf,
or you can install into the prefix /usr which will put the libraries in
/usr/lib.
Also, as Anthony pointed out, keep in mind that xenstat will not be an
officially supported public interface in Xen 3.0. It may become such an
interface in the unstable tree after 3.0 is released. However, don't
let that stop you from making use of it, and feel free to ask if you
need any additional assistance.
- Josh Triplett
[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 251 bytes --]
[-- Attachment #2: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2005-10-17 21:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-10-17 14:10 libxenstat python bindings Travis Vachon
2005-10-17 16:40 ` Anthony Liguori
2005-10-17 21:37 ` Josh Triplett
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.