From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161659AbcFBTTq (ORCPT ); Thu, 2 Jun 2016 15:19:46 -0400 Received: from mail-by2on0066.outbound.protection.outlook.com ([207.46.100.66]:7583 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932378AbcFBTTl (ORCPT ); Thu, 2 Jun 2016 15:19:41 -0400 Authentication-Results: arndb.de; dkim=none (message not signed) header.d=none;arndb.de; dmarc=none action=none header.from=caviumnetworks.com; Date: Thu, 2 Jun 2016 22:03:44 +0300 From: Yury Norov To: , , , , , , , CC: , , , , , , , , , , , , , , Subject: Re: [PATCH v6 00/21] ILP32 for ARM64 Message-ID: <20160602190344.GA24533@yury-N73SV> References: <1464048292-30136-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1464048292-30136-1-git-send-email-ynorov@caviumnetworks.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-Originating-IP: [50.233.148.158] X-ClientProxiedBy: SN1PR10CA0027.namprd10.prod.outlook.com (10.162.255.165) To BN4PR07MB2225.namprd07.prod.outlook.com (10.164.63.143) X-MS-Office365-Filtering-Correlation-Id: 12e6788e-2555-457a-5bd6-08d38b18a0ec X-Microsoft-Exchange-Diagnostics: 1;BN4PR07MB2225;2:s1ewIA46APBlZ3KVO4h54dF/u9SYIF8aKBtp+d9DE9Je1tX6KTVPUR0CAK6jAn0kLsOJsm2fKkqREg8eni4uubMoRTaFyeJhHDpp3/HUqxFEs7VrDgx2bcIw0TTjUeF7fmubdHhjUE/+dVh+opAXD4kTilQGviOkEyB7XKagmXMRq0NoVuGTZiRWeFrccB55;3:JUIFERjzawdRIciBLtUs5TwuAkwMy1ViUQqUj+AhtfdXz00nFtWVIp/l1ILHR3PkuBIpMYz6WfzUx0Cx1aoYQggQB/qcOPxxHqq2ULDvcejggUJjq6X8kUK4/TBJKCEm;25:K4ijZLdkrzdLyVhVmQgrSS+3I0DpsgXJuGLnPfxsvlxZQERZhzxH1GEzgJXaJYioXrT5bI+qGacBH3T1DdaupF1iOJH3f91usvS92p3HWLfXVnqpyqtdl6MlFsz4eQsxy+MEmY5xl9pDTor8C78fvEkVFaXEw1HNqfn0vwutjbchPQW/AOr+jnn92f7g6J/1sb82LmF2yTS94IrePJjYLWwzqAnAFS9VbbvM99aqAA97E/vZXcbMS1hAqxc21OD13ilhaHz+/G3Ko71OZ31w1E6O4+z7SZs6DbbAsscnPvlZ2AszbPzgsIj/Fd6GJE0gZXlPmHk57wRaGCkmAWLpqoM6KcMygdc6f3QTNBOLy4QHvRMMV/kf0g/CHq6on+36zK0tddam0dqcjVV3TzwomCliMe0JUuQulEoVUBEd6VQ= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN4PR07MB2225; X-Microsoft-Exchange-Diagnostics: 1;BN4PR07MB2225;20:BM2ofC3JEUfTBYfRKtDYX7xFcm4+GaXXPFv8PbLviBbkVeqfxNJbkYQng1fa3rBWg50Ky0bGJzhVLS7SpDA5g6S+vo/+k9RdNtNLF5L9RMuescxtJ60MGlnOWag9yi8SBrQzk+E7GMjerTGGN1TX4d7KfSGtRSFBFDvkxqhdChVJxb526xLI4wXC38oJt5WeKwAOnhJta3UagGv73fip69iJflHq3fNCx/2WqWSgSIfivVDrgNQNotwxf5GTz075FJuZ+fS7DLLy2FxV0GQbzbVINAZovvRA0IIq+R6WgzGu9BJ8faCmkmoBprxAj1nUO2SDcPm6egNjTukF1HOkR3r8utsNpdUeDZuL7DJ5RNda9BMxGd8SCtazEm+CDSqfay3cOXF64EFcNTu/KXAobEZP17gJkCyaEPET/81apafjHP2xznV4YiNfJfU8ZYDyFkMPua3tDkMaxfj/S8E+6Z7VJWAViefjt9ugF/n5MkLpEv4NULkQwer6iWnV83twrJU6dGGisiVIihC5zIxe0KMY4T1U5mEW4Co1Dfwim+Yz5dvqEQn6OI0lTOIyKcek6CQHlzRV9Jo9ljlJENWkGkGywul+AdR3k+jWgiM5LcY= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(278428928389397)(166708455590820); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:BN4PR07MB2225;BCL:0;PCL:0;RULEID:;SRVR:BN4PR07MB2225; X-Microsoft-Exchange-Diagnostics: 1;BN4PR07MB2225;4:6ek0G7gMty+34VhQYTNtMC2cXC4UR3g/5PYEgqOsyTm+Unh4IaAOLgK+UYZbFYsoGipEdDywXIAumUVWtjoDHFYa8ZYrZEDdth5d/7sabiNUTJBph/nWRxiXwrB8I734u2kUqNn4cR+krNuykTP073hT6MXi0QCr+DXYcD5y2rPzr4H24JysEWxsjSbGoZGjoFrQs1XlxbRHBPEfck5zWGiN6tahrzTb121mSeI0nCSaw/kJTsXYjCrC6cA3/i99fdBMh0c+h4qlw4SWwVBj23G8lrDD8y++pgux4kTwUEJvHF+Cai7JQjOpKkV/fK6Tjjjo9Ai8C0lKQVb8ZlCeARDE2FnsGUbcJ6dKPXCume8sReTH+jPqUO+e3g6Ii3FC8ZLhGZEWZVk9VG3hOUxVZ8u5z4PLaBniui7sKTMVHyADgdkZia5h0HRQaXeU4t8h X-Forefront-PRVS: 0961DF5286 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6069001)(24454002)(46406003)(23726003)(1076002)(54356999)(76176999)(19580395003)(50986999)(50466002)(42186005)(2950100001)(76506005)(5008740100001)(77096005)(586003)(6116002)(33656002)(15975445007)(83506001)(3846002)(2201001)(189998001)(9686002)(66066001)(97756001)(92566002)(47776003)(8676002)(4326007)(5004730100002)(5001770100001)(4001350100001)(33716001)(2906002)(81166006)(2101003);DIR:OUT;SFP:1101;SCL:1;SRVR:BN4PR07MB2225;H:localhost;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BN4PR07MB2225;23:RbjjuSZjOO3P/dggkHebsh22I/QE6WTCtfxlXsZAX?= =?us-ascii?Q?7/XX/lseoqZpwVU0+1+o4pVDXoHY8zNRbuPkRrln2Zy2/qlY3bA2C62Jq8Fr?= =?us-ascii?Q?lbEdPp8e41//gKgdyI0Fu1Cj+o/6lDHO6h/+xMgsOYrEjl3MXkx5/3LogZO0?= =?us-ascii?Q?ZeBZe+qNRKoGW5mZJAH6sza2KWk/4tpIEFFGAzFpm9VXU2ORUhy/VJcHGAoh?= =?us-ascii?Q?OIzTHsokHrlYAALJvXUeiaF6NrMi3YhgPCnZnm0IU0jJulPo3ShgL767MufA?= =?us-ascii?Q?CMwGdBenDbhZfnlRVNVfbU74vaHfCnHSPZX5sIxsu4xLZaRAwB1QS/a7zu5S?= =?us-ascii?Q?KqLNy5Xyd0zvdAIcLGElvQsPQMK6TsbrOiDBwR0zMOUB+SuWUA1BbNzu7QXz?= =?us-ascii?Q?QdxfamWkW76yQh5xbzCmm61RA3a/uuHnnSxTDctxPQW9Y0GWkis3l6LfKuHO?= =?us-ascii?Q?5iRCYpdhIUYSxKL21Rg4pVwf+USdjWYLgZfjpjOyF0HdJnSw9dWuoAYny3FY?= =?us-ascii?Q?SRFB9j7QUWCNZD91IarzCMUbaVsStbjXdmVysYg7ht5LlHWspm+RfOgy3PuI?= =?us-ascii?Q?Eg5T3sNwzrvCLLTDxTWyOLHLBqwm/ld7HuGvspCF8G14q4cuOm5G3no12hQl?= =?us-ascii?Q?ZxVa3O/WW9/sOwrJX8A9v3Wxhap9Gv1rachhZSeDg+TdgsmTq3l31xx0x1Zv?= =?us-ascii?Q?e62DmN7jQml/tkYV7T5UjLGavVyNAqt/r6wbfC91VsL3l/IZbx/rYd5kQtzG?= =?us-ascii?Q?/xZJ4sjTEbhx8qTEvwnA+Avs0Avx3wAFM6vWrbltLKFUC/7ayNtjA+PICIqt?= =?us-ascii?Q?ZaZh1eMG5VjrDq24Dyfvgam4InGsFqDRHifjed6h3AYbXochvsy/POEFboTl?= =?us-ascii?Q?MzUowCzB1qJmARfoLtYWoLF7x06TDmQl5cUXzdRaUZfuqs1WKRh6Y+ucsoZt?= =?us-ascii?Q?XFIDWHPc/zw84ZbIHcRJDdbpyUYQcAMqVx6LBHoW9kMUZTTcvi58zdPJcSfg?= =?us-ascii?Q?7f0YfA8gB2wakY+lNhYTDEdO+I1I+o/jedoOJF/Q9REUQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1;BN4PR07MB2225;5:3wKVoKZQlBtCVNPcAzZsEpVBUrJ141axQuEcrSCnuAFGU0dCiuWSFofk9gZe6CWCS3St7ZHtg2mZ6DrztQP/G1rO2SThvi+0RlfGb9CtQcEIG3Tvb0Xwqtg4ohtWXFhZwwx3KbDGOA02Kabt24EVjA==;24:CeznWEf171EGEjOi29xXRXNToDUF9l1IKVcyYZ9mPJaMuphY4c4KiSI4gcZEj+rSMnaCSxX1tRL9/TTjn3teKoHq2Lt26PX9PBUuheoXNb0=;7:vd/mRWgCcLOd2Lvfvd92Kqja07VDskwc28/anAxsZ4oxed8oZ+nO6n6/v+2sLUBW0tm+2mZaJblnwANc+BbJpfpIVzfB4cll93M+JtGkGwAgyQXLMtivaxq+F1VFW5WrksX5RLjyPib9+j0RThi06/DIZVBcbPgoaaDyGJT3ADrnnHQYpotO6jru99F9plMm SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jun 2016 19:03:48.2036 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN4PR07MB2225 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, May 24, 2016 at 03:04:29AM +0300, Yury Norov wrote: > This series enables aarch64 with ilp32 mode, and as supporting work, > introduces compat wrappers based on s390 solution, and also introduces > ARCH_32BIT_OFF_T configuration option that is enabled for existing > 32-bit architectures but disabled for new arches (so 64-bit off_t is > is used by new userspace). > > This version is based on kernel v4.6. > It works with glibc-2.23, and tested with LTP. > > It was tested on QEMU and ThunderX machines. No major differences found. > > This is not RFC anymore, because ILP32 is now tested in big-endian mode; > signals, vDSO and other subsystems are tested, and look working > > v3: https://lkml.org/lkml/2014/9/3/704 > v4: https://lkml.org/lkml/2015/4/13/691 > v5: https://lkml.org/lkml/2015/9/29/911 > v6: ABI reworked significantly; > - syscall input arguments are deloused with compat wrappers; > - vDSO is now working for both BE and LE; > - signal subsystem is reworked to handle signal context properly; > - binfmt_elf is reworked, and now most of places where execution mode > should be detected, are handled statically; > - many other less-important fixes. > > ILP32 glibc branch is available here: > https://github.com/norov/glibc/tree/ilp32-2.23 > So for AARCH64/ILP32 we turn next types to 64-bit in glibc: #define __INO_T_TYPE __UQUAD_TYPE #define __OFF_T_TYPE __SQUAD_TYPE #define __BLKCNT_T_TYPE __SQUAD_TYPE #define __FSBLKCNT_T_TYPE __UQUAD_TYPE #define __FSFILCNT_T_TYPE __UQUAD_TYPE And define: # define __INO_T_MATCHES_INO64_T 1 # define __OFF_T_MATCHES_OFF64_T 1 # define __BLKCNT_T_MATCHES_BLKCNT64_T 1 # define __FSBLKCNT_T_MATCHES_FSBLKCNT64_T 1 # define __FSFILCNT_T_MATCHES_FSFILCNT_T 1 If so, stat and statfs structures for ilp32 are turning the same as for lp64. And so we'd handle related syscalls with native lp64 handlers (wrapped, to zero top halves) in kernel. And we don't need stat64 for ilp32. Did I miss something? Is everything correct? OFF_T is turned to 64-bit quite smoothly, others make applications crash with segfault. Now I'm in deep debugging. https://github.com/norov/glibc/commits/ilp32-dev https://github.com/norov/linux/commits/ilp32 Yury. From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yury Norov Subject: Re: [PATCH v6 00/21] ILP32 for ARM64 Date: Thu, 2 Jun 2016 22:03:44 +0300 Message-ID: <20160602190344.GA24533@yury-N73SV> References: <1464048292-30136-1-git-send-email-ynorov@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1464048292-30136-1-git-send-email-ynorov@caviumnetworks.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org List-Archive: List-Post: To: arnd@arndb.de, catalin.marinas@arm.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-arch@vger.kernel.org, linux-s390@vger.kernel.org, libc-alpha@sourceware.org Cc: kilobyte@angband.pl, pinskia@gmail.com, szabolcs.nagy@arm.com, Nathan_Lynch@mentor.com, heiko.carstens@de.ibm.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, klimov.linux@gmail.com, broonie@kernel.org, bamvor.zhangjian@huawei.com, schwidefsky@de.ibm.com, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com, joseph@codesourcery.com, christoph.muellner@theobroma-systems.com List-ID: On Tue, May 24, 2016 at 03:04:29AM +0300, Yury Norov wrote: > This series enables aarch64 with ilp32 mode, and as supporting work, > introduces compat wrappers based on s390 solution, and also introduces > ARCH_32BIT_OFF_T configuration option that is enabled for existing > 32-bit architectures but disabled for new arches (so 64-bit off_t is > is used by new userspace). > > This version is based on kernel v4.6. > It works with glibc-2.23, and tested with LTP. > > It was tested on QEMU and ThunderX machines. No major differences found. > > This is not RFC anymore, because ILP32 is now tested in big-endian mode; > signals, vDSO and other subsystems are tested, and look working > > v3: https://lkml.org/lkml/2014/9/3/704 > v4: https://lkml.org/lkml/2015/4/13/691 > v5: https://lkml.org/lkml/2015/9/29/911 > v6: ABI reworked significantly; > - syscall input arguments are deloused with compat wrappers; > - vDSO is now working for both BE and LE; > - signal subsystem is reworked to handle signal context properly; > - binfmt_elf is reworked, and now most of places where execution mode > should be detected, are handled statically; > - many other less-important fixes. > > ILP32 glibc branch is available here: > https://github.com/norov/glibc/tree/ilp32-2.23 > So for AARCH64/ILP32 we turn next types to 64-bit in glibc: #define __INO_T_TYPE __UQUAD_TYPE #define __OFF_T_TYPE __SQUAD_TYPE #define __BLKCNT_T_TYPE __SQUAD_TYPE #define __FSBLKCNT_T_TYPE __UQUAD_TYPE #define __FSFILCNT_T_TYPE __UQUAD_TYPE And define: # define __INO_T_MATCHES_INO64_T 1 # define __OFF_T_MATCHES_OFF64_T 1 # define __BLKCNT_T_MATCHES_BLKCNT64_T 1 # define __FSBLKCNT_T_MATCHES_FSBLKCNT64_T 1 # define __FSFILCNT_T_MATCHES_FSFILCNT_T 1 If so, stat and statfs structures for ilp32 are turning the same as for lp64. And so we'd handle related syscalls with native lp64 handlers (wrapped, to zero top halves) in kernel. And we don't need stat64 for ilp32. Did I miss something? Is everything correct? OFF_T is turned to 64-bit quite smoothly, others make applications crash with segfault. Now I'm in deep debugging. https://github.com/norov/glibc/commits/ilp32-dev https://github.com/norov/linux/commits/ilp32 Yury. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-by2on0066.outbound.protection.outlook.com ([207.46.100.66]:7583 "EHLO na01-by2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932378AbcFBTTl (ORCPT ); Thu, 2 Jun 2016 15:19:41 -0400 Date: Thu, 2 Jun 2016 22:03:44 +0300 From: Yury Norov Subject: Re: [PATCH v6 00/21] ILP32 for ARM64 Message-ID: <20160602190344.GA24533@yury-N73SV> References: <1464048292-30136-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline In-Reply-To: <1464048292-30136-1-git-send-email-ynorov@caviumnetworks.com> Sender: linux-arch-owner@vger.kernel.org List-ID: To: arnd@arndb.de, catalin.marinas@arm.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, linux-arch@vger.kernel.org, linux-s390@vger.kernel.org, libc-alpha@sourceware.org Cc: schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com, pinskia@gmail.com, broonie@kernel.org, joseph@codesourcery.com, christoph.muellner@theobroma-systems.com, bamvor.zhangjian@huawei.com, szabolcs.nagy@arm.com, klimov.linux@gmail.com, Nathan_Lynch@mentor.com, agraf@suse.de, Prasun.Kapoor@caviumnetworks.com, kilobyte@angband.pl, geert@linux-m68k.org, philipp.tomsich@theobroma-systems.com Message-ID: <20160602190344.hZbW5zOaNEHbqYO60FA_J8ci01hQE3Q7ito8hgh_GB8@z> On Tue, May 24, 2016 at 03:04:29AM +0300, Yury Norov wrote: > This series enables aarch64 with ilp32 mode, and as supporting work, > introduces compat wrappers based on s390 solution, and also introduces > ARCH_32BIT_OFF_T configuration option that is enabled for existing > 32-bit architectures but disabled for new arches (so 64-bit off_t is > is used by new userspace). > > This version is based on kernel v4.6. > It works with glibc-2.23, and tested with LTP. > > It was tested on QEMU and ThunderX machines. No major differences found. > > This is not RFC anymore, because ILP32 is now tested in big-endian mode; > signals, vDSO and other subsystems are tested, and look working > > v3: https://lkml.org/lkml/2014/9/3/704 > v4: https://lkml.org/lkml/2015/4/13/691 > v5: https://lkml.org/lkml/2015/9/29/911 > v6: ABI reworked significantly; > - syscall input arguments are deloused with compat wrappers; > - vDSO is now working for both BE and LE; > - signal subsystem is reworked to handle signal context properly; > - binfmt_elf is reworked, and now most of places where execution mode > should be detected, are handled statically; > - many other less-important fixes. > > ILP32 glibc branch is available here: > https://github.com/norov/glibc/tree/ilp32-2.23 > So for AARCH64/ILP32 we turn next types to 64-bit in glibc: #define __INO_T_TYPE __UQUAD_TYPE #define __OFF_T_TYPE __SQUAD_TYPE #define __BLKCNT_T_TYPE __SQUAD_TYPE #define __FSBLKCNT_T_TYPE __UQUAD_TYPE #define __FSFILCNT_T_TYPE __UQUAD_TYPE And define: # define __INO_T_MATCHES_INO64_T 1 # define __OFF_T_MATCHES_OFF64_T 1 # define __BLKCNT_T_MATCHES_BLKCNT64_T 1 # define __FSBLKCNT_T_MATCHES_FSBLKCNT64_T 1 # define __FSFILCNT_T_MATCHES_FSFILCNT_T 1 If so, stat and statfs structures for ilp32 are turning the same as for lp64. And so we'd handle related syscalls with native lp64 handlers (wrapped, to zero top halves) in kernel. And we don't need stat64 for ilp32. Did I miss something? Is everything correct? OFF_T is turned to 64-bit quite smoothly, others make applications crash with segfault. Now I'm in deep debugging. https://github.com/norov/glibc/commits/ilp32-dev https://github.com/norov/linux/commits/ilp32 Yury. From mboxrd@z Thu Jan 1 00:00:00 1970 From: ynorov@caviumnetworks.com (Yury Norov) Date: Thu, 2 Jun 2016 22:03:44 +0300 Subject: [PATCH v6 00/21] ILP32 for ARM64 In-Reply-To: <1464048292-30136-1-git-send-email-ynorov@caviumnetworks.com> References: <1464048292-30136-1-git-send-email-ynorov@caviumnetworks.com> Message-ID: <20160602190344.GA24533@yury-N73SV> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Tue, May 24, 2016 at 03:04:29AM +0300, Yury Norov wrote: > This series enables aarch64 with ilp32 mode, and as supporting work, > introduces compat wrappers based on s390 solution, and also introduces > ARCH_32BIT_OFF_T configuration option that is enabled for existing > 32-bit architectures but disabled for new arches (so 64-bit off_t is > is used by new userspace). > > This version is based on kernel v4.6. > It works with glibc-2.23, and tested with LTP. > > It was tested on QEMU and ThunderX machines. No major differences found. > > This is not RFC anymore, because ILP32 is now tested in big-endian mode; > signals, vDSO and other subsystems are tested, and look working > > v3: https://lkml.org/lkml/2014/9/3/704 > v4: https://lkml.org/lkml/2015/4/13/691 > v5: https://lkml.org/lkml/2015/9/29/911 > v6: ABI reworked significantly; > - syscall input arguments are deloused with compat wrappers; > - vDSO is now working for both BE and LE; > - signal subsystem is reworked to handle signal context properly; > - binfmt_elf is reworked, and now most of places where execution mode > should be detected, are handled statically; > - many other less-important fixes. > > ILP32 glibc branch is available here: > https://github.com/norov/glibc/tree/ilp32-2.23 > So for AARCH64/ILP32 we turn next types to 64-bit in glibc: #define __INO_T_TYPE __UQUAD_TYPE #define __OFF_T_TYPE __SQUAD_TYPE #define __BLKCNT_T_TYPE __SQUAD_TYPE #define __FSBLKCNT_T_TYPE __UQUAD_TYPE #define __FSFILCNT_T_TYPE __UQUAD_TYPE And define: # define __INO_T_MATCHES_INO64_T 1 # define __OFF_T_MATCHES_OFF64_T 1 # define __BLKCNT_T_MATCHES_BLKCNT64_T 1 # define __FSBLKCNT_T_MATCHES_FSBLKCNT64_T 1 # define __FSFILCNT_T_MATCHES_FSFILCNT_T 1 If so, stat and statfs structures for ilp32 are turning the same as for lp64. And so we'd handle related syscalls with native lp64 handlers (wrapped, to zero top halves) in kernel. And we don't need stat64 for ilp32. Did I miss something? Is everything correct? OFF_T is turned to 64-bit quite smoothly, others make applications crash with segfault. Now I'm in deep debugging. https://github.com/norov/glibc/commits/ilp32-dev https://github.com/norov/linux/commits/ilp32 Yury.