From Bugzilla Helper: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040514 Description of problem: Kernel which is provided on RHEL4 Beta2 is not compiled with 32bit Emulation Layer set on. # CONFIG_IA32_SUPPORT is not set This prevents to run 32 bit applications on IA64 boxes. Version-Release number of selected component (if applicable): kernel-2.6.9-1.64 How reproducible: Always Steps to Reproduce: 1. To install a RHEL4 Beta2 2. To install IA32 Emulation Layer packages 3. To (try to) run ia32 applications Actual Results: Unable to correctly install needed compatibility ia32 modules which should go to /emul/ia32-Linux/bin/. So, unable to run ia32 applications on IA64. Expected Results: To succeed installing compatibility ia32 modules in order to get ia32 applications running on IA64. Additional info:
On IA64, RHEL4 Beta 2 does not install needed packages to run ia32 applications. The "/emul" directory does not exist. If we tried to install needed packages to get /emul/ia32-Linux/bin/sh , we got errors : glibc RPM installation : NOK example : rpm -ivvh glibc-2.3.3-73.i686.rpm ... D: install: %post(glibc-2.3.3-73.i686) asynchronous scriptlet start D: install: %post(glibc-2.3.3-73.i686) execv(/emul/ia32-linux/usr/sbin/glibc_post_upgrade) pid 5525 D: install: waitpid(5525) rc 5525 status ff00 secs 0.040 erreur: %post(glibc-2.3.3-73.i686) scriptlet failed, exit status 255 ... Error when executing glibc_post_upgrade /emul/ia32-linux/usr/sbin/glibc_post_upgrade -bash: /emul/ia32-linux/usr/sbin/glibc_post_upgrade: cannot execute binary file libtermcap installation : OK rpm -ivh libtermcap-2.0.8-39.i386.rpm bash installation : NOK rpm -ivvh bash-3.0-17.i386.rpm ... D: install: %post(bash-3.0-17.i386) asynchronous scriptlet start D: install: %post(bash-3.0-17.i386) execv(/emul/ia32-linux/bin/sh) pid 6900 D: install: waitpid(6900) rc 6900 status ff00 secs 0.041 erreur: %post(bash-3.0-17.i386) scriptlet failed, exit status 255 ... Error when running sh file /emul/ia32-linux/bin/sh -bash: /emul/ia32-linux/bin/sh: cannot execute binary file
Setting the CONFIG_IA32_SUPPORT flag fixed this problem. Once kernel had been (re)compiled with this flag on, needed packages have been installed without problem and ia32 executables can successfully be run on IA64. We must be sure RHEL4 kernel will be compiled with CONFIG_IA32_SUPPORT on.
This flag isn't going to get set, as Intel is removing 32-bit support from their chips. Instead you need to install the OS, then install the ia32el package (which is included on the Extras CD) then install 32-bit applications and libraries from the 32-bit compatibility CD.
"install the ia32el package" : It's what we tried to do but several errors occured (see comment #1) and it didn't install. As a workaround (see comment #2), we found that ia32el package installation worked when kernel was compiled with CONFIG_IA32_SUPPORT flag on. We don't say it's the right solution. However, not setting this flag seems to prevent installing the "ia32el package" as needed directories or pre-requisite packages are not created/installed in such a case. Please consider this problem one more time and let us know. We may have missed something somewhere. Did you try to install and/or use ia32el on RHEL4 beta2 ? Thanks in advance.
There have been a ton of changes which have gone into the ia32el package, many of which were to address dependencies problems as you found.
Hi Jay, It's not because "there have been a ton of changes to address dependencies problems" that we don't have to fix it. It seems it is not fixed as of today, correct ? Do you plan to publish RHEL4 with no ia32 applications enablement on IA64 ? It is a big issue and concern for us as a lot of applications are not compiled IA64 and it is mandatory to get ia32el feature working. If there is a fix or another issue addressing this issue, please duplicate this issue to the other one. But I won't let the current issue being closed.
I didn't say that because "there have been a ton of changes" that it won't be fixed. What I'm saying is that it is fixed in the internal ia32el which is current under qualification, therefore the issue is moot. ia32el and 32-bit compatibility will indeed be functioning in RHEL4 once released. The reason that I keep closing this bug is because the bug is requesting that CONFIG_IA32_SUPPORT be turned back on in the kernel, which isn't a bug. It's not supposed to be enabled, as Intel is dropping support for 32-bit compatibility from their chips and ia32el has been coded to allow for executing/usage of 32-bit applications and libraries.
As written in comment #4, setting the flag is probably only a workaround and we're relying on our skill to find the right solution. We DON't require anymore to get CONFIG_IA32_SUPPORT on if you say it's a wrong fix. It was only our temporary workaround. But current ia32el package (RHEL4-beta2) doesn't work. It's the last available version partners were requested to test. Please duplicate this issue to the one which fixed this problem or let give us a fix to this issue before closing it again. I want to track this problem. A real issue cannot be closed (as "notabug") because there is a potential fix which might exist somewhere. We're ready to test your fix asap and then we'll close this issue when it will be fixed.
Reassigning to the right package.
OK, if you insist on keeping the bug open, then please fix the summary line (because 'kernel does not support emulation layer' isn't a bug, it's by design that the kernel no longer supports it) and please give details about the exact steps you're going through, the particular version of ia32el, glibc and rpm that you're testing with. etc.
There is no way this bug can be marked as duplicate to multiple bugs. I've put the latest package at ftp://people.redhat.com/jakub/ia32el/ so that you can test the latest stuff. Anyway, there is no point in keeping this bug open.
OK. We'll try this latest package asap and we'll let you know if it fixes this issue. Thanks.
We still have issue about ia32el package. It does not install all needed pre-requisite packages (libc, ...) which are needed to run 32 bit applications. Are there known problems still under investigation/resolution ? Is there some documentation to help running IA32 applications on IA64 ? We did succeed to install and to run IA32 applications on IA64 but it is not well automated nor documented. We're looking forward to getting your feedback and/or we'll open another defect to describe what is still missing inside RHEL4. Thanks in advance.
I'm not sure I follow your original comment. The process should be install RHEL4 on an IA64. On reboot, install the ia32el package and start the ia32el service. Then start installing all of the 32-bit packages from the separate tree in which they all live. Once that's done, then you'll be able to utilize 32-bit applications. This rather awkward install process is a result of the processors dropping support for 32-bit native execution, so in order to install 32-bit packages, which run 32-bit scripts as part of install, you have to have the ia32el service up and running.
I have reopened this bug on behalf of Bull as it seems that they may still have an issue here. Bull: I need to ask you to please try the steps as noted be Jay above. Please use the latest EL and RHEL4 B2. Please let us know if it works as noted (and close the issue). Otherwise, if there are still problems, please note specifically what they were including all necessary details on what happened, which version, arch, specific lib any any failure messages or problems seen. Thank you for your patience. We appreciate you working with Red Hat to resolve this issue. Thanks, JoAnne
Hi Jay, As described in comment #13, we already used quite same process you described in comment #14 and it had worked. I'll post detailled process in another comment to this issue. What concerned us is that we "discovered" this process to run 32-bit applications and there is no documentation to describe what to do. Also, from my point of view, it's weird to manually install required 32-bit packages. I was expecting that the ia32el package would install all needed packages and it will start needed service. We discovered all that by reading and by studying ia32el package source. I don't think we can ask customers to do as well. At least, we need documentation to describe how to proceed.
Based on our experiments, please find below what we stated to get 32-bit applications running on IA64 (Itanium). (a) To install RHEL4 beta2 on an IA64 box (b) To install ia32el-1.1-11.ia64.rpm (from ftp://people.redhat.com/jakub/ia32el/ because we didn't find it on current RHEL4 beta2 distribution) (c) To start the ia32el service (d) To install glibc-2.3.3-73.i686.rpm (e) To install libtermcap-2.0.8-39.i386.rpm (f) To install bash-3.0-17.i386.rpm Our conclusion and/or question are : 1) Only these 3 "extra" packages seem to be needed. Right ? 2) Why these 3 packages are not automatically installed within (or pre-req) with the ia32el package ? 3) The ia32el service needs to be started manually. Couldn't it be started automatically ? 4) If we could have only one step (one package which installs and which starts the needed service), it will be greater and easier for customers. If we cannot, it is mandatory to get a documentation/release-note describing the process : steps (a) to (f). Thanks in advance to let us know which solution will be choosen.
There will be documentation. It's currently going through our docs and translation team. As for if only 3 additional packages are needed, it really depends on what you're running. Some 32-bit applications are probably going to require several more of the 32-bit libraries that we're including on the compatibility CD. As for why this whole process can't be automated, there are a number of reasons. First, the ia32el is proprietary code, therefore Red Hat doesn't package it along side GPL'd code. The 32-bit packages themselves can't be installed as part of the normal installation because they require a 32-bit environment in which to excute pre and post-installation scripts. That's why we had to separate them all out into a separate CD. And since they are on a separate CD, you can't have cross CD dependencies. During firstboot, the user will be prompted to insert the Extras CD (which is where the ia32el package is located) if they wish to run 32-bit applications. They will then be instructed to insert the compatibility CD and install whatever 32-bit applications/libraries they wish to install.
Closing this out, as full-testing has occurred with all pieces of this puzzle and testing was successful.