Thanks for your answer! I realized actually I don't need to compile QEMU driver because the libvirt client is using Remote driver to talk with libvirtd and then libvirtd will call QUME driver in KVM hypervisor. So I removed the "--with-qume" and trying compiling again only with "--with-esx". This time the error happens on la symbols as followings: -------------------------------------------------------------------------------------------------------------------------------------------- ../src/conf/nwfilter_conf.h:600: warning: parameter has incomplete type CCLD libvirt_driver_security.la CCLD libvirt.la ld: fatal: libvirt.syms: 1616: symbol `virEventAddHandle' is already defined in file: libvirt.syms collect2: ld returned 1 exit status *** Error code 1 The following command caused the error: echo " CCLD " libvirt.la;/bin/bash ../libtool --silent --tag=CC --mode=link gcc -std=gnu99 -DIN_LIBVIRT -I/export/home/yangzhou/hypervisor/libxml2/include/libxml2 -Wall -W -Wformat-y2k -Wformat-security -Winit-self -Wunused -Wunknown-pragmas -Wstrict-aliasing -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -Wnested-externs -Winline -Winvalid-pch -Wdisabled-optimization -Wpacked-bitfield-compat -Wmultichar -Wdeprecated-declarations -Wdiv-by-zero -Wendif-labels -Wextra -Wformat-contains-nul -Wformat-extra-args -Wformat-zero-length -Wformat=2 -Wmultichar -Wno-sign-compare -Wno-format-nonliteral -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fasynchronous-unwind-tables -funit-at-a-time -g -O2 -Wl,-M -Wl,libvirt.syms -version-info 9:9:9 -Wl,-z -Wl,nodelete -o libvirt.la -rpath /export/home/yangzhou/hypervisor/libvirt/lib libvirt_util.la libvirt_conf.la libvirt_cpu.la libvirt_vmx.la libvirt_driver.la libvirt_driver_test.la libvirt_driver_remote.la libvirt_driver_vmware.la libvirt_driver_vbox.la libvirt_driver_esx.la libvirt_driver_security.la ../gnulib/lib/libgnu.la -L/export/home/yangzhou/hypervisor/libxml2/lib -lxml2 -lpthread -lz -liconv -lm -lsocket -lnsl -lnsl -lintl make: Fatal error: Command failed for target `libvirt.la' Current working directory /export/home/tools/libvirt/src *** Error code 1 make: Fatal error: Command failed for target `all' Current working directory /export/home/tools/libvirt/src *** Error code 1 The following command caused the error: fail= failcom='exit 1'; \ for f in x $MAKEFLAGS; do \ case $f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo all-recursive | sed s/-recursive//`; \ list='gnulib/lib include src daemon tools docs gnulib/tests python tests po examples/domain-events/events-c examples/hellolibvirt examples/dominfo examples/domsuspend examples/python examples/apparmor examples/xml/nwfilter examples/openauth examples/systemtap'; for subdir in $list; do \ echo "Making $target in $subdir"; \ if test "$subdir" = "."; then \ dot_seen=yes; \ local_target="$target-am"; \ else \ local_target="$target"; \ fi; \ (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make $local_target) \ || eval $failcom; \ done; \ if test "$dot_seen" = "no"; then \ make "$target-am" || exit 1; \ fi; test -z "$fail" make: Fatal error: Command failed for target `all-recursive' Current working directory /export/home/tools/libvirt *** Error code 1 make: Fatal error: Command failed for target `all' bash-3.00# ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- It looks like the symbols are duplicated in ./src/libvirt.la. So I tried to remove duplicated symbols manually and tried the make again. Then new errors happened as followings. ---------------------------------------------------------------------------- bash-3.00# make make all-recursive Making all in gnulib/lib make all-recursive Making all in include Making all in libvirt Making all in src GEN libvirt.def make all-am CCLD libvirt.la Undefined first referenced symbol in file networkNotifyActualDevice libvirt.syms networkAllocateActualDevice libvirt.syms networkGetNetworkAddress libvirt.syms networkBuildDhcpDaemonCommandLine libvirt.syms networkReleaseActualDevice libvirt.syms ld: warning: Symbol referencing errors CC libvirt_qemu_la-libvirt-qemu.lo CCLD libvirt-qemu.la Undefined first referenced symbol in file _fini /usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/crti.o (symbol has no version assigned) _init /usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/crti.o (symbol has no version assigned) __dso_handle /usr/sfw/lib/gcc/sparc-sun-solaris2.10/3.4.3/crtbegin.o (symbol has no version assigned) _lib_version /usr/ccs/lib/values-Xa.o (symbol has no version assigned) ld: fatal: Symbol referencing errors. No output written to .libs/libvirt-qemu.so.0.9.9 collect2: ld returned 1 exit status *** Error code 1 The following command caused the error: echo " CCLD " libvirt-qemu.la;/bin/bash ../libtool --silent --tag=CC --mode=link gcc -std=gnu99 -I/export/home/yangzhou/hypervisor/libxml2/include/libxml2 -Wall -W -Wformat-y2k -Wformat-security -Winit-self -Wunused -Wunknown-pragmas -Wstrict-aliasing -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn -Wmissing-format-attribute -Wredundant-decls -Wnested-externs -Winline -Winvalid-pch -Wdisabled-optimization -Wpacked-bitfield-compat -Wmultichar -Wdeprecated-declarations -Wdiv-by-zero -Wendif-labels -Wextra -Wformat-contains-nul -Wformat-extra-args -Wformat-zero-length -Wformat=2 -Wmultichar -Wno-sign-compare -Wno-format-nonliteral -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fasynchronous-unwind-tables -funit-at-a-time -g -O2 -Wl,-M -Wl,./libvirt_qemu.syms -version-info 9:9:9 -o libvirt-qemu.la -rpath /export/home/yangzhou/hypervisor/libvirt/lib libvirt_qemu_la-libvirt-qemu.lo libvirt.la -lnsl -lintl make: Fatal error: Command failed for target `libvirt-qemu.la' Current working directory /export/home/tools/libvirt/src *** Error code 1 make: Fatal error: Command failed for target `all' Current working directory /export/home/tools/libvirt/src *** Error code 1 The following command caused the error: fail= failcom='exit 1'; \ for f in x $MAKEFLAGS; do \ case $f in \ *=* | --[!k]*);; \ *k*) failcom='fail=yes';; \ esac; \ done; \ dot_seen=no; \ target=`echo all-recursive | sed s/-recursive//`; \ list='gnulib/lib include src daemon tools docs gnulib/tests python tests po examples/domain-events/events-c examples/hellolibvirt examples/dominfo examples/domsuspend examples/python examples/apparmor examples/xml/nwfilter examples/openauth examples/systemtap'; for subdir in $list; do \ echo "Making $target in $subdir"; \ if test "$subdir" = "."; then \ dot_seen=yes; \ local_target="$target-am"; \ else \ local_target="$target"; \ fi; \ (CDPATH="${ZSH_VERSION+.}:" && cd $subdir && make $local_target) \ || eval $failcom; \ done; \ if test "$dot_seen" = "no"; then \ make "$target-am" || exit 1; \ fi; test -z "$fail" make: Fatal error: Command failed for target `all-recursive' Current working directory /export/home/tools/libvirt *** Error code 1 make: Fatal error: Command failed for target `all' bash-3.00# ----------------------------------------------------------------------------- Can you help on how to solve it? Regards, Yang -----Original Message----- From: Daniel P. Berrange [mailto:berrange@xxxxxxxxxx] Sent: 2012年9月6日 16:34 To: Daniel Veillard Cc: Yang Zhou (yangzho); libvir-list@xxxxxxxxxx Subject: Re: Compile libvirt on Solaris On Thu, Sep 06, 2012 at 03:22:12PM +0800, Daniel Veillard wrote: > On Tue, Sep 04, 2012 at 04:26:55AM +0000, Yang Zhou (yangzho) wrote: > > Hi Experts, > > > > I am compiling libvirt 0.9.9 on Solaris 9. But got following errors when run "./configure --with-esx --with-qemu" > > -------------------------------------------------------------------- > > ----------------------------------- > > checking for library containing dlopen... -ldl checking for > > xen_vm_start in -lxenserver... no checking for > > libxl_domain_create_new in -lxenlight... no checking for xs_read in > > -lxenstore... no checking linux/kvm.h usability... no checking > > linux/kvm.h presence... no checking for linux/kvm.h... no checking > > for shell that supports <> redirection... /bin/sh checking > > linux/param.h usability... no checking linux/param.h presence... no > > checking for linux/param.h... no > > configure: error: You must install kernel-headers in order to > > compile libvirt with QEMU or LXC support bash-2.05$ > > -------------------------------------------------------------------- > > -------------------------------- > > > > After look at configure, it's found the headers of linux/param.h, > > linux/sockios.h. linux/if_bridge.h and linux/if_tun.h are required. > > Obviously these files are missing on Solaris platform. Anybody can > > help how to solve this issue? > > I'm not sure we still have an active maintainer on Solaris, John > Levon didn't posted here for ages ... Even then, he only attempted to have the legacy Xen driver work on Solaris, never the QEMU driver. So basically if someone wants the QEMU driver to work on Solaris, they'll need to go through and figure out all the non-portable bits and send us patches to fix them. IIRC, this particular kernel-headers message is because we need to be able to create & pass TAP devices, and configure bridge devices. This will need to be ported to Solaris' interfaces since this stuff is non-portable Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list