Bug 140821 - RHEL4 Beta2 : ia32el package cannot be installed nor used
Summary: RHEL4 Beta2 : ia32el package cannot be installed nor used
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: ia32el
Version: 4.0
Hardware: ia64
OS: Linux
medium
medium
Target Milestone: ---
: ---
Assignee: Jakub Jelinek
QA Contact: Brian Brock
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2004-11-25 08:23 UTC by Pierre Fumery
Modified: 2007-11-30 22:07 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2005-01-14 12:37:10 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)

Description Pierre Fumery 2004-11-25 08:23:56 UTC
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:

Comment 1 Pierre Fumery 2004-11-25 08:30:15 UTC
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



Comment 2 Pierre Fumery 2004-11-25 08:34:07 UTC
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.

Comment 3 Jay Turner 2004-11-25 14:15:50 UTC
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.

Comment 4 Pierre Fumery 2004-11-25 14:55:27 UTC
"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.

Comment 5 Jay Turner 2004-11-25 15:19:30 UTC
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.

Comment 6 Pierre Fumery 2004-11-26 08:04:51 UTC
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.

Comment 7 Jay Turner 2004-11-26 08:49:59 UTC
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.

Comment 8 Pierre Fumery 2004-11-26 09:31:19 UTC
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.

Comment 9 Bastien Nocera 2004-11-26 10:19:52 UTC
Reassigning to the right package.

Comment 10 Jay Turner 2004-11-26 10:31:55 UTC
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.

Comment 11 Jakub Jelinek 2004-11-26 10:39:27 UTC
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.

Comment 12 Pierre Fumery 2004-11-26 12:49:42 UTC
OK. We'll try this latest package asap and we'll let you know if it
fixes this issue.
Thanks.

Comment 13 Pierre Fumery 2004-11-30 14:39:25 UTC
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.

Comment 14 Jay Turner 2004-11-30 15:07:35 UTC
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.

Comment 15 JoAnne K. Halligan 2004-11-30 18:42:23 UTC
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 

Comment 16 Pierre Fumery 2004-12-01 08:11:43 UTC
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.


Comment 17 Pierre Fumery 2004-12-01 08:33:44 UTC
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.



Comment 18 Jay Turner 2004-12-01 09:24:19 UTC
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.


Comment 21 Jay Turner 2005-01-14 12:37:10 UTC
Closing this out, as full-testing has occurred with all pieces of this puzzle
and testing was successful.


Note You need to log in before you can comment on or make changes to this bug.