Contents
SUSE® Linux Enterprise is available for several 64-bit platforms. This does not necessarily mean that all the applications included have already been ported to 64-bit platforms. SUSE Linux Enterprise supports the use of 32-bit applications in a 64-bit system environment. This chapter offers a brief overview of how this support is implemented on 64-bit SUSE Linux Enterprise platforms. It explains how 32-bit applications are executed (runtime support) and how 32-bit applications should be compiled to enable them to run both in 32-bit and 64-bit system environments. Additionally, find information about the kernel API and an explanation of how 32-bit applications can run under a 64-bit kernel.
![]() | 31-Bit Applications on IBM System z: |
---|---|
s390 on IBM System z uses a 31-bit environment. References to 32-bit applications in the following also apply to 31-bit applications. |
SUSE Linux Enterprise for the 64-bit platforms ia64, ppc64, s390x, and x86_64 is designed so that existing 32-bit applications run in the 64-bit environment “out-of-the-box.” The corresponding 32-bit platforms are x86 for ia64, ppc for ppc64, s390 for s390x, and x86 for x86_64. This support means that you can continue to use your preferred 32-bit applications without waiting for a corresponding 64-bit port to become available. The current ppc64 system runs most applications in 32-bit mode, but you can run 64-bit applications.
![]() | 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).
►ipf:
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
.
◄