19.1 Runtime Support
IMPORTANT: Conflicts between Application Versions
If an application is available both for 32-bit and 64-bit
environments, parallel installation of both versions is bound
to lead to problems. In such cases, decide on one of the
two versions and install and use this.
To be executed correctly, every application requires a range of libraries.
Unfortunately, the names for the 32-bit and 64-bit versions of these
libraries are identical. They must be differentiated from each other in
another way.
The same approach is used for the 64-bit platforms ppc64,
s390x, and x86_64: To retain compatibility
with the 32-bit version, the libraries are stored at the same place in the
system as in the 32-bit environment. The 32-bit version of
libc.so.6 is located under
/lib/libc.so.6 in both the 32-bit and 64-bit
environments.
All 64-bit libraries and object files are located in directories called
lib64. The 64-bit object files you would normally
expect to find under /lib,
/usr/lib, and /usr/X11R6/lib are
now found under /lib64,
/usr/lib64, and /usr/X11R6/lib64.
This means that there is space for the 32-bit libraries under
/lib, /usr/lib and
/usr/X11R6/lib, so the filename for both versions can
remain unchanged.
Subdirectories of 32-bit /lib directories whose data
content does not depend on the word size are not moved. For example, the X11
fonts are still found in the usual location under
/usr/X11R6/lib/X11/fonts. This scheme conforms to
LSB (Linux Standards Base) and FHS (File System Hierarchy Standard).
The 64-bit libraries for ia64 are located
in the standard lib directories. In such cases, there is
neither a lib64 directory or a
lib32 directory. ia64 executes the 32-bit x86
code under an emulation. A set of basic libraries is installed in
/emul/ia32-linux/lib and
/emul/ia32-linux/usr/X11R6/lib.