get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/638478/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "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"
    ]
}