Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
For bugs related to Red Hat Enterprise Linux 4 product line. The current stable release is 4.9. For Red Hat Enterprise Linux 6 and above, please visit Red Hat JIRA https://issues.redhat.com/secure/CreateIssue!default.jspa?pid=12332745 to report new issues.

Bug 186757

Summary: opendir() work abnormal with ia32el service
Product: Red Hat Enterprise Linux 4 Reporter: joan <joan_cn>
Component: ia32elAssignee: Petr Machata <pmachata>
Status: CLOSED NOTABUG QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: 4.0CC: eric.lin, mnewsome
Target Milestone: ---   
Target Release: ---   
Hardware: ia64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-09-04 13:30:48 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description joan 2006-03-26 03:23:38 UTC
Description of problem:
opendir() work abnormal with ia32el service.

Version-Release number of selected component (if applicable):
ia32el 1.3.2
Redhat Enterprise Linux 4, U1, U2,U3

How reproducible:
Use opendir(), whenever we pass a absolute path name(eg./usr/share)or relative 
path name, it will try to open the path on /emul/ia32-linux/usr/share first, if 
the directory is not exist on /emul/ia32-linux/, then it going to 
open /usr/share. 
This will cause the 32bit program work abnormal in 64bit environment.


Steps to Reproduce:
1.
2.
3.
  
Actual results:
opendir() not open the correct direcotry if the directory also exists 
in /emul/ia32-linux/ directory. 

Expected results:
opendir() can open the correct directory on ia64 platform.

Additional info:

Comment 1 Jakub Jelinek 2006-03-27 09:25:10 UTC
*** Bug 186758 has been marked as a duplicate of this bug. ***

Comment 3 Jakub Jelinek 2006-03-27 09:27:31 UTC
*** Bug 186754 has been marked as a duplicate of this bug. ***

Comment 4 Jakub Jelinek 2006-03-27 09:29:21 UTC
*** Bug 186753 has been marked as a duplicate of this bug. ***

Comment 5 Eric Lin 2006-03-28 06:12:14 UTC
This is the behavior by design of the ia64 linux system. it's not ia32el 
problem. Only way to overcome it is by changing the design of the system. 


Comment 6 joan 2006-03-31 07:07:28 UTC
Yes, by the test result, I'v got it is the ia64 architecture problem. But could 
you please give us some workaround for this issue? 

And how about other APIs, where could I found the API list that function 
different on ia64 platform? It would be very import for developers who porting 
the program to ia64 platform. many thanks!

Comment 7 joan 2006-03-31 07:08:06 UTC
Yes, by the test result, I'v got it is the ia64 architecture problem. But could 
you please give us some workaround for this issue? 

And how about other APIs, where could I found the API list that function 
different on ia64 platform? It would be very import for developers who porting 
the program to ia64 platform. many thanks!

Comment 8 joan 2006-04-05 09:51:40 UTC
Answer from Intel:
As a process, Intel doesn't provide direct support for IA-32 EL customers - OSV 
should do the support (in your case, redhat). I'd like to suggest you to 
describe your problems clearly in your bugzilla to see how Redhat response.

Dear Redhat,

Who can help me? thanks!
Question 1: 
Where can I found the APIs list that function differnt on pure 32bit 
environment and IA-32 EL environment, such as opendir() and chdir()described in 
this bug.

Question 2:
Is there any workaround for the opendir() issue, for example, is there any 
option in compile?

Many thanks!









Comment 9 Petr Machata 2006-08-09 15:57:08 UTC
Joan:
Answer 1:
On IA-64, all file-related functions will prefer files from /emul/ia32-linux/,
if they are available.  This is built in kernel.  If kernel altroot isn't
available, ia32el does that emulation itself for ia32 binaries.
For definitive list, file ia32el_v6_intel/src/ia32toia64/user32_pathwalk.c would
be of particular interest for you.

Answer 2:
I don't think there is a workaround for that, apart from removing the file from
/emul/ia32-linux.

Is that explanation enough for you?