From patchwork Wed Sep 14 12:02:36 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 15623 Received: (qmail 83072 invoked by alias); 14 Sep 2016 12:03:16 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 82986 invoked by uid 89); 14 Sep 2016 12:03:15 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=H*r:sk:mail-bn, H*r:104.47.33, vers X-HELO: NAM01-BN3-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; From: Yury Norov To: CC: Yury Norov , Arnd Bergmann Subject: [PATCH 1/4] generic/wordsize-32: don't duplicate lxstat, xstat if XSTAT_IS_XSTAT64 is enabled Date: Wed, 14 Sep 2016 15:02:36 +0300 Message-ID: <1473854559-11103-2-git-send-email-ynorov@caviumnetworks.com> In-Reply-To: <1473854559-11103-1-git-send-email-ynorov@caviumnetworks.com> References: <1473854559-11103-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-ClientProxiedBy: AM2PR03CA0016.eurprd03.prod.outlook.com (10.160.207.26) To SN1PR07MB2254.namprd07.prod.outlook.com (10.164.47.148) X-MS-Office365-Filtering-Correlation-Id: 4fd4c52f-34da-4185-d3b8-08d3dc9713ec X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2254; 2:Yg2Ehu9zmRgChzBKH9H5f/o1xz2ALuaqrknUvnR/LXBW3r3hhIurOWkZVlUMrB5hLVosQNHT72JPOjRBS4BDnwOs+/We2BYGR3d1T1PmE7LamQc2X43/a8PcgruIvzrAD0D2dAFaUisoHfidYLr5476zYbILD+PP2ZDmtMhbpYYkkBm3W9+Tv8UTiiA3K7ud; 3:0xYP8bYmNpqNackk37pGsZIvoBEC7moDQuynR26XSX3vZQR/7S+I0SiIqP5NxnQ1+78iM8f87okJp6WiOsEaCtoMVjSHmbAuaoG/jFbBCriK4j6tiZ+ujbMMtGMfv38z; 25:crXBRtJxPZwytfuFRswu/XK02ISvn70qPUfrrhFaee72SGoKA/8ZqPT7qp0Ipq9CuUJqFAUok7hu9CkDYPoKLfiEcfmQcbHExf8gYoOJGV2DH0id6r9qCBes8wAEbal/2O48VMaVoJX1XzgGHSEgNXR1JWKT6kcSxhIRgxpzxw8Dnqijj0P2BmsUeh7rAye6AnbbL5pRU80/rnwOZ4W3al6u5QeLTX7bqmEcPwc4oLzxnryl/R13zyFDlqhfv9k5093jILHWhLTlXDTJ6jOzmkGXeAPs6dkJ5W9HWzC4P0mwZGQD+9+i/gK1iLyVGJB/3qspbHx8pW9wkiVG01yUmRsqCD5yW0nQ0xjG/LVqTxrRvPzwXZ9nR0ChavyVF/6j/Jutu70h1sufhl2FFEsYua4MFmpakyLtNjnpD2ihdMI= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR07MB2254; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2254; 31:sCGulAO1Ey8M9E3VOIX3vEhVkqc/UA6nhwQvV1q+h9ek3wcID6in9vdVoiCJCRZchVlgIgEenoa5DhF97XHYh9+zojDxs3qECi1rKrjSlkxKoPIN/rEvZjmcK6XmX17b7wGcAVWomOCLFopZQQlKx9vA04E/GIU6PI8RF6TV+7FmXk83KvVQfFbkccyWvHLhVj5HtuNCqXayRJK/UdObeib++wcBlRXcbWY+RwYL2/E=; 20:kezaGjxzsDlGUwnsD5uIMYiJ+Tao14RlmR+7w41mUN8nZPS2iW9BNLG4dEufMSiheF3WLTZVYqNDWlwcSMXcndlTm8FxjWo0PbuwRRbYFRNgw7BxXxZgSbRtX6DbOXrngzPYe4vbR70+uTSyKhiasNdngZdfMc2CCPxd9IbaXuj8xIYkclQP1EouiIkWhXqMS1F1EMCHQByFApcY70wMSL5yq0eM2SNtKN1IfY4QCIGK2W9uveUeD+Dhf9LUfg/mvvNt+xKKNx2WAbSYvqvRPCxYUPX/cK6AwTeznI93FG3wxeYeieQp3lpL+Trw945qs0zZ97Et9yg8Hrr0C89mc54C9IlQ7Ki0IRdLJZZ4WTJNyD7caw38dQFnJHCBggTzz2WLBFeQcrPnf9gj7udMrzOjWJVKD3vvClvZpA9EvQQem+dkz2yuv1Pn84HZX0XcgkuHb+MMLXX7JSks427n87zbXTxT15z3r9R+WofPVSxLnj0I0UT9ct1TnPi5cMXKaco4tJh7zVg6u40/KOzPCNYSg34zMPZntmOnYrH5NXmLf0FWfKi7KXtmUdu3O1mx+BxyO4K/nLYY7TxCrvSZQnpniL2CGkoT1D2Ih9Dx4pg= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(250305191791016)(22074186197030); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(5005006)(8121501046)(3002001)(10201501046); SRVR:SN1PR07MB2254; BCL:0; PCL:0; RULEID:; SRVR:SN1PR07MB2254; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2254; 4:t3oOHrja2XZllRzllexqIxvD0/EkP6BcZR4zWpBRYBExnBYbw74xVfDGIZDpTjsKbCYODf1/cIjko7LGHZUHxqCnn4DOpXUqGm91Ur+8+rmESBenRev7P453PYPYoggXCZLT/sv6kq5lUoiK5hfDzbiIALmoCM2YXB6k+MMa+NwQkY2JMsxOZmdihlQllgsOcQ/Xnz3u6RMmGq07XeUvCQgomtHgHlRtzcmtwGvPde9RWd/ieJL73fZkPU+uAOOHF5/UwcJEJaaJp+tFDj6GaMBRAeSQ3ArSLS8kELXayH6g5IJFsp1UnthiC4kr5vldzV3ckylmAEO1q9R/nwx6ZDHw0N9yjaxEim68pOBDAq5u59D+Tx6Oxlrp0iDQFjx0U5Q3EQ52HhoaZKCuikl+tLVf+ZGvgtFrk6JGgDfZoZ9EL3WdexV4G8yLR5mYYBlG2In17wl75wxeI44ZNCrobQ== X-Forefront-PRVS: 006546F32A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(7916002)(199003)(189002)(377424004)(7846002)(105586002)(6116002)(189998001)(81166006)(8676002)(7736002)(66066001)(229853001)(47776003)(106356001)(586003)(19580395003)(92566002)(5660300001)(97736004)(2351001)(19580405001)(50466002)(33646002)(101416001)(2950100001)(36756003)(50986999)(48376002)(81156014)(76176999)(3846002)(15975445007)(68736007)(4326007)(2906002)(76506005)(42186005)(110136003)(5003940100001)(50226002)(77096005)(305945005)(41533002)(15760500001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR07MB2254; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: caviumnetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN1PR07MB2254; 23:g0rmM6Mpo2ydVrO9w8YebkZdgzv4Sd/hx6H/tBspZ?= =?us-ascii?Q?FopgHuUPdpxMiEroa/yS8/FRE7IKNFqlWzcV1nWYtBpgdhMBdYzLagaXnKv7?= =?us-ascii?Q?ZvUxAi8haFi9LsVNTnt1x21ZoIT4GawlyjWoSODKgMs/YiLIhNb7cs1cSY3J?= =?us-ascii?Q?lNVjisXZg/YmKFJM0M4jobrvco7qy3tqJQ7+Az+OST6QxqckI6KMvqOXqMJU?= =?us-ascii?Q?g6AMlvBx/aRz64fnuuP66L7KlpLbd7HZbGJCuiD0eu4XFoMzAkd0Vv7rQgZA?= =?us-ascii?Q?sgzpmRY0creX2NNtT2WFC8Du93oSd+DLnZvnyJKUHv1jJAzO/enPiDRPJtAq?= =?us-ascii?Q?isBGxwevzLq8Har/QAf+CzvCfIjnA4KvWkJDFfS0j1GtkmFlDnt6V7F1khSy?= =?us-ascii?Q?UgJPeJwoA3vDYcbAvgFcsG4d+GwZ7U4i/+GgWUBn5Fs8yIvnROziklRKdpne?= =?us-ascii?Q?he0F6I7prql+f6osg2pJl63SWclHpzk6o1raJbWT+PYFweEM8sudgeptgq6X?= =?us-ascii?Q?uiUYaubUIpLWuicELO32e8uxSkCNksDSF6x5En346kGNwavcysEQcfwER2nL?= =?us-ascii?Q?14fYXot3Z2Nu0RW0Wrg+Yd6JP+bFi3enhXYq4MiavAMK3UeKL058J8nUaBja?= =?us-ascii?Q?agsaujFVB5PT05e8xQxnLNRWwnXsPEFgE8ZCh0RQbTNm/G+qtzZB4ktpupuS?= =?us-ascii?Q?IeGBvo32T6s59xY5BWpDaUgUXd1sXldTw3r9VJCfkde8Bb8rQIxjucqJVYOk?= =?us-ascii?Q?pspkf9JPyjO+ihWq3XHaxU3mZ5Cy5EiToFowEa9XWRFnnvnJXCiq3pIAFf+F?= =?us-ascii?Q?WBlsHdKAYmhIvYJmfTZsmQtgL+yyw1eE0SQraOd9UzV4TZM88CEzUbgt+sjj?= =?us-ascii?Q?yj2bauBtjjq8NesllNYTXU7NgwrR3rQ35yVoD1F+ZHzYomlYCQt8zfZObWDq?= =?us-ascii?Q?dtQHZLKP5QrbUOPYDrrn2iU7CRca2HdiD1hk5lT54tNEfAGTq+cFENAzKYvp?= =?us-ascii?Q?eVshgarFV7lGxuBwqaxTpa8tj2AaNzY75uO320H0ZwQWbNCdOROGCuuX18H+?= =?us-ascii?Q?mibEyQVgHnsc45+i1lL63cFcRiI28Uljw6a7zjYHGCaabVlOTjRpKhF4aHPs?= =?us-ascii?Q?WdIXl4QtbqE3LAWgGPzgZWvmDRhG/p7S4RIHiCMvWvDaxrrOUEPzxL3X5rnO?= =?us-ascii?Q?P6Jzwzb+ocmwWHbE7lnkns681Tw/LCONebB?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2254; 6:a/ToSvMBiRLmUM4vbxvQ398goV42YpRhK69ExqFEApBLD2VK9FvpgMvcPuIYozKUKltbTs7Yjyt5Et06gp4oBy23zv0nvUJpSKMGLDaMymlTn8g9GBQC2rNE0/RTRghLo+ySeDZuZDOysl2MTeKaBBXuSfc6L2KThOGCppHf2pg+L+hmXo1UB2R9OiFAjzhKpASCkciwYlioulteZge2GgoyJIcv1yXEJ5no0BmoAAQXJeN78igct2Lbir17x7TELoeDmoUMEONJA1o6/BzS7Bvb0j+jUPKtcKK2ZDB2IYc=; 5:Vbw2OKqf4FhGwWFKNbcdXVHk1cagzbpcsAuy90VQfWBO1C7PJZ3TOw0Ph+rFFFN+nJB7AbUJ3nEmVF2dOtbpKh60nyS1iv/5deswnoRQzm3uN0Eq67KLYyrkjLkcK2nYu+5pnETLRAevneBDht+MhA==; 24:zTcKtNe6bxBk3zsAvFbGU64Csfh9xpgtXAot1KAXw9bBT+d99xBlRYHPm+8nz/owMaF5jUT3mtbAh7pJptwrjdQvS811F7IVINVaDvjQYfY=; 7:o1lNjnWHOCm5+QpuAru++7t3bI5KHDpMRz7ClUI55dWXXqigsBwf+Kkh5oIYVYeIoIpxFeg7WJnUKGfY95o0Gvif1eUJeT+Nn2NeDjv9OCSTfTQE4OnbUkZGOlN9wSb/p49S3swWslrWlmr35My4D8YXHQIHrLrrLSFTXKSzAzAWVPJcPy2v/omoGojzKXmadusEvAkE/EqbljHELJBLZyj19u7oOQXdK/865g2kPi0A3OqGEN6yQ90H09fLpGiM SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Sep 2016 12:03:01.8229 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR07MB2254 If XSTAT_IS_XSTAT64 is enabled, there's no difference between that syscalls and their 64-bit versions. It also means that struct stat has no pads, and stat_overflow() is not needed. So we can reuse lxstat64 and xstat64. In this patch, syscalls redirected to their 64-bit versions. At now, the only user of it is aarch64/ilp32 that is under development, but the patch may be applied separately because it's generic. 2016-09-09: Yury Norov * sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c: don't declare __lxstat() and symbols if XSTAT_IS_XSTAT64 is enabled. * sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c: declare __lxstat symbols if XSTAT_IS_XSTAT64 is enabled. * sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c: don't declare __xstat() and symbols if XSTAT_IS_XSTAT64 is enabled. * sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c: declare __xstat symbols if XSTAT_IS_XSTAT64 is enabled. Signed-off-by: Yury Norov --- sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c | 2 ++ sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c | 7 +++++++ sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c | 2 ++ sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c | 7 +++++++ 4 files changed, 18 insertions(+) diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c index 395f98b..4fec6c9 100644 --- a/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c +++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat.c @@ -25,6 +25,7 @@ #include #include +#ifndef XSTAT_IS_XSTAT64 #include "overflow.h" /* Get information about the file NAME in BUF. */ @@ -41,3 +42,4 @@ __lxstat (int vers, const char *name, struct stat *buf) return -1; } hidden_def (__lxstat) +#endif diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c index e1c15a8..96cb710 100644 --- a/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c +++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/lxstat64.c @@ -15,6 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see . */ +#define __lxstat __lxstat_disable #include #include @@ -36,3 +37,9 @@ __lxstat64 (int vers, const char *name, struct stat64 *buf) return -1; } hidden_def (__lxstat64) + +#undef __lxstat +#ifdef XSTAT_IS_XSTAT64 +strong_alias (__lxstat64, __lxstat) +hidden_ver (__lxstat64, __lxstat) +#endif diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c index fdd2cb0..8fc13bd 100644 --- a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c +++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat.c @@ -25,6 +25,7 @@ #include #include +#ifndef XSTAT_IS_XSTAT64 #include "overflow.h" /* Get information about the file NAME in BUF. */ @@ -41,3 +42,4 @@ __xstat (int vers, const char *name, struct stat *buf) return -1; } hidden_def (__xstat) +#endif diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c index 2252337..b3d281e 100644 --- a/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c +++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/xstat64.c @@ -15,6 +15,7 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see . */ +#define __xstat __xstat_disable #include #include @@ -36,3 +37,9 @@ __xstat64 (int vers, const char *name, struct stat64 *buf) return -1; } hidden_def (__xstat64) + +#undef __xstat +#ifdef XSTAT_IS_XSTAT64 +strong_alias (__xstat64, __xstat) +hidden_ver (__xstat64, __xstat) +#endif