From patchwork Wed Mar 1 19:19:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 9599019 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id EF93760453 for ; Wed, 1 Mar 2017 19:25:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D94382854E for ; Wed, 1 Mar 2017 19:25:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CC39128558; Wed, 1 Mar 2017 19:25:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=2.0 tests=BAD_ENC_HEADER,BAYES_00, DKIM_SIGNED,DKIM_VALID autolearn=unavailable version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [65.50.211.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 3F8612854E for ; Wed, 1 Mar 2017 19:25:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=3N3F3CjQpPTrMsLkdBAYIuz9mXlGGNT8FDvzom9Qni8=; b=oSjQ4oc0vgJw7X oqinJ8BHOKshQBWdvSzVxHQFWNEAWCM9gLCHe9xBe9GVvaPcshBxK2Hwr+8LkDFUbN71MhuN61hpe cnyAmpFyOW7zBsu5TPOKvZHrt+HB/hyuPwDx7MSUTj9+MP5X5MdfuyMi5WmIX9SK038BJDDZxDi9G MzPBmq75UG9cj2hNbmc0/R/aXM2PBbkJb2yy94fQxWqnltpvEElAlheczkVsDlz4+buNzG2S3Yw92 xS4aSTDK05c1h6d2ppmrxkAk9zgXa4pbatU9Jt/QmHxD/sE+0pPc7a+d4pu9gOf3JODuwdL6hlxzV awXSgPvHDndi+8m4dEsA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.87 #1 (Red Hat Linux)) id 1cj9sr-0007iT-G0; Wed, 01 Mar 2017 19:25:57 +0000 Received: from merlin.infradead.org ([2001:4978:20e::2]) by bombadil.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1cj9pR-0002O7-QA for linux-arm-kernel@bombadil.infradead.org; Wed, 01 Mar 2017 19:22:25 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=merlin.20170209; h=Content-Type:MIME-Version:References: In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=KkhS2RMloPk8R/kS34iFqkZ+mXrzTe/whapE529Hit4=; b=lemk/5VoE4MqdhfMCW4SgI4Dh XDrLHc1DAgAIsfb8AIuscSSSo40dtC8bdmO6KIG/Xau+wlPDu02bk3vZdGLtSIqy1abvqitlrHgd4 qqbFhtlJ/DbfRr6wOy7LzTsGrI0onaYu1oTZsFOANuZEkhm8MVg18oTdN7amW6nxL0NRhSjYj/Oy9 RRgZrNNO7njpvfC2X3nwgTeSmpSPa6ckHue8CZcCNJmtFQNslWTDE4LE69fRpPjDKfKeKOC5rSt54 1/DI+obfsWLYQ4SirYGxVH/l2ZPNiWqChu4Q7oRyE1p2WyhjDJc6osVlDm5eqmUhwcbGY4tbWKeK1 i8RZNdzSw==; Received: from mail-co1nam03on0083.outbound.protection.outlook.com ([104.47.40.83] helo=NAM03-CO1-obe.outbound.protection.outlook.com) by merlin.infradead.org with esmtps (Exim 4.87 #1 (Red Hat Linux)) id 1cj9pQ-0002c4-8H for linux-arm-kernel@lists.infradead.org; Wed, 01 Mar 2017 19:22:25 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-caviumnetworks-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=KkhS2RMloPk8R/kS34iFqkZ+mXrzTe/whapE529Hit4=; b=ZsIanncnQ2BBMlzPh89WsbkCofdSaWh1lASVG3gArtlp9OXTGP3CDnNkGlgKH9mouxJP2AuOCGMAQQCgDccI6FzrZ1Y5r+ZYptYPqGp/ORu+aky5RuCJ1/KaivH6hqNrQCbjImYJMxhjYG+fU/f9U020i9FFbbOxTG0uqlUFY2g= Authentication-Results: lists.infradead.org; dkim=none (message not signed) header.d=none; lists.infradead.org; dmarc=none action=none header.from=caviumnetworks.com; Received: from localhost (27.97.135.110) by DM3PR07MB2249.namprd07.prod.outlook.com (10.164.33.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.919.13; Wed, 1 Mar 2017 19:22:01 +0000 From: Yury Norov To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, Arnd Bergmann , Catalin Marinas Subject: [PATCH 12/20] arm64: ilp32: introduce binfmt_ilp32.c Date: Thu, 2 Mar 2017 00:49:20 +0530 Message-Id: <1488395968-14313-13-git-send-email-ynorov@caviumnetworks.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1488395968-14313-1-git-send-email-ynorov@caviumnetworks.com> References: <1488395968-14313-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [27.97.135.110] X-ClientProxiedBy: HE1PR02CA0072.eurprd02.prod.outlook.com (10.163.170.40) To DM3PR07MB2249.namprd07.prod.outlook.com (10.164.33.147) X-MS-Office365-Filtering-Correlation-Id: bb731659-6225-4c88-060f-08d460d83d45 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:DM3PR07MB2249; X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2249; 3:Un0BvK2YQojwcYSUrRZMQH702TRFmeZUzn3d2sdeqYAiyoDGNJ5sUSVmcfIHSSy39R53LcjYbuQeTgbbVJ6iHyhSI1O6NiYeE9nquiFDpHVN+L5U5KBzMaL1jN8MZ7djcK63YvbD+mcEmzsDHekER1NkEwcr+FOH0aPvfB9jcxM8OxiEORwvP+jOHwrH8yD+TZMBZVrl33ceNglSq4EfLKqvtJf/XVnRM8Sh7rMpW0iQlhNEpalsKxTGT31ZLGyVkwyhI/NFNZ2d0pnlVoWLYA==; 25:7mDUmDOQC/+NBtq9Xgr/ufKXIjG1v9bneyNTDFBOp4Evc5AN4yerxYWIQvJQnpB8MYIkzDxhsHvWcZEKpikTaOS0KGUKNlahCUDdp/0NaEdWmbi/MyAgR3Umcd2egMpTVXsBnOqN0CR5cszLzhZG4x2aTwqDQB7QgKeoqPZ3EAtE8yzDGMxEwlbDCzbyI95/pXu3XiLsm86ig/rk4MmHbM8ouc0uBa9TPK7kTR0aYeU6f/UfVKcj2oyVc52FUtS21ofTAAHy+ORJ/yhr3kSKTsgcLnl1qG7FVufKdJz+U0lrlIG2h4fNHcnUxGnWNkHGR7QiTdsMlm5BGH1P7E9fDsRzhhHf+OJrdyv0nLAO7vgEgQkxiGBl+cZ6P4XAUkycvf372HMAlc+pp3g4fu/AIE8Ayt+P0XmH6y+Ammmfdf0ILlmBqaOtC5zwMSXQoz8iqoh4vF1F3h8vZausC53QSQ== X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2249; 31:UGblbdMxwo0SJ0Lq9aSYo6Wm4sH7RzY/l4xa3YDCjuR/Mtd6t82mq6PpDldcT8heXGXnglmZEIMHPQM6DT+ysL8z73HzUH24FzSoUZAScOtpCRJtf0vvItj/nSUNJ8xv1P0P4Il1IAHYIvkyA9gL7SEttQC8CsP9PcZ1xINDYp7NhPRP900BG12iWUtaEZPKj1nrU8rwSbYvVrTnmvjbmuIwiuxzNvfQNnYc9dPj3vI=; 20:X7bxu/zwJO/ZKERmEViDouhHY7lCe2kSKZfVwarleEjEtNtX/S01AfSfALOPxgbDYuqrrri26OQR7DHSfn0sUmAjeKuZ6Ia0gFWymrGXVCUv4PvLUU1wi/BugE9SVQWXS4QMnlXE7iWeqSbftIZMQ7SFIEwdVaACJpVbhz2iTj+Fc2OLUmkv3OQw2itB0UW1Jgo/ePZc4JPbWHWq72NxuDC9Nn3zJrDeYnp9H4eMDaZwyPeqy/+s0+zjKUCP7sd17NQn33DhPalck/1XxU2UsBz3wj7kFuy8quKMiq5erZHtbQ79ZyuzcVnMknNNtGDaze6xHs0Xlr12gn9UZYKME3jJ1ynJakrKlDloSul9m9BF+nbURvRBwByLjEy6Vy+6qQKa3Tcx56DOI49N2nDtyl1IL7RycDIswUywc0YlQCpCN1Ukx4vPbR/fnKaH5Qfg4z23B3lXDyKiZ5j3VCdqQNjXi0t71bv3EV74jJgFSpTDWAKUDPmFx7ppO0qOZxXQWdkDe2LkJ5sL4GqqAwTTCzEVUJzvkcBeE9Iv7NYasad1k0tCR7FuDkCR/9p5C8pznL2/gwKfsSQ3X+c5SKJ3EXiONmrsgOuU4EpIv8EyxWM= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(20161123555025)(20161123564025)(20161123558025)(20161123562025)(20161123560025)(6072148); SRVR:DM3PR07MB2249; BCL:0; PCL:0; RULEID:; SRVR:DM3PR07MB2249; X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2249; 4:wHBB4SCVrdp/Oq0dVO8xVk/s/tCEjtgQfyyxUuQEwUecuaMxyIG/nuVd40VozYkf6REosZBZQqUiBF5zcmLmoYUnna850ZcfGxMXyQuWBIJmQqGNCbpncw8EfXEISpVmqvZTdWljwRWyUR2BxgdDJDdh+7anWuhOwzT9i44DOHwTt7p2Y0+O3WSRhEByhPHVEEw5qEu5ZYQD5qcH4NzoPtn+97h9zbqxhuM8TUTDF00NoGrXGYf+oMpVTI6h6ucEpxaErSGA+j6W6tn6O8Cdw56bOmzdnZU+Fl4zgt/6X+aX7mAJFCbj2kez8L3YE1FeJC1KR8fCHDGNp993rxEv8Uw1UjVEbwwF7p1NcsSqJ+cAVsdpegKaw/FFkhuPDNcv2/GGC29StfuhllbNoLtIu6DpKcyCKl4n1pOWWRcEUX3MldmQvPcnigjmW88tnE0eSkZ+tVyGGSxSQdzBZMlbDwVav9+StVbIsTn4Qa0XIyw7tj89vcw8sy50Rzc4jHdm5PlhVMWbUkgQAZyLll+DEBh4VHBxWXhZ6ohHLjGBvEJUTmQdGmr9/njlwqkaf2kMRaEK3FYOUYDBmVS0GbGOYRFFRpj/43j8Cr+u8qdOj+U= X-Forefront-PRVS: 0233768B38 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(7916002)(39450400003)(76506005)(92566002)(50226002)(6496005)(7416002)(54906002)(5660300001)(8676002)(5009440100003)(7736002)(4326008)(81166006)(305945005)(6486002)(66066001)(189998001)(76176999)(48376002)(5003940100001)(42186005)(2906002)(6666003)(2950100002)(6116002)(50466002)(50986999)(36756003)(47776003)(3846002)(33646002)(53936002)(25786008)(38730400002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM3PR07MB2249; H:localhost; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM3PR07MB2249; 23:H6xf8TCKFOD6IHJLV5+YuKNkKs463Vnu4r64d4klb?= =?us-ascii?Q?OMMQ1Ti2DjhLyww3G2ZffzwPgcOiXPQeCfq42n/Qeqadrmu+g81sTUj1q8XZ?= =?us-ascii?Q?h36N++bHdp5kmgcWtwBTmGEUkgR35PZILwt5He+gvcbboJ5Aol2IEPtw3BYg?= =?us-ascii?Q?uQeA7jmCSQlQpy8QIQYKBCn+q3ISP05T/ZNmjz5Nj1oeHTtf1lD9VnX6+OvA?= =?us-ascii?Q?1Yqal1OF6j2oP4bd3QwCyakodJVC0zqoSmK6OFVOvjoNTPsJCWED5eMUjqHF?= =?us-ascii?Q?onCgC01/1SBuIGLVwTE/0lt70G9BdHkOuscwJz1fvjING8oaR8mseyhPjZGz?= =?us-ascii?Q?Z65iakINwliNbYZKH2Zr6yqxHeNK1Oj9xDeFRAqHq1z/jWltcrIY2xjDI6/W?= =?us-ascii?Q?bdHeR945dnYrLF4R5aPxsFGn90w2r+UwucSh0AJ0bxCG+wSNCObZCHqcGSur?= =?us-ascii?Q?73suywiZcoU81EBL+ge4l80oytF2hYwZ4SORiQhwgD6TPXcWUGUc4niU9/Ex?= =?us-ascii?Q?s6FwSSIFf5hmC84Lr1CzA3Op3wQKrTOlpdW68wJ6XBeCVIDMnvMxrLqDL5i2?= =?us-ascii?Q?i4Aab6zxJQb6+5IhJCKRVRSpVI7E7qxnBg3l2DbD6a6371e8SDM/FSbtQf99?= =?us-ascii?Q?xFH80cXK5dF/hAJ9Hf3P+MzhTVcMZWTGZBqh0NV93TSG+hCGl4cbOwb+MEIf?= =?us-ascii?Q?Uc+NGb2is78QCHdmBv4rvHmM04xLOJKJsNSoPCjjZTcw/Gme54KPSeYHam4o?= =?us-ascii?Q?9N9/bGQPeAUwwLsILzVUvTyvgP5BE6V1dJAzMHGH71159De8U3KFlv5+V5w/?= =?us-ascii?Q?C+PEFVnJQuxir4+a0LZR1cvod4gjJagmcUa7glxEDEnp2l+M/ZgvkR6yRvD8?= =?us-ascii?Q?htLOwKfCtsOdocWPCej+J3V10bZ/eKRktz3bt2UkJOqY9pfdVfZ/dYuFAKDm?= =?us-ascii?Q?A3nVUipDyBNDg43P+Hys/rMx9RkttHZkKx3+zhJGQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2249; 6:fIezW3kb2P+xOXC3oiFReTWWY9WH3DR4cfnXAxAHBE9YUygDuxFU23J+WYP2ywjTRAg8ztO1imDvN7ent4+YckLvPM+jjeIrKSZx/Y/m3B4q7ktraMPlA1sEDtryi4TFZ6XkrWmBwzCe0sB9+xSrNa2nWjAj+QeaTDzkNx4EcCfjWfu05mhdNSRsLQUPdswuW1A6e36bfS+VnV5zuNqQt0rvIj3O+EGnjjlt847/sA+qH5Z37wNJuRHFowQReFi3H2v7hHpk1egN6zypbWRbpNBOUIFckYoiI5cZqn1lIabK5cxKlQ/MjSLteojCligHLqel9C4egbVdJ4u82YGjzq8tPcHcbYPa3/kdv0pY3czkpw74P9VPnYCfuBZ1gnpn5wGV23D6HciVI1vHzGS8yg==; 5:zyWLFbNRcE15pY/BuATWVzd36UQMjPRuDnHmBjJfgYu0QmrkxGdGuxSbzHZHIK5h0dy3v3m0kyqISEAapXg4BvT/sUf1+hMZtpJE408t+Js389NgK7rDfzcIQuiZSSVMIWs+nNHYYVN5+m8BH3eD7Rxi8/RNvy7hZJK07QKB8Hk=; 24:AQLKUUt3ADHg9D1rsIG30wWydlZ4Pztwl4oMPOgWDGOA6AMavL58OXXLbVwcQbBpU7p6BHjwbGs7Rzb3Uj9/dVrcXwrKHyE8g47o9TuqoKY= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM3PR07MB2249; 7:a5laB2jnK9xZYxCogZ6wg111Lv5UcntG28qd61k6PsniN2TmmAVUwvcVCgX1JHvKU3a8pruk9n4tTJBD4lD+rURMwJmt/kLoB/+n+B3eRuFVvaUf6jgLE/6TjIK/bCejgV90TOhjRA5oHzU1rcTf1zyYIIsKNiMyqr/cZ5+oIEJsoMl9wBGgXDSePxBPsP2cILBcYwPfG3TFV9K28rfJ8GK66wdaERrBN1HYJ/GgojQbldIoqNZnOIvyRDc0b5+mfb5sImX64LrHyuoq5LZMcvSHinQRypT2QD60zFzIjGMCqjPIsHsLEnZublGm23t4wynUrwgZNBrpGD9zVEV55w== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2017 19:22:01.3891 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR07MB2249 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20170301_142224_476847_7F1F1415 X-CRM114-Status: GOOD ( 12.49 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Pinski , Heiko Carstens , Chris Metcalf , Yury Norov , philipp.tomsich@theobroma-systems.com, Joseph Myers , zhouchengming1@huawei.com, Steve Ellcey , Prasun.Kapoor@caviumnetworks.com, Andreas Schwab , agraf@suse.de, szabolcs.nagy@arm.com, geert@linux-m68k.org, Adam Borowski , manuel.montezelo@gmail.com, Chris Metcalf , Andrew Pinski , linyongting@huawei.com, klimov.linux@gmail.com, broonie@kernel.org, Bamvor Zhangjian , Bamvor Jian Zhang , Maxim Kuvyrkov , Florian Weimer , Nathan_Lynch@mentor.com, Ramana Radhakrishnan , schwidefsky@de.ibm.com, davem@davemloft.net, christoph.muellner@theobroma-systems.com Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Like binfmt_elf32.c, binfmt_ilp32.c is needed to handle ILP32 binaries Signed-off-by: Yury Norov Signed-off-by: Bamvor Jian Zhang --- arch/arm64/kernel/Makefile | 1 + arch/arm64/kernel/binfmt_ilp32.c | 85 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 86 insertions(+) create mode 100644 arch/arm64/kernel/binfmt_ilp32.c diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile index aeaf474..b6f14a8 100644 --- a/arch/arm64/kernel/Makefile +++ b/arch/arm64/kernel/Makefile @@ -29,6 +29,7 @@ $(obj)/%.stub.o: $(obj)/%.o FORCE arm64-obj-$(CONFIG_AARCH32_EL0) += sys32.o kuser32.o signal32.o \ sys_compat.o entry32.o binfmt_elf32.o +arm64-obj-$(CONFIG_ARM64_ILP32) += binfmt_ilp32.o arm64-obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o entry-ftrace.o arm64-obj-$(CONFIG_MODULES) += arm64ksyms.o module.o arm64-obj-$(CONFIG_ARM64_MODULE_PLTS) += module-plts.o diff --git a/arch/arm64/kernel/binfmt_ilp32.c b/arch/arm64/kernel/binfmt_ilp32.c new file mode 100644 index 0000000..bb31325 --- /dev/null +++ b/arch/arm64/kernel/binfmt_ilp32.c @@ -0,0 +1,85 @@ +/* + * Support for ILP32 Linux/aarch64 ELF binaries. + */ +#undef CONFIG_AARCH32_EL0 +#define compat_elf_gregset_t elf_gregset_t + +#include +#include + +#undef ELF_CLASS +#define ELF_CLASS ELFCLASS32 + +#undef elfhdr +#undef elf_phdr +#undef elf_shdr +#undef elf_note +#undef elf_addr_t +#define elfhdr elf32_hdr +#define elf_phdr elf32_phdr +#define elf_shdr elf32_shdr +#define elf_note elf32_note +#define elf_addr_t Elf32_Addr + +/* + * Some data types as stored in coredump. + */ +#define user_long_t compat_long_t +#define user_siginfo_t compat_siginfo_t +#define copy_siginfo_to_user copy_siginfo_to_user32 + +/* + * The machine-dependent core note format types are defined in elfcore-compat.h, + * which requires asm/elf.h to define compat_elf_gregset_t et al. + */ +#define elf_prstatus compat_elf_prstatus +#define elf_prpsinfo compat_elf_prpsinfo + +/* AARCH64 ILP32 EABI. */ +#undef elf_check_arch +#define elf_check_arch(x) (((x)->e_machine == EM_AARCH64) \ + && (x)->e_ident[EI_CLASS] == ELFCLASS32) + +#undef SET_PERSONALITY +#define SET_PERSONALITY(ex) \ +do { \ + set_bit(TIF_32BIT, ¤t->mm->context.flags); \ + set_thread_flag(TIF_32BIT_AARCH64); \ + clear_thread_flag(TIF_32BIT); \ +} while (0) + +#undef ARCH_DLINFO +#define ARCH_DLINFO \ +do { \ + NEW_AUX_ENT(AT_SYSINFO_EHDR, \ + (elf_addr_t)(long)current->mm->context.vdso); \ +} while (0) + +#undef ELF_PLATFORM +#ifdef __AARCH64EB__ +#define ELF_PLATFORM ("aarch64_be:ilp32") +#else +#define ELF_PLATFORM ("aarch64:ilp32") +#endif + +#undef ELF_ET_DYN_BASE +#define ELF_ET_DYN_BASE COMPAT_ELF_ET_DYN_BASE + +#undef ELF_HWCAP +#undef ELF_HWCAP2 +#define ELF_HWCAP ((u32) elf_hwcap) +#define ELF_HWCAP2 ((u32) (elf_hwcap >> 32)) + +/* + * Rename a few of the symbols that binfmt_elf.c will define. + * These are all local so the names don't really matter, but it + * might make some debugging less confusing not to duplicate them. + */ +#define elf_format compat_elf_format +#define init_elf_binfmt init_compat_elf_binfmt +#define exit_elf_binfmt exit_compat_elf_binfmt + +#undef ns_to_timeval +#define ns_to_timeval ns_to_compat_timeval + +#include "../../../fs/binfmt_elf.c"