Is there a way to change an i386 RHEL4 machine to run an amd64 kernel, but ensure that it still builds software into same i386 binaries?
On Debian this seems quite straightforward: just install an amd64 kernel (worst case, build one like this guy:
http://www.debian-administration.org/users/jonesy/weblog/1) and prefix everything with "linux32". Then everything that considers uname -m
will be unchanged, I just need to handle the few cases that consider uname -r
.
What is the Red Hat equivalent? Is the only way a full 64-bit installation on another disk and then chrooting back to the 32-bit system before anyone builds anything? (Even the best examples of that seem to be Debian-based.)
Background: We make a large system that runs on (a variant of) i386 RHEL4. However, some of the larger RHEL build machines now have enough RAM that they might benefit from going 64-bit (for the kernel and maybe some of the bigger build steps). Our build system doesn't support cross-compilation.
You can have a 32-bit userland with a 64-bit kernel under RHEL, but I would not recommend taking an existing 32-bit install and stuffing a 64-kernel into it. At the very least you would need some 64-bit libraries and binaries in order for the kernel to run properly, including basics such as rpm and glibc.
Also, the gcc in x86-64 RHEL is capable of building 32-bit binaries provided that you pass
-m32
and have the appropriate 32-bit*-devel
packages in place.