[libvirt] libvirt on x64

I just logged onto the first X64 based machine with libvirt (0.3.3-18.5) installed on it and I am only seeing the X64 based version of the shared library. Here is what I am seeing: $ rpm -qal libvirt | grep libvirt.so /usr/lib64/libvirt.so.0 /usr/lib64/libvirt.so.0.3.3 Is there any reason why the 32-bit version is not also installed?? My application is 32-bit based, so it will not work on this hardware because of this. Thanks. John

[sorry for the delayed reply] On 07/12/2010 08:48 AM, Tavares, John wrote:
I just logged onto the first X64 based machine with libvirt (0.3.3-18.5) installed on it and I am only seeing the X64 based version of the shared library. Here is what I am seeing:
Which distro? Also, libvirt 0.3.3 is rather old; we are now at 0.8.2 upstream, and Fedora 13 includes 0.7.7.
$ rpm -qal libvirt | grep libvirt.so /usr/lib64/libvirt.so.0 /usr/lib64/libvirt.so.0.3.3
Is there any reason why the 32-bit version is not also installed?? My application is 32-bit based, so it will not work on this hardware because of this.
Generally, on an x86_64 platform that uses rpms, the 32-bit libraries are available as a separate rpm. For example, I'm running Fedora 13 on an x86_64 host; so I would use 'yum install libvirt-devel.i686' to get the 32-bit development libraries. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

Hi Eric, Thanks for getting back to me. This may have been a system running SLES 10.2 (2.6.16.60-0.21-xen (SUSE Linux Enterprise Server 10 (x86_64))). As to RHEL 5.5, it seems to come with 0.6.3 by default. I am trying to find a system running a 64-bit kernel, but I have yet to find one in my environment. Could you check to see if you have access to one to see if the same holds true as well?? My end goal is to have a single 32-bit application use libvirt on both x86 and x64. I dislike having to ask customers to install another package on their system just for this. I would think that both should be installed by default. Thanks. John -----Original Message----- From: Eric Blake [mailto:eblake@redhat.com] Sent: Monday, July 26, 2010 1:37 PM To: Tavares, John Cc: libvir-list@redhat.com; Tomen Tse; Chen, Jianjiun; Betley, Greg Subject: Re: [libvirt] libvirt on x64 [sorry for the delayed reply] On 07/12/2010 08:48 AM, Tavares, John wrote:
I just logged onto the first X64 based machine with libvirt (0.3.3-18.5) installed on it and I am only seeing the X64 based version of the shared library. Here is what I am seeing:
Which distro? Also, libvirt 0.3.3 is rather old; we are now at 0.8.2 upstream, and Fedora 13 includes 0.7.7.
$ rpm -qal libvirt | grep libvirt.so /usr/lib64/libvirt.so.0 /usr/lib64/libvirt.so.0.3.3
Is there any reason why the 32-bit version is not also installed?? My application is 32-bit based, so it will not work on this hardware because of this.
Generally, on an x86_64 platform that uses rpms, the 32-bit libraries are available as a separate rpm. For example, I'm running Fedora 13 on an x86_64 host; so I would use 'yum install libvirt-devel.i686' to get the 32-bit development libraries. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

I think I finally found such a system running RHEL 5.5 on x64 and it does have both a 32-bit and 64-bit version of libvirt installed (0.6.3). Maybe this is just a SLES issue?? -----Original Message----- From: Tavares, John Sent: Monday, July 26, 2010 2:01 PM To: 'Eric Blake' Cc: libvir-list@redhat.com; Tomen Tse; Chen, Jianjiun; Betley, Greg Subject: RE: [libvirt] libvirt on x64 Hi Eric, Thanks for getting back to me. This may have been a system running SLES 10.2 (2.6.16.60-0.21-xen (SUSE Linux Enterprise Server 10 (x86_64))). As to RHEL 5.5, it seems to come with 0.6.3 by default. I am trying to find a system running a 64-bit kernel, but I have yet to find one in my environment. Could you check to see if you have access to one to see if the same holds true as well?? My end goal is to have a single 32-bit application use libvirt on both x86 and x64. I dislike having to ask customers to install another package on their system just for this. I would think that both should be installed by default. Thanks. John -----Original Message----- From: Eric Blake [mailto:eblake@redhat.com] Sent: Monday, July 26, 2010 1:37 PM To: Tavares, John Cc: libvir-list@redhat.com; Tomen Tse; Chen, Jianjiun; Betley, Greg Subject: Re: [libvirt] libvirt on x64 [sorry for the delayed reply] On 07/12/2010 08:48 AM, Tavares, John wrote:
I just logged onto the first X64 based machine with libvirt (0.3.3-18.5) installed on it and I am only seeing the X64 based version of the shared library. Here is what I am seeing:
Which distro? Also, libvirt 0.3.3 is rather old; we are now at 0.8.2 upstream, and Fedora 13 includes 0.7.7.
$ rpm -qal libvirt | grep libvirt.so /usr/lib64/libvirt.so.0 /usr/lib64/libvirt.so.0.3.3
Is there any reason why the 32-bit version is not also installed?? My application is 32-bit based, so it will not work on this hardware because of this.
Generally, on an x86_64 platform that uses rpms, the 32-bit libraries are available as a separate rpm. For example, I'm running Fedora 13 on an x86_64 host; so I would use 'yum install libvirt-devel.i686' to get the 32-bit development libraries. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

