Bug 154655

Summary: incorrect mmap flags with 32-bit binary on s390x
Product: Red Hat Enterprise Linux 4 Reporter: Jay Turner <jturner>
Component: straceAssignee: Roland McGrath <roland>
Status: CLOSED NOTABUG QA Contact: Brian Brock <bbrock>
Severity: medium Docs Contact:
Priority: medium    
Version: 4.0CC: srevivo, tao
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-04-25 08:00:49 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:
Bug Depends On: 146093    
Bug Blocks:    

Description Jay Turner 2005-04-13 11:26:23 UTC
+++ This bug was initially created as a clone of Bug #146093 +++

Testcase:
#include <stdio.h>
int main(void)
{
        FILE *f;
        char a[100];
        char *b;
        f=fopen("abc","r");
        b=fgets(a,3,f);
        printf("b=%p\n",b);
}

On s390x with both 4.5.8-1 and 4.5.9-2.EL4, getting the following when running
against the 32-bit version of the above.

mmap(0x28b9e, 4294967298, PROT_NONE, MAP_FILE, 0, 0) = 0x77fd7000
mmap(0x49a330000013e8e4, 21474838530, PROT_NONE, 0x6 /* MAP_???
*/|MAP_FIXED|MAP_ANONYMOUS|MAP_POPULATE|MAP_GROWSDOWN|0xc9a20400, 2147478920, 0)
= 0x49a33000
mmap(0x49b6c00000004000, 12884903954, 0x138000, 0x6 /* MAP_???
*/|MAP_FIXED|MAP_ANONYMOUS|MAP_POPULATE|MAP_GROWSDOWN|0xc9a20400, 2147478920, 0)
= 0x49b6c000
mmap(0x49b70000000018e4, 12884901938, PROT_NONE, 0x6 /* MAP_???
*/|MAP_FIXED|MAP_ANONYMOUS|MAP_POPULATE|MAP_GROWSDOWN|0xc9a20400, 2147478920, 0)
= 0x49b70000
mmap(0x1000, 12884901922, PROT_NONE,
MAP_FILE|MAP_NONBLOCK|MAP_DENYWRITE|0x49a20200, 0, 0xffffff2cfffe986c) = 0x77fd6000
mmap(0x1000, 12884901922, PROT_NONE, 0xc /* MAP_??? */|MAP_FIXED|0x4002c0, 1,
0x40030c00000000) = 0x77fff000
mmap(0x1000, 12884901922, PROT_NONE, 0x3 /* MAP_??? */, 4194876, 0x1300000012) =
0x77ffe000

Comment 1 Roland McGrath 2005-04-21 21:02:11 UTC
s390x strace does not support tracing 32-bit processes and never has to my
knowledge.  If split 32-64 installs are common and there should be s390x
strace64 and s390 (32-bit) strace on s390, we can do that.  But it has never
been requested by customers as the ppc64 case was. 

(I've removed the IT links since they refer only to x86_64.)

Comment 2 Jay Turner 2005-04-25 08:00:49 UTC
Makes sense to me.