From patchwork Mon Sep 19 20:56:49 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yury Norov X-Patchwork-Id: 15782 Received: (qmail 54906 invoked by alias); 19 Sep 2016 20:57:15 -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 54883 invoked by uid 89); 19 Sep 2016 20:57:14 -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= X-HELO: NAM02-BL2-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 Subject: [PATCH] generic/wordsize-32: don't duplicate truncate syscalls if not needed Date: Mon, 19 Sep 2016 23:56:49 +0300 Message-ID: <1474318609-18149-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-ClientProxiedBy: AM4PR02CA0020.eurprd02.prod.outlook.com (10.165.239.158) To CY1PR07MB2246.namprd07.prod.outlook.com (10.164.112.148) X-MS-Office365-Filtering-Correlation-Id: 5b426251-f2bc-434b-8b15-08d3e0cf80d7 X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2246; 2:OACw/lMgkE/ssrXvs1xbQ9hSP8OpzSkTZnH4JoVVk5IX+Qlf89xeez2Gb0m96attBUrXuqgbrfayqcFCZOOPJR5sr9T76kmw03Hs+wQgufvqLi84e2jNAa7zQUXDRg4RvJbfTV+V+QAc0RsZLlwJtoT+gU6wxbCvVJfFuqpnJcWdkEHlt0jdXCimPdA1+rX4; 3:LsS0aypYFlh7oNuWlnENImrhL12UQPQILCCZhRm4Wk+CXGQRf/E8rExZ2LYXCIYTxa4idTdF03D6WCIXWLkakj6+aWAsGW1HYVoxDbHu+ikZFLTQ69RUCZespa2c38Kx X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR07MB2246; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2246; 25:JxQZoU80B7NpxlBYVZI7xxAIXTttzI1nLgJBlTCQBeGgH6nheUbTZ04gcJiJLv22Dg2njL1m9NV7aIcgX9jcf1Ig4LxnWyrQJVDeOG77a2wAQNIhf/+RIIRxscNKwrfMsGDHbNZl8Lc1hO9JfsYdUupYw05d6DV62TaUytAA4PkfwuMOENXrrYbpSiJK209k2ic2CdAMvV0v26PIROX7uKrYik58+STJOankBNOmI4FcqJxDQlcefa9X5yWLzoYQXwCqokL8FBxhF8gy6jdohJQWZ3ifQEunbQIdTKph1KtnmXUEHMPXSgQ4s1yZQKI65czjgFVjKh4JuwAF+Shc0oE8vkQEZ1DE+LoGONtOPDPl69lMnD3ett7uyO9XhpBNpDYIoxtfMOIN7GLs+We/pXE0IPlxsSo3NkYrf0Ez5XfUJrr4Wr6L7NIeVR8Ide/gm3jzZzieOleH6X1cVFN5hEVZ74j5MV+3G9z2h9SoMhXx3iNqEXMPCn8GSSX8yNvV+ha6DTkgPyRKFUnT/gwwX9Fw1azLCL9VpYcfmSK/XtJCyNhqg8+wEcHiAm8NaPrwuedRlmbubZ6aiUqApb+dwgTZu6NHL1R5tp8SI+LKa5dF4/snBXMp4vk23xQMwKkJlSjDQMaZNbdO9Lb2ru4TyHtcdWR/c2eZjKiKs4O3AeATAn4kgHQ/JpdQGF4Qe+D/cAPnWwFislLMwORtj7OrsEI4FMkZoYL8Ev9jFMPLlanZWQijTMr9VRve2sTCZkm7Xq1Mct/sRd3NwdQnwqi0C3XKBljqXmbByCLnN7tCkKkbuIa4RZ3cfkmWjPt+SaRpbXcqkSeoC8Wl1Ug//xx3ABDNYMVeGqKZ+qFdY6PJuW4= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2246; 31:KS3OnELkDJ+vejIJjZODEGszX9QronD0eQiEvgMQK31FhOcwBYBU40LIB+OCJ+cCd2Njbah5Mpr5HKBFb3ReERT6VHSZcefhUkiolCnM77+G8IVap+6henDPr2DYCFUafG2e86UBIG6VFtCmDPJWf0VFbJldf1N36tTEodJPGHL7eFgaRJCjj/z96YcY/wfjCzf6rU1potHFMZOdIj/d1LjzbqJ4/xe1o9T6n5KdsRY=; 20:syQ/n0lscLu0nbWZpH61YQfy6s2bHPJSdqUJw+d+Y4hQ1BSm5cjIND0t3xZJy7Ka/1g4JqWKXPRzSg+g+hJTuFKWB0ms+7FdVXxw4kaleUr0AUbq1laDcV0ezpg1iN02N5+9CUnSPGk33pIk/aOB2xtNrp+35SRg4d/YlJxbtIJgu35gdkk8SsEuj52jbvJ7LpyYUwqG6nZJBwLNZDAipUjMl9AWZ0G1Avl27CXRbjZL9IKbmBHRNFsZms0Af+X55a+DE1ge3EeOvNUlvQtD6SZvO/VSFgQWeSmWLD8lPovGI1xX1C7kYiayx6DKUfrtUeJCQ3EzLYci/g9lUEolaqiVvvWj72lNcswDZ+GRUsyBP2+p5ImhWCuQoqif5RyYbAg3Q8mDbkuPVs6Q0kP6Ygp4ZL2dWMjrxzESFQQ/THC0WhjAIMqlVRzh5S1LjSJ7FguUd6aliGIEsX/qjSPZG3lhOH6JmldyCPEHiSMdOVrfv8IJt15ZkRpCu3kJ+cPAlD9xPypA+iFlhZnJDen5EAwrr1TTe5UE5Tp22Nwl+41E78fmXNJ2LLWcldtQAKIad5369YHLD0oanvcDP7eeX/+/ttVlrbJZ279Cm9rTBwY= 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)(10201501046)(3002001); SRVR:CY1PR07MB2246; BCL:0; PCL:0; RULEID:; SRVR:CY1PR07MB2246; X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2246; 4:lvtmf2Ysl20AWnR1nGw1IA+kxN1Qugy72IaJIvXzMjMJdNsef+YWUfZFxbuoW1y1vYHYzTLe+DZkJBftCnXsOLEt0jKuG1Q2JJNo7XBkyVnsS46z2b5mO1jIfVlQ+xMo4HrsulUxGwF3sqmNwvFtmCiOp2vnvZav5oAXPniX8fcEhHdPcgeeoFKocmSM0TeaLTM0/rwo6sQGXcMtbcaMDT6/kG1QuzGkDyRDY3kUWurADfba3wWhWylyqMiRHLlqTDeDGvSultR+xNVj56rqHTFrITwO4rtcRXAmBkbRjw6jG5RS4wwpIo015cwY56P2QdPJvlqFtTRFTrcy15Jgxezbxb8/MP8+15/mKui5LmF5a4UexdDlB1MW+ZaDN9MnZTiPw0rrWnqjiiCiaSp7p4xw6ZwUlbfh2G9yGEOT0BEB/jq8895uEIMT/HGHKRj/2Qi56ih0LIfjd4vzIGjaDA== X-Forefront-PRVS: 0070A8666B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(7916002)(199003)(377424004)(189002)(77096005)(50466002)(66066001)(97736004)(7736002)(48376002)(7846002)(50986999)(107886002)(6116002)(189998001)(450100001)(42186005)(76506005)(4001430100002)(81156014)(105586002)(81166006)(8676002)(3846002)(586003)(50226002)(15975445007)(47776003)(229853001)(33646002)(106356001)(5003940100001)(2351001)(2906002)(19580395003)(92566002)(68736007)(305945005)(36756003)(4326007)(110136003)(19580405001)(101416001)(5660300001)(41533002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR07MB2246; 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; CY1PR07MB2246; 23:Sw22UrZEE16zcFner3E4fUaRCxMHsZcb6wr4Hwfin?= =?us-ascii?Q?MzClvQugiTKo7wu1bAwVGkugPt/6cehxzY6ouhdr/7Q7fDDtFbtFXF4vTUYt?= =?us-ascii?Q?ClbkmDHHs5Yzsgc3QZtvBHMNnF8uh0jNGNZ9omaZPJXMBLY2Ka6mdkBnalav?= =?us-ascii?Q?ZvNaKfAYchiR2eRO35wPbVPGHoz1cH0ljHlifajqou25RShnz7Yz5+0ZPC4A?= =?us-ascii?Q?+BIoRpqyeKT0ZpwjjV/7QA9M4M801LOfgrZfljP2C5Y2LB+QSg4HQrW+Op0v?= =?us-ascii?Q?G/XY6Kh2wZXc8zkefZbyQ/DqkJbTsFQsvZlZ13Nm4pjBFGtxYQFo3JBFo4A/?= =?us-ascii?Q?zjnRx0JJPHwkZogWj0f/0sDVXpEyUiHnlNb962XcL22korY5+HJgnTyVL0T6?= =?us-ascii?Q?iYvTy6DjPPRVjFbB26whiESQlmrlZtpmRkuw2DljesFz0WgpVa3quEOYfqFe?= =?us-ascii?Q?023OGTlrOB99Cj8M+cII16fA0yPWxk/A+VOyPdz+qwThCQ+3RGPd5mdaWOKz?= =?us-ascii?Q?NbtF/7RxKpjm9CiamFp0+x+BDT040PhRH0B5zOM+ezPdONAYKWOFoIKZ1dVC?= =?us-ascii?Q?6iqKW9apC43dxyktnkiHvO5CsM53HbembmKwx9BmaafWKGzqMd77LW49Vgw+?= =?us-ascii?Q?iXgYWxZ9uW9MmUnocVgaBZcKQFExDIVTUQiQX4I6CknRdPI/wjrjdDxoNHxC?= =?us-ascii?Q?yn2C0D0IJtbnIULU8yAaeTchEFxNxFStMIb/+VHA/hQePjbdLSgCJGuZMVQ/?= =?us-ascii?Q?7JSc2tZ8A45Gr0C7dKLxtqC4K8FjegY9xLWUZsK7t/Er6Y07BmYdV+Q22vu3?= =?us-ascii?Q?f65soNtk+6bxVprzeVd5o5yyAPa6djQjkYkFdjrf1IUpzC1L7qKxhwekj4iH?= =?us-ascii?Q?fMWNO47Jxy/3VAavDJvh47A7Alf8gXthcIYTaogA+3iUeUO5zwe6ZrIFOEdd?= =?us-ascii?Q?AxbDz7JADvUYX3mtnSlxF75G3DOcsh3FipT0kr3CF3RICv6VQXlGHVcIc2ZK?= =?us-ascii?Q?w+HUd54Mu2SGuxRvGv+t7A9v8BHXJKHKEDmLIXs3KCjpPDpMCv9se+Xz4Rbv?= =?us-ascii?Q?vr3ghgJYVPNI1yFTm3kl+TLLFgWW4SBynkhZEVU3Vniz4OyWPwmSFS5MfNtr?= =?us-ascii?Q?KIRb3Uz5pTXfrXJHFab+EL821aZqxA20cgsG2ZYpgMhiLL/1yLVGel3m2SIJ?= =?us-ascii?Q?JbsuiL8PtVJK/7B39ZCVvh8UW4rrk+OwFMAW4ay0E0FtEDDnPrsPSFSmA=3D?= =?us-ascii?Q?=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR07MB2246; 6:tQ+MR/GxTqceY+jAXMbyFlBwdoUs3H3mLLWzYCurH4yPA6m6KLBCzzoR8nWlbY/pPYh15uF6P6oMTJACZNaVqxz+yY1mXW7zb9vnD+HJqkCvENleNwsk0WzdZZuktJMOMAVOMEr8v9xJy5T10RXM0xIJIYihwq7guqCv7w4X6D9h9MbAVlGD/VcSIkYF5Ym/iNHTjzj39W9ldMkjpydz/h+Hq8AcpDlRpgMBRSoenKJnlw4bLHRObOC9LbdYbJnogV8OnnsgADKYUFdhFlhoY0m6Py993DShkaLwXS7JaQk=; 5:l2JXFed4dyuu6n1ofqdn0PI4dDEJ0jUBOJwOFTxWBB7t5lfxZaPJXViGx8Z4EOk6Pn3338DUfwrHBJI4ar3nrdTyRD1mq6Dsj7YeUvX40y0OfcJihkIF4tSoZ30knQLHSK84a038RlGOVADXxEvrcQ==; 24:7dnGVe6t5aqSdNn/xxiXPUOva5zzglsYjzqINekQpux99xthiTiv+l/hP5YctMKiZXg6NE4boZn4OAEy9uBDCCAe3H8mcXGw8tligbVPXR4=; 7:ps2i4msrOwB0A0Upkg7ntasW1FwiRpnmDYl7Y2v+ccSeCEKJY/PkHwzceQul6/De/RvD8g5rbzznXxmXnUiE5ny8A3nqP3lNvdK5/FU/+1ULUqw7Bfsz/VhcH8/W5x1ZQZHJOjDiVdxH4+jQyKlMhVJOq0gcwFA151ogVJKcZsYoy+g61ra/A151MiqfAm+xjZN+AeSEdQw3yq1erOm4qANXKQ/tTQnLCp5p7nmErZsVo3ts81hr7oI1OvLznZQur9EGOOtoKLzRCeWxDCdKY/Lga3p1Dn/m280W/R/PdwKEB4HUBV/CYCYeU55UhJdi SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2016 20:57:00.9880 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR07MB2246 If off_t is 64-bit, current implementation of truncate() and ftruncate() is wrong, and proper implementation is identical to corresponding 64-bit versions of syscalls. This patch creates aliases for it. 2016-09-19: Yury Norov * sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate.c: don't declare ftruncate() and symbols if off_t is 64-bit. * sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate64.c: declare ftruncate() and symbols if off_t is 64-bit. * sysdeps/unix/sysv/linux/generic/wordsize-32/truncate.c don't declare truncate() and symbols if off_t is 64-bit. * sysdeps/unix/sysv/linux/generic/wordsize-32/truncate64.c declare truncate() and symbols if off_t is 64-bit. Signed-off-by: Yury Norov --- sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate.c | 2 ++ sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate64.c | 9 +++++++++ sysdeps/unix/sysv/linux/generic/wordsize-32/truncate.c | 2 ++ sysdeps/unix/sysv/linux/generic/wordsize-32/truncate64.c | 9 +++++++++ 4 files changed, 22 insertions(+) diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate.c index e1b500d..35ae787 100644 --- a/sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate.c +++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate.c @@ -20,6 +20,7 @@ #include #include +#ifndef __OFF_T_MATCHES_OFF64_T /* Truncate the file FD refers to to LENGTH bytes. */ int __ftruncate (int fd, off_t length) @@ -29,3 +30,4 @@ __ftruncate (int fd, off_t length) __LONG_LONG_PAIR (length >> 31, length)); } weak_alias (__ftruncate, ftruncate) +#endif diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate64.c index 946f05a..0ff3e70 100644 --- a/sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate64.c +++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/ftruncate64.c @@ -15,6 +15,8 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see . */ +#define __ftruncate __ftruncate_disable +#define ftruncate ftruncate_disable #include #include @@ -30,3 +32,10 @@ __ftruncate64 (int fd, off64_t length) __ALIGNMENT_ARG __LONG_LONG_PAIR (high, low)); } weak_alias (__ftruncate64, ftruncate64) + +#undef __ftruncate +#undef ftruncate +#ifdef __OFF_T_MATCHES_OFF64_T +weak_alias (__ftruncate64, __ftruncate) +weak_alias (__ftruncate64, ftruncate) +#endif diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/truncate.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/truncate.c index 2579951..b3e54e4 100644 --- a/sysdeps/unix/sysv/linux/generic/wordsize-32/truncate.c +++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/truncate.c @@ -20,6 +20,7 @@ #include #include +#ifndef __OFF_T_MATCHES_OFF64_T /* Truncate PATH to LENGTH bytes. */ int __truncate (const char *path, off_t length) @@ -29,3 +30,4 @@ __truncate (const char *path, off_t length) __LONG_LONG_PAIR (length >> 31, length)); } weak_alias (__truncate, truncate) +#endif diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/truncate64.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/truncate64.c index f2927ea..e4343cd 100644 --- a/sysdeps/unix/sysv/linux/generic/wordsize-32/truncate64.c +++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/truncate64.c @@ -15,6 +15,8 @@ You should have received a copy of the GNU Lesser General Public License along with the GNU C Library. If not, see . */ +#define __truncate __truncate_disabled +#define truncate truncate_disabled #include #include @@ -29,3 +31,10 @@ truncate64 (const char *path, off64_t length) return INLINE_SYSCALL (truncate64, __ALIGNMENT_COUNT (3, 4), path, __ALIGNMENT_ARG __LONG_LONG_PAIR (high, low)); } + +#undef __truncate +#undef truncate +#ifdef __OFF_T_MATCHES_OFF64_T +weak_alias (truncate64, __truncate) +weak_alias (truncate64, truncate) +#endif