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(a)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(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org