How are 32-bit applications and multilib libraries supported in RHEL?
Environment
- Red Hat Enterprise Linux (RHEL) 6
- Red Hat Enterprise Linux (RHEL) 7
- Red Hat Enterprise Linux (RHEL) 8
- Red Hat Enterprise Linux (RHEL) 9
Issue
- Will Red Hat continue to support 32-bit applications in the future, for example in Red Hat Enterprise Linux 7 and later releases?
- Are 32-bit libraries provided with Red Hat Enterprise Linux distributions?
- Is there a 32-bit DVD ISO to install RHEL 7 and later releases?
- Can I install RHEL 7 and later releases on 32-bit hardware?
- Will RHEL 7 and later releases suppport i386 and i686 (x86) or only x86_64?
- Does RHEL on ARM hardware support 32 bit?
Resolution
RHEL supports multiple hardware architecture platforms as defined in Red Hat Enterprise Linux technology capabilities and limits. The hardware defined in that list defines which hardware a given RHEL release will provide installation media and can be directly installed on the physical hardware.
Some releases also include multilib compatibility for select hardware architectures. This includes a multilib toolchain to build and run 32-bit applications in 64-bit OS + hardware environments.
This functionality also exists for RHEL 5 & 6 as documented in the knowledge article: How to install 32-bit packages on a 64-bit system
Regarding 32 bit Intel/AMD hardware (i686/x86)
- RHEL 7 was the first release to no longer support installing directly on 32 bit Intel/AMD hardware (i686/x86). ISO installation media is only provided for 64-bit hardware.
- RHEL 7, 8, 9 will continue to support the multilib toolchain, allowing applications to be compiled for both 32-bit and 64-bit.
- RHEL 7, 8, 9 can host, using KVM virtualization technology, both 32-bit and 64-bit virtual guest instances of RHEL 5 and RHEL 6.
The table below provides a helpful quick reference while the certified hardware database provides more authoritative answers.
Additional helpful reference links
- Red Hat Enterprise Linux technology capabilities and limits
- How to install both 32-bit and 64-bit RPM packages on Red Hat Enterprise Linux 64-bit system
Installation and Multilib enablement
Architecture | RHEL 7 | RHEL 8 | RHEL 9 |
---|---|---|---|
ARM (aarch64) | None | Installation | Installation |
Intel/AMD (x86) 32 bit | Multilib only | Multilib only | Multilib only |
Intel/AMD (x86_64) 64 bit | Installation | Installation | Installation |
Power 7 (ppc) | Multilib only | None | None |
Power 7 (ppc64) | Installation | None | None |
Power 8 (ppc64le) | Installation | Installation | None |
Power 9 (ppc64le) | Installation with P8 compat mode only | Installation | Installation |
Power 10 (ppc64le) | None | Installation | Installation |
System Z z12 (s390) | Multilib only | None | None |
System Z z12 (s390x) | Installation | None | None |
System Z z13 (s390) | Multilib only | None | None |
System Z z13 (s390x) | Installation | Installation | None |
System Z z14 (s390) | Multilib only | None | None |
System Z z14 (s390x) | Installation | Installation | Installation |
System Z z15 (s390) | Multilib only | None | None |
System Z z15 (s390x) | Installation | Installation | Installation |
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
13 Comments
Will in-place upgrading upgrade a RHEL6 i386 system to a RHEL7 x86_64 system.
The link above named "How to install 32-bit packages on a 64-bit system" leads to a page where it says "Permission Denied", even when properly logged into access.redhat.com with a valid and current support subscription as if 8/31/2014. Kind Regards....
Thank you Remmele,
The linked article had been retired as a duplicate, but there was no forwarding to the preferred document.
I've put that in place.
Please let me know if you have further problems.
Best regards,
Mark
Thanks much for fixing it Mark!
Remmele
Does this solution apply even for Red Hat Enterprise Linux for Real Time 7? I mean, will we receive full PREMIUM support even building rt software for i686?
Red Hat Enterprise Linux for Real Time 7 is simply a variant of RHEL 7, so this article applies exactly. There is no install method for any RHEL 7 variant on i686 hardware. It is not a question of support, but rather the fact that i686 hardware is not a hardware platform enabled for RHEL 7. i686 hardware is essentially considered deprecated for RHEL 7.
However, the i686 compatibility libraries are available so that your 32 bit application can run on the RHEL 7 x86_64 bit hardware platforms and this scenario is fully supported. This is the option you need to pursue if you have a 32 bit application.
Stefano, I have updated this document to make this more clear.
What about 32 bit library support for RHEL 7 for ppc64le? I can't find libstdc++.so.5, libstdc++.so.6 and libgcc_s.so.1 which are prerequisite for IBM Workload Scheduler, version 9.4 (http://www-01.ibm.com/support/docview.wss?rs=672&uid=swg27048858)
This document references RHEL 8 but provides zero mention of it in the
Resolution
.Please update!
Updated to clarify that the change to 32 bit support with RHEL 7 also applies to 8.
Are we sure this applies to RHEL8? When I try to install 32 bit glibc libraries yum says nothing is available. If I do an rpm -qa I can see only the 64 bit variant is installed
Nevermind. Seems the libraries are in a different repository in RHEL 8 and one of the other sys admins had disabled the baseos repo because IT security said we needed patches when yum said we were up to date. This guy didn't understand that the software installed was newer than the patched versions they said we needed because security doesn't have a baseline for rhel 8 so he added every repo he could find trying to get it to patch. Then he had to manually remove everything
I need to find the compatible 32-bit libraries for things like glibc-headers.i686, so that we can compile for our 32-bit customer base. Yes, some older embedded stuff needs 32-bit, so I can't push them to 64 bit quite yet. I am not trying to "run 32 bit applications", but I am compiling for them. I put in a ticket, since I have a subscription. If I get a useful answer, I will share it here.