From patchwork Tue Aug 15 18:09:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Steve Ellcey X-Patchwork-Id: 22130 Received: (qmail 18893 invoked by alias); 15 Aug 2017 18:09:30 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 18865 invoked by uid 89); 15 Aug 2017 18:09:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.6 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_ADVERT2, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=H*M:197, H*MI:197, HContent-Transfer-Encoding:8bit X-HELO: NAM01-BY2-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Steve.Ellcey@cavium.com; Message-ID: <1502820555.3962.197.camel@cavium.com> Subject: [Patch] aarch64: Fix tst-makecontext3 in ILP32 mode. From: Steve Ellcey Reply-To: sellcey@cavium.com To: libc-alpha Date: Tue, 15 Aug 2017 11:09:15 -0700 Mime-Version: 1.0 X-ClientProxiedBy: MWHPR02CA0047.namprd02.prod.outlook.com (10.164.133.36) To MWHPR07MB3549.namprd07.prod.outlook.com (10.164.192.138) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1bc21bf0-3b18-4734-d0aa-08d4e408bec6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR07MB3549; X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3549; 3:YuWcKfxVO1cjPXnYS9v0QHHWB/hYZXF/sE38Z/2LP4vMZMnhaX7z5nkao7FAMTs2KXf4ZL5aKnjYVXYP29doMqsauDSEK6kpOCgzffgBEUh3sjmgjlcSAzly5w8vCx4Y0DW5iWtURNPRawW9G3U6VNvHBqpEPARJGtEZWI/mdZBXACCWNTpyM1ay8M6zPee4UJIBXxtjQTfOsgQHEyaNFmmXIesbp7i/eo3Z1ensAC+if05nDjSE1i2+yaJ/ev6a; 25:9bpX/wQQmgLv/lJw627hQlmK2jVAdpf2zO7Sab+UC1JpA1hTDWgZEo1BLSkGfw5BOMeKSMZ9VTaU1bJjfO7moh9hYM5d1azrQmFr80okIgnk5NOEwnjvhR1acefJ4dDsXELh6foiweEH+ivaB7IKDtJ5pJctVXdp18TwrLjsOjnfYTyPVrr/LristI5FTeGbOwc9iiuyNWY1xWhlvJWTu2TacCwHmoXFEQyGM+Zi4deO1zdgyuOTWJh1vtfSIFx31kPNvx0Iz35UALsdMmGGkU6BRIf/0R0DkBXi+dHTwVtZ4hS7LYFL6/Z4LZr/wnlBfgtlyAMM7cryu6yICeP+bQ==; 31:RVnhOsSWXVvqS4GfVWCdtZctV8E9pJCU7rto3vXrnGaAfN7CDrsE6BWQdIoVv6tY4zwgrll21CqCeFWrBg57gd9va8F+4HvopzZvRWiLGRGJojHfAnYayDHSYPnw7t5a7xga1XyJYPzocHJnCox7cvOyUzy9Jf9i5eV7SdmilyBDIBW6kJf8iFgAHjKVYbS51bFLIGFTOqfbax1Uawq9hvQa4ILscDXa6pFbcpiXzjs= X-MS-TrafficTypeDiagnostic: MWHPR07MB3549: X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3549; 20:xDUGsF1gJe+Qwx4Lor7/0Ezlq+ZutwMX98rCtAiyL9ukBItOmueiiNfjykoEN8Q/TIb4kJsRCuaj/OAY3ytS9w/mllajgfOMEoDOgZtw5sTTmSYabAF6rG+brjhw1O5RZyrFPKL5eKtuYpmW4pbiYSqzW0tC1hDjIQpbI1N2nQw5JvA5Qe9oJ3eDNrR/XYPm4dUxNn2HrOAAhr5iMoIhWiRvseoBFyy3GINkWOzkTTzPFbUd4A1KcdIJFqtYtmZeHVNCFBEzuiprLSz8TFiRcpyycPrelBBRPRtx7/D2ZKtCT3MLJYcezxlAg9EBVIOPY30ZriyrtswqTiG2YABXKdZ/u1WpUOliS5iabPQJXqleEiQicCnvx+EZXRggYwRkTGHXD8bZcf/HygF41QBd0FzLPSOnQBG4fr9TmdVV2sOXTst0xIU6tqsira+Lg66sdvG6BCeI8YKXOpP3CnAnk52/QBQxotqVr/HoMcdQD73FmAH9iMv0h9I8WL+LQV3i; 4:rjmr13oU/nFfCzW7+ePTDoKGkEnOQdCbhkAdAuXD8dJSEwvTumcvyqZOg/sg153OaU2lyoP7IoYjnfldLNXhR27J5v9Wri/w17qgglARKn7UAdy1N4Qf/TmvGX5W8DsOF8yYRQoaUQSxg6uteqre2L/LAym8AaLQbFmkQI0TAxZoelOmfRn9b2ZdYcnS1uFhfTesZaG8/EFX+N5Degc7RDq2m2nh64o91VD0ovds2sXtwh4G25MUiN7+TzBDTMK7 X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123564025)(20161123560025)(20161123558100)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR07MB3549; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR07MB3549; X-Forefront-PRVS: 04004D94E2 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6009001)(189002)(377424004)(199003)(72206003)(5820100001)(81166006)(33646002)(8676002)(66066001)(81156014)(47776003)(6116002)(106356001)(25786009)(3846002)(105586002)(7736002)(23676002)(2870700001)(6506006)(3450700001)(50226002)(305945005)(6512007)(6486002)(53416004)(50466002)(6916009)(43066003)(101416001)(53936002)(97736004)(2906002)(189998001)(50986999)(478600001)(69596002)(68736007)(5660300001)(7350300001)(103116003)(36756003)(110136004)(42186005)(99106002); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR07MB3549; H:sellcey-dt.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNV0hQUjA3TUIzNTQ5OzIzOlJNWDhCVGEvanljeHFVL1psUnpKVnFyRDkz?= =?utf-8?B?eWVLQmt5M1kzaGw2SExjU2dkTVY2ekt0UEsxd1cwUE1mVE5hVFZDdWJLU053?= =?utf-8?B?am9vZzBBS3FHQ2JKcFRUYkNtdkpXbm92ZkFTckRKTVA1cVVadlNVa3R4VEdW?= =?utf-8?B?b3ViZ0FEeFFTN2ErQ2ZyS0NCWExscjlXWlhqVm11ckRCb0xCNkIyL1RDRWwv?= =?utf-8?B?QzkrR09nRWZQYWQwRkRIUHNhbGkxNlhXL1g2K2FuNGNFMGlLMFRnZEV5bEtY?= =?utf-8?B?VGFmc0c2ZFQzM1A0OWZUOHVzTlJPVkdsOEtza2hBS1Q2VFBSVWJBaHkyZWFK?= =?utf-8?B?SFB0UzZlWkZ3a29ackV5Qm1HQTZuTXQvWlpRMlJ5bkVyT2ZDZ0FnamlIZ0Y0?= =?utf-8?B?Qi9WTjFIVkZacDlZZ294V093dnBPUnFObXBmcGhnZlFMaWErUGdhMjlHNERs?= =?utf-8?B?QUZRb2IwaHhVWEp4WjRLR0lUdTIzb0c0Y0VoZkNCaE9yS3h1TkNCRnV5YVFa?= =?utf-8?B?UUtPakZnbUNrcXE3aDY5djNEeWdPeitseStpcEFITitrR01yWXdrRnl2U0ZY?= =?utf-8?B?SHFnSnVQSWt1eDVHeTdvS1pLbXhYamYxYmFtVzR5eTNmNFRadE1PMVMvNlNH?= =?utf-8?B?WXpYOG1HUzRxV2lPNkNRQTFCbE5UNHhIdzlEUnlwRGY4NUlrR3NHUmY3WVVT?= =?utf-8?B?bWNVR2NHaUJ4TC9vVUdpeFR1OFlhSWZyZzJOUXJEOHF1b2xxeWl0NWpGb3c1?= =?utf-8?B?TUhDL1c0NUQyalhJL0pPYzRQSUM2Y01tQytxR1NwVjByajI5M0V4YjNkVlRu?= =?utf-8?B?UWpPZEpVYkVVQmJtdWxZNUVRVmdZNWx5TjNhai9mRldWNnZ0dDdiU2xkbjk4?= =?utf-8?B?V3QwRW92ZkVmTElWY08rc0I2Y1NlUk9uU3Mzcy9kUmFtazBkU1BjMmFVWFVu?= =?utf-8?B?TVh1YUdBUlJBSVRkUlBmR25PYVpkMnIrWXNuNUNTZFpGdDBPMDF1THNRMzI0?= =?utf-8?B?NkJvR0c0WWhiVE9QVDRpVDJmRVZCMVZWL1R4Nm1qdWZ4RVA0aDdkNTh6OEVq?= =?utf-8?B?d0xKMDczUW1aRlk0MVZvRWxadzk2OVU3MUdOb2J3Y2lic0NUYW5hTFFwQXNW?= =?utf-8?B?NDlFcFBZL0hZZUxYbjVIejRwZ0pCV2xlQnNkK09yU3ZLbTBKQk9HN1RIeDN2?= =?utf-8?B?T0tpMEFHR1g0YmQrK2tkODhTNkpHSkZCOWxNcEZMUGFLZExHTCtxWTRPbHIv?= =?utf-8?B?MHc1M09zazNaMUlyaGlualhmdWtUeEhUZ1AwRUZhMmZDTnk2b1prNWVOZk43?= =?utf-8?B?cEhHeXZ1NzFPT3lOTHM5cEcwZEdpc2ZjK1kxOEV0cno4MitXZ0lkY1BYNFNS?= =?utf-8?B?dXFuY29abVN2TmpqSUtZQ1dqd1Rzcm5MTW0vVUlLTjBFSFFlQnZKbTA4WGUr?= =?utf-8?B?d29McUxDbVRDVFljTFZYYUZmbVVhUE5ZUmxsdUpMTUtOclp1MXVkL1hnRmZN?= =?utf-8?B?Z3VhMkR3S2ZVZkRDc2FHbURQdzFSRVRuTDhmL09kRi9kRGJkQTRCeGFQaGVu?= =?utf-8?B?QUVWYjE1YWMvYS95Wm1MeVNSMm1NSmc9PQ==?= X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3549; 6:JmJzqaynVNESjpcQLFQJ4eqw7aoThsOFM+x4BAgLfCEX+ddOxl1kFS+Ywb0fr+AIj75L6gf1S6cxpubG7prvO3v/aAxOXBJ+jnxxzbidIFKBlStsnrglVsE4JX2SCvRtcCPFRplYm1OOMmv9210suNoGwREUReAz8IF+ILJ/fZZrGW7iwokPVvnEaTC7Mn3hAsOBcVHaNFRY2o5aC2mBl6l0av6i4cbRibdRkIx8tCJ8iGoBZXCHUr1/i81lNbNpLFJ7+kF4LNWAv10IVE8lDzF9ilnSJH48ZEwLF0GGKyUV3xdY5BzqMEhrkG/5ePhJrV/PFCH1vhGkBUA2vDL/vg==; 5:u8sYxozFST+F055CjouTndbZQ5nq5kK9Apxl+Zu613kAMqjDYPjKaHDAjTnTzyWsKadc47yiDgpziU+0jpr2SFF5iu76Oj8WEpyWKWA9MdbnBs/MpcNahcTVA57WfX6U97OrhpvkstH12Nx4KSjBmg==; 24:g0HeB5XeWSRIja7HMBUvvdX+kbSO3apaIcvFRzoVNJyksy7uAVoHwYqeSemTZGkLdaG/GOyfJBzqoaCix0cyMZBpLhqBgZMGJ4pM44ZLhmc=; 7:cME6I0W64QNMZE83WI0R1zzbQP3s2asHJF4M5scvrsOJtvKspdqaabAKzprZA+1SnljVnuPKKm11NN+wPIuNjdtBhyELdNTYkEl5Cwkt1Q/ZmrHmKX0rTHdqdUfPJZyXCa43xcL0rVP6bzUdbSAIcB2/WXlsZVW53aqJ/2CjEMadQ4dScZzbXM2yt3Q3qRrn15xBcrDfPIAqHsyYJLIAvTBNWewSxUh9ohJsL17vSQU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Aug 2017 18:09:17.6716 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR07MB3549 This is an additional patch for ILP32 aarch64 support, it fixes a failure with the tst-makecontext3 test in ILP32 mode.  That ABI has not been checked in yet but I wanted to submit this patch in order to share it and see if there is any feedback.  The basic problem is that makecontext was using 'long int *' as the sp pointer type and that is 32 bytes in ILP32 mode instead of 64 bytes.  By using uint64_t instead we get 64 bytes for both ILP32 and LP64 modes and the makecontext test works in both modes and there are no regressions. Steve Ellcey sellcey@cavium.com 2017-08-15  Steve Ellcey   * sysdeps/unix/sysv/linux/aarch64/makecontext.c (__makecontext): Use pointer to uint64_t instead of long int for sp. diff --git a/sysdeps/unix/sysv/linux/aarch64/makecontext.c b/sysdeps/unix/sysv/linux/aarch64/makecontext.c index f510f48..8e52b5d 100644 --- a/sysdeps/unix/sysv/linux/aarch64/makecontext.c +++ b/sysdeps/unix/sysv/linux/aarch64/makecontext.c @@ -42,18 +42,18 @@ void  __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)  {    extern void __startcontext (void); -  unsigned long int *sp; +  uint64_t *sp;    va_list ap;    int i;   -  sp = (unsigned long int *) +  sp = (uint64_t *)      ((uintptr_t) ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);      /* Allocate stack arguments.  */    sp -= argc < 8 ? 0 : argc - 8;      /* Keep the stack aligned.  */ -  sp = (unsigned long int *) (((uintptr_t) sp) & -16L); +  sp = (uint64_t *) (((uintptr_t) sp) & -16L);      ucp->uc_mcontext.regs[19] = (uintptr_t) ucp->uc_link;    ucp->uc_mcontext.sp = (uintptr_t) sp; @@ -66,7 +66,7 @@ __makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)      if (i < 8)        ucp->uc_mcontext.regs[i] = va_arg (ap, unsigned long int);      else -      sp[i - 8] = va_arg (ap, unsigned long int); +      sp[i - 8] = va_arg (ap, uint64_t);      va_end (ap);  }