Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/638478/?format=api
{ "id": 638478, "url": "http://patchwork.ozlabs.org/api/patches/638478/?format=api", "web_url": "http://patchwork.ozlabs.org/project/glibc/patch/1466485631-3532-24-git-send-email-ynorov@caviumnetworks.com/", "project": { "id": 41, "url": "http://patchwork.ozlabs.org/api/projects/41/?format=api", "name": "GNU C Library", "link_name": "glibc", "list_id": "libc-alpha.sourceware.org", "list_email": "libc-alpha@sourceware.org", "web_url": "", "scm_url": "", "webscm_url": "", "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<1466485631-3532-24-git-send-email-ynorov@caviumnetworks.com>", "list_archive_url": null, "date": "2016-06-21T05:07:06", "name": "[22/27,AARCH64] ILP32: support stat syscall family", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "d51afc5aaf199ed5cbad27a7b187debb64120172", "submitter": { "id": 68471, "url": "http://patchwork.ozlabs.org/api/people/68471/?format=api", "name": "Yury Norov", "email": "ynorov@caviumnetworks.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/glibc/patch/1466485631-3532-24-git-send-email-ynorov@caviumnetworks.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/638478/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/638478/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<libc-alpha-return-70837-incoming=patchwork.ozlabs.org@sourceware.org>", "X-Original-To": "incoming@patchwork.ozlabs.org", "Delivered-To": [ "patchwork-incoming@bilbo.ozlabs.org", "mailing list libc-alpha@sourceware.org" ], "Received": [ "from sourceware.org (server1.sourceware.org [209.132.180.131])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256\n\tbits)) (No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3rYbYV6FHkz9s9Z\n\tfor <incoming@patchwork.ozlabs.org>;\n\tTue, 21 Jun 2016 15:16:30 +1000 (AEST)", "(qmail 29774 invoked by alias); 21 Jun 2016 05:13:37 -0000", "(qmail 20791 invoked by uid 89); 21 Jun 2016 05:13:31 -0000" ], "Authentication-Results": [ "ozlabs.org; dkim=pass (1024-bit key;\n\tsecure) header.d=sourceware.org header.i=@sourceware.org\n\theader.b=nsqZURU8; dkim-atps=neutral", "sourceware.org; auth=none", "spf=none (sender IP is )\n\tsmtp.mailfrom=Yuri.Norov@caviumnetworks.com; " ], "DomainKey-Signature": "a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:from:to:cc:subject:date:message-id:in-reply-to\n\t:references:mime-version:content-type; q=dns; s=default; b=X+795\n\tB91h7o/1WQ4tB26vyItRF71rjFI3TH1AXXC5ViJHCmPIHhOlBUhOryoEpH61io9/\n\ty2xGuinFMvy/BF6XKDScC/+XuCRwizef+wdayw+serrVwsZDkp00R6iVUDqAt3B0\n\t7CHufNWi2zqlHW3DXFqBo8TYNPZ5OhKJeMQPa8=", "DKIM-Signature": "v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id\n\t:list-unsubscribe:list-subscribe:list-archive:list-post\n\t:list-help:sender:from:to:cc:subject:date:message-id:in-reply-to\n\t:references:mime-version:content-type; s=default; bh=iay3YV8/tQH\n\tvcsAVOkVTImkV8gs=; b=nsqZURU8+q+/ek6svYoMZPM3sTXanLPSnYh0K00ihar\n\tnESLWEH9ToKk+NTQtYusjWayt2J3AuNXa0iFU8w//LQV4vTrU5T1j4zQd7hff21x\n\to7OgUKsOLSVYdJGOWc4AR8iXHsPIxAxPNoFpkFN6NyMy7mPmHoNkLTgqcN2mMYJk\n\t=", "Mailing-List": "contact libc-alpha-help@sourceware.org; run by ezmlm", "Precedence": "bulk", "List-Id": "<libc-alpha.sourceware.org>", "List-Unsubscribe": "<mailto:libc-alpha-unsubscribe-incoming=patchwork.ozlabs.org@sourceware.org>", "List-Subscribe": "<mailto:libc-alpha-subscribe@sourceware.org>", "List-Archive": "<http://sourceware.org/ml/libc-alpha/>", "List-Post": "<mailto:libc-alpha@sourceware.org>", "List-Help": "<mailto:libc-alpha-help@sourceware.org>,\n\t<http://sourceware.org/ml/#faqs>", "Sender": "libc-alpha-owner@sourceware.org", "X-Virus-Found": "No", "X-Spam-SWARE-Status": "No, score=-1.6 required=5.0 tests=AWL, BAYES_00,\n\tRCVD_IN_DNSWL_NONE,\n\tSPF_HELO_PASS autolearn=ham version=3.3.2 spammy=19922015,\n\t1992-2015, 1996-2016, 19962016", "X-HELO": "na01-bl2-obe.outbound.protection.outlook.com", "From": "Yury Norov <ynorov@caviumnetworks.com>", "To": "<libc-alpha@sourceware.org>, <linux-kernel@vger.kernel.org>", "CC": "<arnd@arndb.de>, <catalin.marinas@arm.com>, <marcus.shawcroft@arm.com>, \n\t<philb@gnu.org>, <davem@davemloft.net>, <szabolcs.nagy@arm.com>,\n\t<maxim.kuvyrkov@linaro.org>, <joseph@codesourcery.com>,\n\t<pinskia@gmail.com>, Yury Norov <yury.norov@gmail.com>,\n\tYury Norov <ynorov@caviumnetworks.com>", "Subject": "[PATCH 22/27] [AARCH64] ILP32: support stat syscall family", "Date": "Tue, 21 Jun 2016 08:07:06 +0300", "Message-ID": "<1466485631-3532-24-git-send-email-ynorov@caviumnetworks.com>", "In-Reply-To": "<1466485631-3532-1-git-send-email-ynorov@caviumnetworks.com>", "References": "<1466485631-3532-1-git-send-email-ynorov@caviumnetworks.com>", "MIME-Version": "1.0", "Content-Type": "text/plain", "X-ClientProxiedBy": "HE1PR03CA0030.eurprd03.prod.outlook.com (10.163.170.168)\n\tTo SN1PR07MB2254.namprd07.prod.outlook.com (10.164.47.148)", "X-MS-Office365-Filtering-Correlation-Id": "34a801bd-6046-44ca-5e64-08d399928afd", "X-Microsoft-Exchange-Diagnostics": [ "1; SN1PR07MB2254;\n\t2:531d5rZs3EsDo6jOSkSXBXWoA7PtJGrsGgRZksj792qkvdxaKFaOGaCP0R/fMZ91ir6qsowJdwXThXonNyzGsFh60DwEpcWjMiUc1W7095R6JoecqiH+XaBWAN/tnLvm3kulK6WDQhRaD4beBI7xKlqnJkBGYauZQ89+WUxQiu91tTZM+0JDjAUknV3SizcY;\n\t3:64TJAsB4geOJqt079sZcVWjlluDoj/l7wJ91zY9fEti9Ascm+89+1mD32q7NeCwCARC014miJHQGxWXRaaLMwFSUh9hUc0q4mtGvutgyZ2a5n2U0PIKBTfOFWFzukuqK;\n\t25:npY0TpLLrfyMaKP2d28wo5n6b4d/+j37OqFPqVV6/YYPineugU7KNI+b/wMbjvGpYN1aog4LX8gfdPt+4DyN6a73EN3fd/k33u1OA5SHeQ4qCOHjU8JCJkAhUmr3Ms2av/BrkTgCZ8Eg6ZfBjGoC08SRoFIsEEeqAXkQAVu/72cVNc46KVwD6ZlXaKcmvoPQGRb/ZmXoGmBEvIVPkGdBW6p/lUwP0EG5ioHfdfw9drzzsvVBWih/c1pApNunw2eKgkfOHGib2bK+GskHm/k6E9qQU5ov74+ZkQ6El77Iz6GIMWQmXFiGYzHPmYHIWB1jCoc5yuQyI5eoShG/toUlZYuBXeKOfeKEG+kboQVbA2VPGUQwVrX0gdjAJ6MINlHQt//uTVbYGOzZKMqEsYP5zIVplx7Yyj42jioS5kK817I=", "1; SN1PR07MB2254;\n\t20:xQXM8kk+KYIHXj9h9bSOYvO5X8jJdBizdszBHBAb0pbjgumDDi60R2hbfD00WxXqsiZ+b9KAbrin7GRSCSiRYtUK3Om6KfLQalsETDP+wxz7HZTYFexYfdqj0aTKTOCtPwj1/scHX8AoXFLc9Y9HRGOnVo77y66A5suxKuLh+R4SmhKMYhkzoLoZ2wxcUKGBvn6BZDF15KdY+s2m1KF+cWt6xfBU35cfx18Vs4XXHlMgX92B1GKhSJlZWEN0ajnctIufhor5sgifB7ZRvHDUrXv7vBJtQcjW524LkQk2abfROPe9CpWoohN7b5hUfc4skp0986NBFaGEYh10zDNyPHa+VJRRqPk1iX98/SxthxqKH8gFXrxYqsynjwM+Iu0sWwb0uH3UXGet0rzpDUxkkP1tkedf56/t86nr1nk+I1Tnx3biuw3oB2PuB7f1H74Qhx4ccsf0ugsRpeJCPSE1iHsQhuG/I8g23cu8gR0Lu2GJHwnN0XHl76QVx1z48CetNUp5Q1mOGXDm7Lg+WdxPnXkSIcjIWPzVNBPGJhZUjJeN2cDTap7YeiohtqAGaopCf/Qt8oiK1M5kZlJcDtjj7Oenv6MSwH0oa+GocXE6LEQ=", "1; SN1PR07MB2254;\n\t4:zrG07iGVTq5U5XtMMsE8VbNA3CeAsaYNQSGDUivKsttSV5jt+iUwr4dl/mUpjjWjy3ygVdvfjLWku6u16+Pb2zDJZt3G9Eik2t76biHtoTniOrKIx01pws/I3p2djrsf50k19GTu2yxzv2jySz0XsgTJebgZgQesmlOWI0MiP4/5dRj5RqHTAorDgOGdFiX13VclJAcnYU+NPQ/n6NdAtSiSFbDYmAflFl/dk53ZblA/UtL7QKhpSF8Hgr6SvyxY2iKhGbJgOFsQp3T3kEqYS/Xc/djEEc8XxcwFpwZ7S6mPbVErDIqlrxmQbfdvrPjeF9cS+ZpfbK7HG4yfuzxoie97GIz8mMdJYUmTY4Nrge3OF+RO00Q6fQq0XolbBTJRfkQ2nqRGt15qWCjSWXMQYHjvsRkVGGcm4XBmH25GCDaJgfskatCRpZ2kVhMHELQg", "=?us-ascii?Q?1; SN1PR07MB2254;\n\t23:LZLSc7dKMjvAVbaHIou7eYU5IQkNTy3XmNOcQCnqZ?=\n\t=?us-ascii?Q?iKX+RAI/FWfcRbikgR0njYq8RL+yUxxJisWyYF2Qml/AhfGaGRC3KFZqI4Zo?=\n\t=?us-ascii?Q?shiktSrNjZydsXMYHsJVelmpgl6YxVPuvePDwEWdlAmrovYICEnZtyqG6HkM?=\n\t=?us-ascii?Q?0iKESaXYYmk+NDfIeMntzDMq7PYPP+B872E1ERHHJyCDvYEhDgkf3Yy96rZV?=\n\t=?us-ascii?Q?Jx0Hev7pmWf57Txix38dVjRlodGfIeaqkZgAfYhGcx7btkwebqtRmwV3LuUy?=\n\t=?us-ascii?Q?3d2vR8gZ0BbOZrJpC0z00dByUIvmJFjPydNKwvWLwi/TuYBv0U3IDnatZLrG?=\n\t=?us-ascii?Q?nfKJ9fcZhKtPDJvUrQVTsn89WSI2vb9IwaQRXi2uhcUyoKR8ow/l+IuPWDZo?=\n\t=?us-ascii?Q?IPexqolEFPif85PCWhpkEtCcPZq0Jn8Vxyzc5nld2SV2NwnkjxWZmkmQWs0+?=\n\t=?us-ascii?Q?BS8WZ2tGfBt5+Zjc4sQt0691WrlfgmDsZ+L43fRpoo1RL4+hOYaKO0ZFqhgt?=\n\t=?us-ascii?Q?iGBMdirVajdsjgGVAnDtJ9H6MwVykphujoL+e86h2iA/9uwUD/kRATkHv676?=\n\t=?us-ascii?Q?4bf57mL7vu5Esal37TdurRkMJ4asaTVPCMNVV84mIy8xNRGAGyOhKFx4Ehwh?=\n\t=?us-ascii?Q?+UAhM6316u3+W0YgiV5Ozu+9XB0W10J3Bw/N43t3xs5BfKNo3MT8tGmNA+Eo?=\n\t=?us-ascii?Q?dGemGKn6DlAtJx2sFD0v/dCSuv2W9hsa7h0LL9htqlql/3dKLKhUNaLn1p7p?=\n\t=?us-ascii?Q?BVtAtf2xJRt9gAHArTlNktFmmhIhLjKzOdrP0tb2cvDfXi+IJGh7tsetOIwv?=\n\t=?us-ascii?Q?X5/SgvsGVMeVhUhcpL6y9W/MdjuWWp+0wUw52wtRkc9DphoCKUsAMNHvm487?=\n\t=?us-ascii?Q?d+ZbSM1EdqD94OsVqrzORq7jocxdbWBhaxt778jUyVzGrXq65VHXnRijhzbw?=\n\t=?us-ascii?Q?95Lz53IlmSKJeoaxbNUeHyjEkOlo1N5OF69O3bSiZHXb1kjv3x5IW07GOvj5?=\n\t=?us-ascii?Q?dB+j+5iEeqmi4rbESQBGcN+3vSp3eoZS3/8soYMPLfT18ZI0n+MN1Ji1PFLU?=\n\t=?us-ascii?Q?QABSxnYmkmeeiPTVWY6n+6suDT4O7aK4ttVMNBo8gizA83vh8UhLhvSyVjxx?=\n\t=?us-ascii?Q?0ZGSiMvfI6X6KHRoUOU2FOOm7tbegdlDvFXvoBI1kSlPzm9sIWblcuEO3NaH?=\n\t=?us-ascii?Q?Z8vlqWl18Z72ZqWAmxxs+EKdVRLGPqDvALt7k+yi9Tn4zac/RU5yyPHnQ=3D?=\n\t=?us-ascii?Q?=3D?=", "1; SN1PR07MB2254;\n\t6:mpC29YqJNnxtbbPlVZizoM2mkjKB+JB0JW9OO/HsNqMjqvrYqmeFVkqsWgrZtPYkJODsbEfM/2q5P/Dh2qF8P7kxjrRzahQBduRsqWFO7jJQQmdgCIrVRjdXE9ghXUR4VB0PT281BSo2KydGMCXYq0mDTZQqp+zHh4U9M426pij4Ue1Dx34VoXlt5PmwH4k9xeZ1h6Tw/oRyt7kleMVT5ndfU7IJekyBEUPOeHRout8rDAPyMpeNTPW68NcecRQeL7pLXzBjd2kl9qgB+oLgvzboABoJsfHd9GYQ1CZeNvE=;\n\t5:USWv+7RJvnOwY11Z0fbnAw6k0gVsenyK2RP1Sw59NYbHhlHu0Z8BpLCBALh2Ehh63dlRi7z1xaTHEFJp4dtcmQ2yqHeWu/ZSGB4iFGBSUIy9ZnTxzXHSt++nAWF58qYG380rTXi/3zJXPD7XSc31VQ==;\n\t24:Xf+5/pZqpBjMd6qNPooaN+KsDzYkrOqUZx8mkr8ll+iZookBEh2p1loYbr05kVlxRXztiJ18nholHAdfzbKYRw3CJ4TinY6RTDkgiN+DHbY=;\n\t7:/USt8P48Amg5ac895b2Sn/+3f9jRz5Sz288Pt7zYOysRDGXBW5QWTkfD2FHO4Dlxu/kBvbiVL5uuB5cQD84k99D9e3pYUze5og+xuJhsAxKsm+OE8Le88s5IDt8KNCtUV4VFz+ng7Wl0lJ74fx8njnqJB5YseG9ymbIJENMuFoAFx3+Bmn+L5Snv8B82fYvjhBpnX4Mt1lUv5W5+cSuK+Wd+I2PqXV3cRvEWDo2ddBmpnqQQFhqU9HdvN2kJGY5S" ], "X-Microsoft-Antispam": "UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR07MB2254;", "X-Microsoft-Antispam-PRVS": "<SN1PR07MB2254D50C7589AEA9F9F96112EE2B0@SN1PR07MB2254.namprd07.prod.outlook.com>", "X-Exchange-Antispam-Report-Test": "UriScan:(250305191791016)(22074186197030);", "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046);\n\tSRVR:SN1PR07MB2254; BCL:0; PCL:0; RULEID:; SRVR:SN1PR07MB2254;", "X-Forefront-PRVS": "098076C36C", "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(199003)(189002)(40224003)(66066001)(4001430100002)(4326007)(5003940100001)(36756003)(2906002)(47776003)(19580395003)(50226002)(7736002)(5001770100001)(42186005)(97736004)(19580405001)(189998001)(106356001)(15975445007)(81166006)(92566002)(81156014)(8676002)(77096005)(33646002)(105586002)(50986999)(76176999)(586003)(2950100001)(48376002)(76506005)(68736007)(101416001)(107886002)(7846002)(3846002)(50466002)(229853001)(6116002)(575784001)(2004002)(2101003);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR07MB2254; H:localhost;\n\tFPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; ", "Received-SPF": "None (protection.outlook.com: caviumnetworks.com does not\n\tdesignate permitted sender hosts)", "SpamDiagnosticOutput": "1:99", "SpamDiagnosticMetadata": "NSPM", "X-OriginatorOrg": "caviumnetworks.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "21 Jun 2016 05:11:46.0683\n\t(UTC)", "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SN1PR07MB2254" }, "content": "From: Yury Norov <yury.norov@gmail.com>\n\nstat and statfs structures has their layouts identical to lp64\nafter changing off_t, ino_t etc sizes to 64-bit. It means we can\npass it to kernel same way as lp64 does.\n\nSigned-off-by: Yury Norov <ynorov@caviumnetworks.com>\n---\n sysdeps/unix/sysv/linux/aarch64/bits/stat.h | 195 +++++++++++++++++++++\n sysdeps/unix/sysv/linux/aarch64/bits/statfs.h | 72 ++++++++\n sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs.c | 29 +++\n sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c | 72 ++++++++\n sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c | 51 ++++++\n sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c | 54 ++++++\n sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c | 48 +++++\n sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c | 52 ++++++\n sysdeps/unix/sysv/linux/aarch64/ilp32/lxstat.c | 47 +++++\n sysdeps/unix/sysv/linux/aarch64/ilp32/statfs.c | 30 ++++\n sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c | 29 +++\n sysdeps/unix/sysv/linux/aarch64/ilp32/xstat.c | 47 +++++\n sysdeps/unix/sysv/linux/aarch64/ilp32/xstat64.c | 47 +++++\n 13 files changed, 773 insertions(+)\n create mode 100644 sysdeps/unix/sysv/linux/aarch64/bits/stat.h\n create mode 100644 sysdeps/unix/sysv/linux/aarch64/bits/statfs.h\n create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs.c\n create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c\n create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c\n create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c\n create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c\n create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c\n create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/lxstat.c\n create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/statfs.c\n create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c\n create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/xstat.c\n create mode 100644 sysdeps/unix/sysv/linux/aarch64/ilp32/xstat64.c", "diff": "diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/stat.h b/sysdeps/unix/sysv/linux/aarch64/bits/stat.h\nnew file mode 100644\nindex 0000000..eec6789\n--- /dev/null\n+++ b/sysdeps/unix/sysv/linux/aarch64/bits/stat.h\n@@ -0,0 +1,195 @@\n+/* Copyright (C) 1992-2015 Free Software Foundation, Inc.\n+ This file is part of the GNU C Library.\n+\n+ The GNU C Library is free software; you can redistribute it and/or\n+ modify it under the terms of the GNU Lesser General Public\n+ License as published by the Free Software Foundation; either\n+ version 2.1 of the License, or (at your option) any later version.\n+\n+ The GNU C Library is distributed in the hope that it will be useful,\n+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n+ Lesser General Public License for more details.\n+\n+ You should have received a copy of the GNU Lesser General Public\n+ License along with the GNU C Library; if not, see\n+ <http://www.gnu.org/licenses/>. */\n+\n+#if !defined _SYS_STAT_H && !defined _FCNTL_H\n+# error \"Never include <bits/stat.h> directly; use <sys/stat.h> instead.\"\n+#endif\n+\n+#ifndef _BITS_STAT_H\n+#define _BITS_STAT_H\t1\n+\n+/* Versions of the `struct stat' data structure. */\n+#define _STAT_VER_KERNEL\t0\n+#define _STAT_VER_LINUX\t\t0\n+#define _STAT_VER\t\t_STAT_VER_KERNEL\n+\n+/* Versions of the `xmknod' interface. */\n+#define _MKNOD_VER_LINUX\t0\n+\n+#ifdef __ILP32__\n+#include <endian.h>\n+struct __kernel_timespec\n+ {\n+ unsigned long long tv_sec;\t\t/* Seconds. */\n+ long long tv_nsec;\t\t\t/* Nanoseconds. */\n+ };\n+#define conv_timespec(u, k) do {\t\\\n+\t(u)->tv_sec = (k)->tv_sec;\t\\\n+\t(u)->tv_nsec = (k)->tv_nsec;\t\\\n+} while (0)\n+#if __BYTE_ORDER == __LITTLE_ENDIAN\n+#define __type3264(type, name)\t\\\n+\ttype (name); type name##_pad\n+#else\n+#define __type3264(type, name)\t\\\n+\ttype name##_pad; type name\n+#endif\n+\n+#else\n+#define __kernel_timespec timespec\n+#define conv_timespec(u, k)\n+#define __type3264(type, name) type name\n+#endif /* __ILP32__ */\n+\n+struct stat\n+ {\n+ __dev_t st_dev;\t\t\t/* Device. */\n+ __ino_t st_ino;\t\t\t/* File serial number.\t*/\n+ __mode_t st_mode;\t\t\t/* File mode. */\n+ __nlink_t st_nlink;\t\t\t/* Link count. */\n+ __uid_t st_uid;\t\t\t/* User ID of the file's owner.\t*/\n+ __gid_t st_gid;\t\t\t/* Group ID of the file's group.*/\n+ __dev_t st_rdev;\t\t\t/* Device number, if device. */\n+ __dev_t __pad1;\n+ __off_t st_size;\t\t\t/* Size of file, in bytes. */\n+ __blksize_t st_blksize;\t\t/* Optimal block size for I/O. */\n+ int __pad2;\n+\n+ __blkcnt_t st_blocks;\t\t/* Number 512-byte blocks allocated. */\n+#ifdef __USE_XOPEN2K8\n+ /* Nanosecond resolution timestamps are stored in a format\n+ equivalent to 'struct timespec'. This is the type used\n+ whenever possible but the Unix namespace rules do not allow the\n+ identifier 'timespec' to appear in the <sys/stat.h> header.\n+ Therefore we have to handle the use of this header in strictly\n+ standard-compliant sources special. */\n+ union {\n+\t struct timespec st_atim;\t\t/* Time of last access. */\n+\t struct __kernel_timespec __st_atim;\n+ };\n+ union {\n+\t struct timespec st_mtim;\t\t/* Time of last modification. */\n+\t struct __kernel_timespec __st_mtim;\n+ };\n+ union {\n+\t struct timespec st_ctim;\t\t/* Time of last status change. */\n+\t struct __kernel_timespec __st_ctim;\n+ };\n+# define st_atime st_atim.tv_sec\t/* Backward compatibility. */\n+# define st_mtime st_mtim.tv_sec\n+# define st_ctime st_ctim.tv_sec\n+#else\n+ __type3264(__time_t, st_atime);\t\t\t/* Time of last access. */\n+ __type3264(unsigned long int, st_atimensec);\t/* Nsecs of last access. */\n+ __type3264(__time_t, st_mtime);\t\t\t/* Time of last modification. */\n+ __type3264(unsigned long int, st_mtimensec);\t/* Nsecs of last modification. */\n+ __type3264(__time_t, st_ctime);\t\t\t/* Time of last status change. */\n+ __type3264(unsigned long int, st_ctimensec);\t/* Nsecs of last status change. */\n+#endif\n+ int __glibc_reserved[2];\n+ };\n+\n+#ifdef __USE_LARGEFILE64\n+struct stat64\n+ {\n+ __dev_t st_dev;\t\t\t/* Device. */\n+ __ino_t st_ino;\t\t\t/* File serial number.\t*/\n+ __mode_t st_mode;\t\t\t/* File mode. */\n+ __nlink_t st_nlink;\t\t\t/* Link count. */\n+ __uid_t st_uid;\t\t\t/* User ID of the file's owner.\t*/\n+ __gid_t st_gid;\t\t\t/* Group ID of the file's group.*/\n+ __dev_t st_rdev;\t\t\t/* Device number, if device. */\n+ __dev_t __pad1;\n+ __off_t st_size;\t\t\t/* Size of file, in bytes. */\n+ __blksize_t st_blksize;\t\t/* Optimal block size for I/O. */\n+ int __pad2;\n+\n+ __blkcnt_t st_blocks;\t\t/* Number 512-byte blocks allocated. */\n+#ifdef __USE_XOPEN2K8\n+ /* Nanosecond resolution timestamps are stored in a format\n+ equivalent to 'struct timespec'. This is the type used\n+ whenever possible but the Unix namespace rules do not allow the\n+ identifier 'timespec' to appear in the <sys/stat.h> header.\n+ Therefore we have to handle the use of this header in strictly\n+ standard-compliant sources special. */\n+ union {\n+\t struct timespec st_atim;\t\t/* Time of last access. */\n+\t struct __kernel_timespec __st_atim;\n+ };\n+ union {\n+\t struct timespec st_mtim;\t\t/* Time of last modification. */\n+\t struct __kernel_timespec __st_mtim;\n+ };\n+ union {\n+\t struct timespec st_ctim;\t\t/* Time of last status. */\n+\t struct __kernel_timespec __st_ctim;\n+ };\n+# define st_atime st_atim.tv_sec\t/* Backward compatibility. */\n+# define st_mtime st_mtim.tv_sec\n+# define st_ctime st_ctim.tv_sec\n+#else\n+ __type3264(__time_t, st_atime);\t\t\t/* Time of last access. */\n+ __type3264(unsigned long int, st_atimensec);\t/* Nsecs of last access. */\n+ __type3264(__time_t, st_mtime);\t\t\t/* Time of last modification. */\n+ __type3264(unsigned long int, st_mtimensec);\t/* Nsecs of last modification. */\n+ __type3264(__time_t, st_ctime);\t\t\t/* Time of last status change. */\n+ __type3264(unsigned long int, st_ctimensec);\t/* Nsecs of last status change. */\n+#endif\n+ int __glibc_reserved[2];\n+ };\n+#endif\n+\n+/* Tell code we have these members. */\n+#define\t_STATBUF_ST_BLKSIZE\n+#define _STATBUF_ST_RDEV\n+/* Nanosecond resolution time values are supported. */\n+#define _STATBUF_ST_NSEC\n+\n+/* Encoding of the file mode. */\n+\n+#define\t__S_IFMT\t0170000\t/* These bits determine file type. */\n+\n+/* File types. */\n+#define\t__S_IFDIR\t0040000\t/* Directory. */\n+#define\t__S_IFCHR\t0020000\t/* Character device. */\n+#define\t__S_IFBLK\t0060000\t/* Block device. */\n+#define\t__S_IFREG\t0100000\t/* Regular file. */\n+#define\t__S_IFIFO\t0010000\t/* FIFO. */\n+#define\t__S_IFLNK\t0120000\t/* Symbolic link. */\n+#define\t__S_IFSOCK\t0140000\t/* Socket. */\n+\n+/* POSIX.1b objects. Note that these macros always evaluate to zero. But\n+ they do it by enforcing the correct use of the macros. */\n+#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)\n+#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)\n+#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)\n+\n+/* Protection bits. */\n+\n+#define\t__S_ISUID\t04000\t/* Set user ID on execution. */\n+#define\t__S_ISGID\t02000\t/* Set group ID on execution. */\n+#define\t__S_ISVTX\t01000\t/* Save swapped text after use (sticky). */\n+#define\t__S_IREAD\t0400\t/* Read by owner. */\n+#define\t__S_IWRITE\t0200\t/* Write by owner. */\n+#define\t__S_IEXEC\t0100\t/* Execute by owner. */\n+\n+#ifdef __USE_ATFILE\n+# define UTIME_NOW\t((1l << 30) - 1l)\n+# define UTIME_OMIT\t((1l << 30) - 2l)\n+#endif\n+\n+#endif\t/* bits/stat.h */\ndiff --git a/sysdeps/unix/sysv/linux/aarch64/bits/statfs.h b/sysdeps/unix/sysv/linux/aarch64/bits/statfs.h\nnew file mode 100644\nindex 0000000..81a8626\n--- /dev/null\n+++ b/sysdeps/unix/sysv/linux/aarch64/bits/statfs.h\n@@ -0,0 +1,72 @@\n+/* Copyright (C) 2011-2016 Free Software Foundation, Inc.\n+ This file is part of the GNU C Library.\n+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.\n+\n+ The GNU C Library is free software; you can redistribute it and/or\n+ modify it under the terms of the GNU Lesser General Public\n+ License as published by the Free Software Foundation; either\n+ version 2.1 of the License, or (at your option) any later version.\n+\n+ The GNU C Library is distributed in the hope that it will be useful,\n+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n+ Lesser General Public License for more details.\n+\n+ You should have received a copy of the GNU Lesser General Public\n+ License along with the GNU C Library. If not, see\n+ <http://www.gnu.org/licenses/>. */\n+\n+#ifndef _SYS_STATFS_H\n+# error \"Never include <bits/statfs.h> directly; use <sys/statfs.h> instead.\"\n+#endif\n+\n+#include <endian.h>\n+#include <bits/types.h>\n+#include <bits/wordsize.h>\n+\n+/* 64-bit libc uses the kernel's 'struct statfs', accessed via the\n+ statfs() syscall; 32-bit libc uses the kernel's 'struct statfs64'\n+ and accesses it via the statfs64() syscall. All the various\n+ APIs offered by libc use the kernel shape for their struct statfs\n+ structure; the only difference is that 32-bit programs not\n+ using __USE_FILE_OFFSET64 only see the low 32 bits of some\n+ of the fields (the __fsblkcnt_t and __fsfilcnt_t fields). */\n+\n+struct statfs\n+ {\n+ unsigned long long f_type;\n+ unsigned long long f_bsize;\n+ __fsblkcnt_t f_blocks;\n+ __fsblkcnt_t f_bfree;\n+ __fsblkcnt_t f_bavail;\n+ __fsfilcnt_t f_files;\n+ __fsfilcnt_t f_ffree;\n+ __fsid_t f_fsid;\n+ unsigned long long f_namelen;\n+ unsigned long long f_frsize;\n+ unsigned long long f_flags;\n+ unsigned long long f_spare[4];\n+ };\n+\n+#ifdef __USE_LARGEFILE64\n+struct statfs64\n+ {\n+ unsigned long long f_type;\n+ unsigned long long f_bsize;\n+ __fsblkcnt_t f_blocks;\n+ __fsblkcnt_t f_bfree;\n+ __fsblkcnt_t f_bavail;\n+ __fsfilcnt_t f_files;\n+ __fsfilcnt_t f_ffree;\n+ __fsid_t f_fsid;\n+ unsigned long long f_namelen;\n+ unsigned long long f_frsize;\n+ unsigned long long f_flags;\n+ unsigned long long f_spare[4];\n+ };\n+#endif\n+\n+/* Tell code we have these members. */\n+#define _STATFS_F_NAMELEN\n+#define _STATFS_F_FRSIZE\n+#define _STATFS_F_FLAGS\ndiff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs.c\nnew file mode 100644\nindex 0000000..8e900fd\n--- /dev/null\n+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs.c\n@@ -0,0 +1,29 @@\n+/* Copyright (C) 2011-2015 Free Software Foundation, Inc.\n+ This file is part of the GNU C Library.\n+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.\n+\n+ The GNU C Library is free software; you can redistribute it and/or\n+ modify it under the terms of the GNU Lesser General Public\n+ License as published by the Free Software Foundation; either\n+ version 2.1 of the License, or (at your option) any later version.\n+\n+ The GNU C Library is distributed in the hope that it will be useful,\n+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n+ Lesser General Public License for more details.\n+\n+ You should have received a copy of the GNU Lesser General Public\n+ License along with the GNU C Library. If not, see\n+ <http://www.gnu.org/licenses/>. */\n+\n+#include <errno.h>\n+#include <sys/statfs.h>\n+#include <stddef.h>\n+\n+/* Return information about the filesystem on which FD resides. */\n+int\n+__fstatfs (int fd, struct statfs *buf)\n+{\n+ return INLINE_SYSCALL (fstatfs64, 2, fd, buf);\n+}\n+weak_alias (__fstatfs, fstatfs)\ndiff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c\nnew file mode 100644\nindex 0000000..d7b90bb\n--- /dev/null\n+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/fstatfs64.c\n@@ -0,0 +1,72 @@\n+/* Return information about the filesystem on which FD resides.\n+ Copyright (C) 1996-2016 Free Software Foundation, Inc.\n+ This file is part of the GNU C Library.\n+\n+ The GNU C Library is free software; you can redistribute it and/or\n+ modify it under the terms of the GNU Lesser General Public\n+ License as published by the Free Software Foundation; either\n+ version 2.1 of the License, or (at your option) any later version.\n+\n+ The GNU C Library is distributed in the hope that it will be useful,\n+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n+ Lesser General Public License for more details.\n+\n+ You should have received a copy of the GNU Lesser General Public\n+ License along with the GNU C Library; if not, see\n+ <http://www.gnu.org/licenses/>. */\n+\n+#include <errno.h>\n+#include <string.h>\n+#include <sys/statfs.h>\n+#include <stddef.h>\n+#include <sysdep.h>\n+#include <kernel-features.h>\n+\n+/* Defined in statfs64.c. */\n+extern int __no_statfs64 attribute_hidden;\n+\n+/* Return information about the filesystem on which FD resides. */\n+int\n+__fstatfs64 (int fd, struct statfs64 *buf)\n+{\n+#ifdef __NR_fstatfs64\n+# if __ASSUME_STATFS64 == 0\n+ if (! __no_statfs64)\n+# endif\n+ {\n+ int result = INLINE_SYSCALL (fstatfs64, 2, fd, buf);\n+\n+# if __ASSUME_STATFS64 == 0\n+ if (result == 0 || errno != ENOSYS)\n+# endif\n+\treturn result;\n+\n+# if __ASSUME_STATFS64 == 0\n+ __no_statfs64 = 1;\n+# endif\n+ }\n+#endif\n+\n+#if __ASSUME_STATFS64 == 0\n+ struct statfs buf32;\n+\n+ if (__fstatfs (fd, &buf32) < 0)\n+ return -1;\n+\n+ buf->f_type = buf32.f_type;\n+ buf->f_bsize = buf32.f_bsize;\n+ buf->f_blocks = buf32.f_blocks;\n+ buf->f_bfree = buf32.f_bfree;\n+ buf->f_bavail = buf32.f_bavail;\n+ buf->f_files = buf32.f_files;\n+ buf->f_ffree = buf32.f_ffree;\n+ buf->f_fsid = buf32.f_fsid;\n+ buf->f_namelen = buf32.f_namelen;\n+ buf->f_frsize = buf32.f_frsize;\n+ memcpy (buf->f_spare, buf32.f_spare, sizeof (buf32.f_spare));\n+\n+ return 0;\n+#endif\n+}\n+weak_alias (__fstatfs64, fstatfs64)\ndiff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c\nnew file mode 100644\nindex 0000000..83df0e4\n--- /dev/null\n+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat.c\n@@ -0,0 +1,51 @@\n+//#include <sysdeps/unix/sysv/linux/generic/wordsize-32/fxstat.c>\n+/* Copyright (C) 2011-2016 Free Software Foundation, Inc.\n+ This file is part of the GNU C Library.\n+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.\n+\n+ The GNU C Library is free software; you can redistribute it and/or\n+ modify it under the terms of the GNU Lesser General Public\n+ License as published by the Free Software Foundation; either\n+ version 2.1 of the License, or (at your option) any later version.\n+\n+ The GNU C Library is distributed in the hope that it will be useful,\n+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n+ Lesser General Public License for more details.\n+\n+ You should have received a copy of the GNU Lesser General Public\n+ License along with the GNU C Library. If not, see\n+ <http://www.gnu.org/licenses/>. */\n+\n+#include <errno.h>\n+#include <stddef.h>\n+#include <sys/types.h>\n+#include <sys/stat.h>\n+#include <kernel_stat.h>\n+\n+#include <sysdep.h>\n+#include <sys/syscall.h>\n+\n+/* Get information about the file FD in BUF. */\n+int\n+__fxstat (int vers, int fd, struct stat *buf)\n+{\n+ if (vers == _STAT_VER_KERNEL)\n+ {\n+ int rc = INLINE_SYSCALL (fstat64, 2, fd, buf);\n+ if (!rc) {\n+\t conv_timespec(&buf->st_atim, &buf->__st_atim);\n+\t conv_timespec(&buf->st_mtim, &buf->__st_mtim);\n+\t conv_timespec(&buf->st_ctim, &buf->__st_ctim);\n+ }\n+\n+ return rc;\n+\n+ }\n+\n+ errno = EINVAL;\n+ return -1;\n+}\n+\n+hidden_def (__fxstat)\n+weak_alias (__fxstat, _fxstat);\ndiff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c\nnew file mode 100644\nindex 0000000..f651921\n--- /dev/null\n+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstat64.c\n@@ -0,0 +1,54 @@\n+/* fxstat64 using Linux fstat64 system call.\n+ Copyright (C) 1997-2016 Free Software Foundation, Inc.\n+ This file is part of the GNU C Library.\n+\n+ The GNU C Library is free software; you can redistribute it and/or\n+ modify it under the terms of the GNU Lesser General Public\n+ License as published by the Free Software Foundation; either\n+ version 2.1 of the License, or (at your option) any later version.\n+\n+ The GNU C Library is distributed in the hope that it will be useful,\n+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n+ Lesser General Public License for more details.\n+\n+ You should have received a copy of the GNU Lesser General Public\n+ License along with the GNU C Library; if not, see\n+ <http://www.gnu.org/licenses/>. */\n+\n+#include <errno.h>\n+#include <stddef.h>\n+#include <sys/stat.h>\n+#include <kernel_stat.h>\n+\n+#include <sysdep.h>\n+#include <sys/syscall.h>\n+\n+#include <kernel-features.h>\n+\n+/* Get information about the file FD in BUF. */\n+\n+int\n+___fxstat64 (int vers, int fd, struct stat64 *buf)\n+{\n+ int result;\n+ result = INLINE_SYSCALL (fstat64, 2, fd, buf);\n+ if (!result) {\n+\t conv_timespec(&buf->st_atim, &buf->__st_atim);\n+\t conv_timespec(&buf->st_mtim, &buf->__st_mtim);\n+\t conv_timespec(&buf->st_ctim, &buf->__st_ctim);\n+ }\n+ return result;\n+}\n+\n+#include <shlib-compat.h>\n+\n+#if SHLIB_COMPAT(libc, GLIBC_2_1, GLIBC_2_2)\n+versioned_symbol (libc, ___fxstat64, __fxstat64, GLIBC_2_2);\n+strong_alias (___fxstat64, __old__fxstat64)\n+compat_symbol (libc, __old__fxstat64, __fxstat64, GLIBC_2_1);\n+hidden_ver (___fxstat64, __fxstat64)\n+#else\n+strong_alias (___fxstat64, __fxstat64)\n+hidden_def (__fxstat64)\n+#endif\ndiff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c\nnew file mode 100644\nindex 0000000..fb03a7d\n--- /dev/null\n+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat.c\n@@ -0,0 +1,48 @@\n+//#include <sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c>\n+/* Copyright (C) 2011-2016 Free Software Foundation, Inc.\n+ This file is part of the GNU C Library.\n+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.\n+\n+ The GNU C Library is free software; you can redistribute it and/or\n+ modify it under the terms of the GNU Lesser General Public\n+ License as published by the Free Software Foundation; either\n+ version 2.1 of the License, or (at your option) any later version.\n+\n+ The GNU C Library is distributed in the hope that it will be useful,\n+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n+ Lesser General Public License for more details.\n+\n+ You should have received a copy of the GNU Lesser General Public\n+ License along with the GNU C Library. If not, see\n+ <http://www.gnu.org/licenses/>. */\n+\n+#include <errno.h>\n+#include <fcntl.h>\n+#include <stddef.h>\n+#include <stdio.h>\n+#include <sys/stat.h>\n+#include <kernel_stat.h>\n+\n+#include <sysdep.h>\n+#include <sys/syscall.h>\n+\n+/* Get information about the file NAME in BUF. */\n+int\n+__fxstatat (int vers, int fd, const char *file, struct stat *buf, int flag)\n+{\n+ if (vers == _STAT_VER_KERNEL)\n+ {\n+ int rc = INLINE_SYSCALL (fstatat64, 4, fd, file, buf, flag);\n+ if (!rc) {\n+\t conv_timespec(&buf->st_atim, &buf->__st_atim);\n+\t conv_timespec(&buf->st_mtim, &buf->__st_mtim);\n+\t conv_timespec(&buf->st_ctim, &buf->__st_ctim);\n+ }\n+ return rc;\n+ }\n+\n+ errno = EINVAL;\n+ return -1;\n+}\n+libc_hidden_def (__fxstatat)\ndiff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c\nnew file mode 100644\nindex 0000000..9d36ff4\n--- /dev/null\n+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/fxstatat64.c\n@@ -0,0 +1,52 @@\n+//#include <sysdeps/unix/sysv/linux/fxstatat64.c>\n+/* Copyright (C) 2005-2016 Free Software Foundation, Inc.\n+ This file is part of the GNU C Library.\n+\n+ The GNU C Library is free software; you can redistribute it and/or\n+ modify it under the terms of the GNU Lesser General Public\n+ License as published by the Free Software Foundation; either\n+ version 2.1 of the License, or (at your option) any later version.\n+\n+ The GNU C Library is distributed in the hope that it will be useful,\n+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n+ Lesser General Public License for more details.\n+\n+ You should have received a copy of the GNU Lesser General Public\n+ License along with the GNU C Library; if not, see\n+ <http://www.gnu.org/licenses/>. */\n+\n+#include <errno.h>\n+#include <fcntl.h>\n+#include <stddef.h>\n+#include <stdio.h>\n+#include <string.h>\n+#include <sys/stat.h>\n+#include <kernel_stat.h>\n+\n+#include <sysdep.h>\n+#include <sys/syscall.h>\n+\n+/* Get information about the file NAME in BUF. */\n+\n+int\n+__fxstatat64 (int vers, int fd, const char *file, struct stat64 *st, int flag)\n+{\n+ if (__glibc_unlikely (vers != _STAT_VER_LINUX))\n+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (EINVAL);\n+\n+ int result;\n+ INTERNAL_SYSCALL_DECL (err);\n+\n+ result = INTERNAL_SYSCALL (fstatat64, err, 4, fd, file, st, flag);\n+ if (!__builtin_expect (INTERNAL_SYSCALL_ERROR_P (result, err), 1)) {\n+ conv_timespec(&st->st_atim, &st->__st_atim);\n+ conv_timespec(&st->st_mtim, &st->__st_mtim);\n+ conv_timespec(&st->st_ctim, &st->__st_ctim);\n+ return 0;\n+ }\n+ else\n+ return INLINE_SYSCALL_ERROR_RETURN_VALUE (INTERNAL_SYSCALL_ERRNO (result,\n+\t\t\t\t\t\t\t\t err));\n+}\n+libc_hidden_def (__fxstatat64)\ndiff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/lxstat.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/lxstat.c\nnew file mode 100644\nindex 0000000..e8de70e\n--- /dev/null\n+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/lxstat.c\n@@ -0,0 +1,47 @@\n+//#include <sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c>\n+/* Copyright (C) 2011-2016 Free Software Foundation, Inc.\n+ This file is part of the GNU C Library.\n+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.\n+\n+ The GNU C Library is free software; you can redistribute it and/or\n+ modify it under the terms of the GNU Lesser General Public\n+ License as published by the Free Software Foundation; either\n+ version 2.1 of the License, or (at your option) any later version.\n+\n+ The GNU C Library is distributed in the hope that it will be useful,\n+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n+ Lesser General Public License for more details.\n+\n+ You should have received a copy of the GNU Lesser General Public\n+ License along with the GNU C Library. If not, see\n+ <http://www.gnu.org/licenses/>. */\n+\n+#include <errno.h>\n+#include <stddef.h>\n+#include <fcntl.h>\n+#include <sys/stat.h>\n+#include <kernel_stat.h>\n+\n+#include <sysdep.h>\n+#include <sys/syscall.h>\n+\n+/* Get information about the file NAME in BUF. */\n+int\n+__lxstat (int vers, const char *name, struct stat *buf)\n+{\n+ if (vers == _STAT_VER_KERNEL)\n+ {\n+ int rc = INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf,\n+ AT_SYMLINK_NOFOLLOW);\n+ if (!rc) {\n+\t conv_timespec(&buf->st_atim, &buf->__st_atim);\n+\t conv_timespec(&buf->st_mtim, &buf->__st_mtim);\n+\t conv_timespec(&buf->st_ctim, &buf->__st_ctim);\n+ }\n+ return rc;\n+ }\n+ errno = EINVAL;\n+ return -1;\n+}\n+hidden_def (__lxstat)\ndiff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/statfs.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/statfs.c\nnew file mode 100644\nindex 0000000..bf70a7a\n--- /dev/null\n+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/statfs.c\n@@ -0,0 +1,30 @@\n+/* Copyright (C) 2011-2015 Free Software Foundation, Inc.\n+ This file is part of the GNU C Library.\n+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.\n+\n+ The GNU C Library is free software; you can redistribute it and/or\n+ modify it under the terms of the GNU Lesser General Public\n+ License as published by the Free Software Foundation; either\n+ version 2.1 of the License, or (at your option) any later version.\n+\n+ The GNU C Library is distributed in the hope that it will be useful,\n+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n+ Lesser General Public License for more details.\n+\n+ You should have received a copy of the GNU Lesser General Public\n+ License along with the GNU C Library. If not, see\n+ <http://www.gnu.org/licenses/>. */\n+\n+#include <errno.h>\n+#include <sys/statfs.h>\n+#include <stddef.h>\n+\n+/* Return information about the filesystem on which FILE resides. */\n+int\n+__statfs (const char *file, struct statfs *buf)\n+{\n+ return INLINE_SYSCALL (statfs64, 2, file, buf);\n+}\n+libc_hidden_def (__statfs)\n+weak_alias (__statfs, statfs)\ndiff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c\nnew file mode 100644\nindex 0000000..b99ab94\n--- /dev/null\n+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/statfs64.c\n@@ -0,0 +1,29 @@\n+/* Copyright (C) 2011-2015 Free Software Foundation, Inc.\n+ This file is part of the GNU C Library.\n+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.\n+\n+ The GNU C Library is free software; you can redistribute it and/or\n+ modify it under the terms of the GNU Lesser General Public\n+ License as published by the Free Software Foundation; either\n+ version 2.1 of the License, or (at your option) any later version.\n+\n+ The GNU C Library is distributed in the hope that it will be useful,\n+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n+ Lesser General Public License for more details.\n+\n+ You should have received a copy of the GNU Lesser General Public\n+ License along with the GNU C Library. If not, see\n+ <http://www.gnu.org/licenses/>. */\n+\n+#include <errno.h>\n+#include <sys/statfs.h>\n+#include <stddef.h>\n+\n+/* Return information about the filesystem on which FILE resides. */\n+int\n+__statfs64 (const char *file, struct statfs64 *buf)\n+{\n+ return INLINE_SYSCALL (statfs64, 2, file, buf);\n+}\n+weak_alias (__statfs64,statfs64)\ndiff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/xstat.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/xstat.c\nnew file mode 100644\nindex 0000000..b4e8423\n--- /dev/null\n+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/xstat.c\n@@ -0,0 +1,47 @@\n+//#include <sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c>\n+/* Copyright (C) 2011-2016 Free Software Foundation, Inc.\n+ This file is part of the GNU C Library.\n+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.\n+\n+ The GNU C Library is free software; you can redistribute it and/or\n+ modify it under the terms of the GNU Lesser General Public\n+ License as published by the Free Software Foundation; either\n+ version 2.1 of the License, or (at your option) any later version.\n+\n+ The GNU C Library is distributed in the hope that it will be useful,\n+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n+ Lesser General Public License for more details.\n+\n+ You should have received a copy of the GNU Lesser General Public\n+ License along with the GNU C Library. If not, see\n+ <http://www.gnu.org/licenses/>. */\n+\n+#include <errno.h>\n+#include <stddef.h>\n+#include <fcntl.h>\n+#include <sys/stat.h>\n+#include <kernel_stat.h>\n+\n+#include <sysdep.h>\n+#include <sys/syscall.h>\n+\n+/* Get information about the file NAME in BUF. */\n+int\n+__xstat (int vers, const char *name, struct stat *buf)\n+{\n+ if (vers == _STAT_VER_KERNEL)\n+ {\n+ int rc = INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf, 0);\n+ if (!rc) {\n+\t conv_timespec(&buf->st_atim, &buf->__st_atim);\n+\t conv_timespec(&buf->st_mtim, &buf->__st_mtim);\n+\t conv_timespec(&buf->st_ctim, &buf->__st_ctim);\n+ }\n+ return rc;\n+ }\n+\n+ errno = EINVAL;\n+ return -1;\n+}\n+hidden_def (__xstat)\ndiff --git a/sysdeps/unix/sysv/linux/aarch64/ilp32/xstat64.c b/sysdeps/unix/sysv/linux/aarch64/ilp32/xstat64.c\nnew file mode 100644\nindex 0000000..e4f4cd5\n--- /dev/null\n+++ b/sysdeps/unix/sysv/linux/aarch64/ilp32/xstat64.c\n@@ -0,0 +1,47 @@\n+//#include <sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c>\n+/* Copyright (C) 2011-2016 Free Software Foundation, Inc.\n+ This file is part of the GNU C Library.\n+ Contributed by Chris Metcalf <cmetcalf@tilera.com>, 2011.\n+\n+ The GNU C Library is free software; you can redistribute it and/or\n+ modify it under the terms of the GNU Lesser General Public\n+ License as published by the Free Software Foundation; either\n+ version 2.1 of the License, or (at your option) any later version.\n+\n+ The GNU C Library is distributed in the hope that it will be useful,\n+ but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n+ Lesser General Public License for more details.\n+\n+ You should have received a copy of the GNU Lesser General Public\n+ License along with the GNU C Library. If not, see\n+ <http://www.gnu.org/licenses/>. */\n+\n+#include <errno.h>\n+#include <stddef.h>\n+#include <fcntl.h>\n+#include <sys/stat.h>\n+#include <kernel_stat.h>\n+\n+#include <sysdep.h>\n+#include <sys/syscall.h>\n+\n+/* Get information about the file NAME in BUF. */\n+int\n+__xstat64 (int vers, const char *name, struct stat64 *buf)\n+{\n+ if (vers == _STAT_VER_KERNEL) {\n+ int rc = INLINE_SYSCALL (fstatat64, 4, AT_FDCWD, name, buf, 0);\n+ if (!rc) {\n+\t conv_timespec(&buf->st_atim, &buf->__st_atim);\n+\t conv_timespec(&buf->st_mtim, &buf->__st_mtim);\n+\t conv_timespec(&buf->st_ctim, &buf->__st_ctim);\n+ }\n+\n+ return rc;\n+ }\n+\n+ errno = EINVAL;\n+ return -1;\n+}\n+hidden_def (__xstat64)\n", "prefixes": [ "22/27", "AARCH64" ] }