Subject: | |
From: | |
Reply To: | |
Date: | Mon, 27 Jun 2011 14:32:26 -0700 |
Content-Type: | text/plain |
Parts/Attachments: |
|
|
I found on the web:
Unlike Debian based distributions, Red Hat and distributions based on it
organize lib directories in a way that lets you install a 32 bit package
of .so files on an x86_64 system without any conflict with the 64 bit
build of the same package, which may also be installed.
AND:
The Debian system dynamic library linker has been modified so that when
a 32-bit application requests access to a library, Debian provides the
32-bit version of the library if it is available instead of the normal
64-bit version that the native applications require. This works if the
ia32 packages which provide a sub-set of standard Debian libraries
compiled in 32-bit mode have been installed. (NB: I am not using a
Debian distro, but the SL 6 RHEL 6 distro. The quote is for clarity.)
End quote.
Unfortunately, this does not always seem to be the case in direct
practical experience.
Two questions:
1. How to install the SL6 release so that the System -> Administration
-> Add/Remove Software will list both the 64 bit and 32 bit libraries?
I have tried sl-release-6.0-6.0.1.i686.rpm and this does not cause these
library choices to be displayed.
I suspect this is because from the sl.repo file, the stanza
name=Scientific Linux $releasever - $basearch always puts the actual
base kernel ISA into the $basearch, so only X86_64 appears. I tried to
make a separate repo file that would force the IA-32 libraries to be
listed, and although I enabled the new repo using System -> Software
Sources in the Add/Remove Software application, no such library RPMs
appeared.
2. Many packages that must be built from source rely upon configure and
for various reasons, paths such as /usr/lib , not /usr/lib64 that is the
X86-64 path, appear. This is an issue with appropriate scope specific
polymorphism. Will the following idea address this issue? Two unique
paths for libraries and include files: foo32 and foo64 with foo being
the appropriate path identifier. At the actual time when a decision as
to which foo to use, set foo to either foo32 or foo64 but let the
application (e.g., configure and the files needed for configure to
"configure") only find foo . Thus /lib could be either /lib32 or /lib64
depending upon whether a 32 or 64 bit application was needed, etc. This
is still much simpler than a chroot mechanism of keeping two identical
operating systems and application environments on the same machine, one
IA-32 and the other X86-64. Obviously, utilities such as ld (mentioned
in a Debian context above) must be aware of the differences, as must
compilers when creating appropriate object or executable file internal
headers.
Yasha Karant
|
|
|