On 07/26/2010 12:17 PM, Tavares, John wrote:
I think I finally found such a system running RHEL 5.5 on x64 and it does have both a 32-bit and 64-bit version of libvirt installed (0.6.3). Maybe this is just a SLES issue??
By default, 64-bit RHEL does not ship 32-bit versions of a library unless it is necessary. And yes, on my x86_64 Fedora 13 box, I have only the 64-bit libvirt installed (my earlier suggestion to use 'yum install libvirt-devel.i686' was exactly what I typed at my box, although I then aborted that command rather than proceeding with the 32-bit counterpart install). One way to mark a 32-bit library as necessary is to list it as an rpm dependency. But why? If you are building rpms, you might as well distribute a source rpm, which can then be built for both i686 and x86_64 (the i686 will depend on the 32-bit library, while the x86_64 can take advantage of the 64-bit library rather than being crippled to the 32-bit version), rather than insisting that anyone who uses your package must use the 32-bit pre-built version. But if you are not distributing via rpms, then you must assume that your customers will not have 32-bit libvirt already installed on their 64-bit machines, since that's not how RHEL generally works (it is intentional that RHEL does not install duplicate 32-bit libraries for every possible .so). So either you will have to build both versions of your software against the two library versions on x86_64, or tell customers that they need to install the 32-bit libraries on their own before using your 32-bit app. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org

Ok. Some other platforms to do support both 32-bit and 64-bit do ship both versions of shared libraries by default, but since this is not the case, we can try to work around it using your suggestion in asking them to install the 32-bit version of it. On a side note, I do not know if you got my other e-mail regarding the odd behavior of libvirt depending how the application using is installed and ran (non-root user, root user and root owned setuid application) where some calls behave differently depending on the scenario. I have scene instances where even though the application is effectively running as root, the results can differ and it is not clear to my that running as an effective user id of root is treated the same as running with the real id of root. -----Original Message----- From: Eric Blake [mailto:eblake@redhat.com] Sent: Monday, July 26, 2010 2:30 PM To: Tavares, John Cc: libvir-list@redhat.com; Tomen Tse; Chen, Jianjiun; Betley, Greg Subject: Re: [libvirt] libvirt on x64 On 07/26/2010 12:17 PM, Tavares, John wrote:
I think I finally found such a system running RHEL 5.5 on x64 and it does have both a 32-bit and 64-bit version of libvirt installed (0.6.3). Maybe this is just a SLES issue??
By default, 64-bit RHEL does not ship 32-bit versions of a library unless it is necessary. And yes, on my x86_64 Fedora 13 box, I have only the 64-bit libvirt installed (my earlier suggestion to use 'yum install libvirt-devel.i686' was exactly what I typed at my box, although I then aborted that command rather than proceeding with the 32-bit counterpart install). One way to mark a 32-bit library as necessary is to list it as an rpm dependency. But why? If you are building rpms, you might as well distribute a source rpm, which can then be built for both i686 and x86_64 (the i686 will depend on the 32-bit library, while the x86_64 can take advantage of the 64-bit library rather than being crippled to the 32-bit version), rather than insisting that anyone who uses your package must use the 32-bit pre-built version. But if you are not distributing via rpms, then you must assume that your customers will not have 32-bit libvirt already installed on their 64-bit machines, since that's not how RHEL generally works (it is intentional that RHEL does not install duplicate 32-bit libraries for every possible .so). So either you will have to build both versions of your software against the two library versions on x86_64, or tell customers that they need to install the 32-bit libraries on their own before using your 32-bit app. -- Eric Blake eblake@redhat.com +1-801-349-2682 Libvirt virtualization library http://libvirt.org
participants (2)
-
Eric Blake
-
Tavares, John