From patchwork Wed Aug 24 12:24: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: 14899 Received: (qmail 77404 invoked by alias); 24 Aug 2016 12:25:02 -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 77391 invoked by uid 89); 24 Aug 2016 12:25:01 -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=whence, libc_hidden_ver, (unknown), ltp X-HELO: NAM02-SN1-obe.outbound.protection.outlook.com Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Yuri.Norov@caviumnetworks.com; From: Yury Norov To: Adhemerval Zanella CC: Yury Norov , Subject: [RFC PATCH] Consolidate __lseek(), __llseek implementation Date: Wed, 24 Aug 2016 15:24:36 +0300 Message-ID: <1472041476-14664-1-git-send-email-ynorov@caviumnetworks.com> MIME-Version: 1.0 X-ClientProxiedBy: VI1PR07CA0067.eurprd07.prod.outlook.com (10.164.94.163) To SN1PR07MB2255.namprd07.prod.outlook.com (10.164.47.149) X-MS-Office365-Filtering-Correlation-Id: 04059f07-d620-4835-f7ed-08d3cc19a348 X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2255; 2:teYtpKBq9URz0GK7/1uRtaGPlfV6siJY79/ycefBcerybulbH/zmTnrEDurhtQ2SeCNW8sH03PmuqOusH9O9g0eS8Nif5Z0nPf+EmFsPFbt3C9DyLtocQvKkeIO2iqseHWGbPPpFjj9Gx/95Fs/fNgdqwkn+drRCaNwoxwyMzNTVtLlJ7D8wBsnhUpSWbuCm; 3:oDsSivEy2bd3uFwSIFFNC4RUqafXq28cDUUdOSH+9wFvhMn0vn+B3coX39l9472ZW2DYLQLcbPrabN7JgtoJKjek1u8kikhozQkY7//YzsK4X+SQoNd4+KwBjj5/Ssf7 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR07MB2255; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2255; 25:HaHMBDFNcyhYe+vxOVjC7BxFvvclviWJt171KGaZhyLLTO8HkRibX1k/06lms+uXwgTFK0jiyQwCPpZZbFAbA12PB8saor4k5KHUKtxs64XZBx84eBVLXjsw6wiavgdDq44DqPJGoNnUS1agg8OY3CrdLu352QkSNL3+MQPP5OM1PIe68zR7Sd0EnhG9Jqqo7K6vA+ElBiYAltNWh7K9MRVxeqgpPAIfVh0z3nySco1Dg6q2NC4YiIaiIZLslGGzrYf89IN8eWcm6y3Ycdw9OE0c2AuQHEdywg6y4reWQDoqb75z38+RiD6o8/3U2SNfN82j8PLMHo5mlYrkEp7jvp7BuRBBrftkc8wfQ8C5OI4WJn0I5yBtNIreAyPymrezCfW256u/b1i5uk4I+YVMxGTFTjG3ZqCUWBQ9nzjXgbho3otst45sazhxfG8LI346fzfFN0SaJmWsjXdGzjRcdMxGgJUhRTdaJpj40XGC+Eig3J4hkJvQlqbCv6lxoKpkrFhzADKZvedCpMR+O3pkECZpO2JmOE3vu/VjugqBto+zmJT5qQ/t2IOBI+qRikBLTwcEpzCWFnvdAAAmsJlWodg/MRDmK2mcHIrKB+1hxpi4FPcVurLEpsoL6UvxagzPvefcT2xNdLhPbgMVdr256d2mWEk4U4eQb5PgTgHjXYCLYAlFbVSaCTT71g83lZcrhXOXwPr0SPy6bot5hoqyn7Akh4k8q2N0bSeIgP1w/U78sBN0BLYFzZA8NpXqupXguL7gf7UQ48VY0kHM7Z2gdA== X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2255; 31:B6OxGoJiFanOn1I9DyldeuK138MgzSTabTC9FHOHxp7tf1DvVEb2JBcg3ltoKnC9IZsvpnkfP3SFZgpluEjLd6xkmbZssHouN0emZBBZl4Wb9pDAFmdbfVBrQjIZG71ZR2xYtLdWwoIUNrjnLyzzWxXhM/e04wtBbuo3tHV+fcxwNrZUBMn/PWM+ipt7j2yRCO2hksCXSJpBSRsJRcbQFewqrePZUe7cCjp+3XgyO6w=; 20:Wlg6IvK/PsALHAjDJ4q7Vu6zcpIhTdzzIhLaSpltC/d16hFpjKfOGPE7imndSs96nkhxv5ILVprSeP1qEHoxos01xsdqjT2Aa4T7l8+w2hoEDvqS1gETJVJWPpYxX9hb4Qa9vfte4x/f23MdlNM1GbK3C9Y7XbYV0KSmtdrGWneFLRqdEtgWTXZP5WRudYh0wGCM/NllMKs5neWCCgLGwc6qyETdU0pFxKh2vkpqpdJXjmMItTOevg15/HFe3nqeUmjH1oombfwq9GEdXygX3IO5ziu3kIkUYQtJgNMxWMg2IFwXBNCtCJv9q8hGoEkw9ySDb/L0VdtMnE1aAcVa1xwF7uRfV5hmfKiUDgJlrj7vQXOiTRXV5DYoylyucS8JJtYXrVb2LIJS5ViDr1Yjai+71pB0Q2eGNR7cLo8NYKk1b6ON7VojwJSpLaqRxT3UeuR/6MSn2zVZwN3l6vQ1G/AQQ2+oeqANWrGOo7Zjq0Ll+WMlsFoPL6R3t/i/GJmXDBZMMLKMWb5lKUyXLkYVPH9jTCdtbUllvaO2ufNBYUmhbnxzaB979/z9H3uUr3Tdiu/EMdKLPT2DtWaQo3/sgmtBafEyeaKdi4kq69cgO4U= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046); SRVR:SN1PR07MB2255; BCL:0; PCL:0; RULEID:; SRVR:SN1PR07MB2255; X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2255; 4:R1Yb1cKz1Id0TFgsPnCkpdGTR/Rge7vEbiIcN369jlN7gE9AxnmaO8O0qml8T6Sy5U58YjjPHkapRJZ37+YzzM+IngHbsZsupjkp6Vx2f3tgUxgcwAVoLoG4KLMCsAua8HGRzXIIwdkoY5Dj/vpc7U9xUS40dMxlY/jWK8fIFljyUlQG6qipT4TzeThovoUJ77ubGfacsqFrlKFzK/oN7y5QHv1cIPVm1FHaMXyy0UZmqiXMNJb7CnluiZpdfj1H/wXI+GTQLpxO2AeTZ6klcLNe6Oh1um+IxTh+RWwwtUEUgCNyEpYoNLWexIpGiOaeCV+yNhRqZ17rzG3sf4u83JBpgZ8fEg3j4xnxqZM96TOFx5onl8xHKy811/WROGRAEvl6CZcXawD2yNwnMOmE7w== X-Forefront-PRVS: 0044C17179 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(7916002)(199003)(189002)(47776003)(110136002)(81166006)(305945005)(7846002)(7736002)(68736007)(48376002)(50226002)(6116002)(19580395003)(97736004)(66066001)(81156014)(586003)(19580405001)(4326007)(8676002)(575784001)(3846002)(2906002)(5660300001)(33646002)(106356001)(36756003)(5003940100001)(189998001)(229853001)(101416001)(77096005)(50466002)(105586002)(50986999)(76506005)(92566002)(42186005); DIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR07MB2255; 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; SN1PR07MB2255; 23:I5lO0zaLlcmPrpNHd7RoixadEXuTTCdM3XKLwpKJb?= =?us-ascii?Q?sFmh9feBYUzpO5dGsJB4b51VW2fhROw+1Bls3uYVCG2zupCGe1XPTNX1jegk?= =?us-ascii?Q?oTaBpddzSLH1RwAJTlJGViKqO9k9moiHLaVJixQgg5zlJljCZdcBlWsK/E2b?= =?us-ascii?Q?EaUyEkkenKT6GM+YYheCIatCSXbr2+BwtijObOhDMjab46laKgx0oPrMBaQZ?= =?us-ascii?Q?/riRBz9MJJEvhgfv3Uix8KPNgoaCnkz27fAIKWHTY7fT+FwRGDVu5ZzLK0Od?= =?us-ascii?Q?alL40t+gT2QyTZc4v5a+Qn9G1igk7xLXoPubaqtWVbcKTdvIHBX74oh1I/+q?= =?us-ascii?Q?FQhuU0krmW8CMwp6GyuBsGN2Ks2o1uLkVBU7udtt7+opjB71MSQ65i9V9aIX?= =?us-ascii?Q?hCPrXQG0Tgy0vsqs8PhXlsNfk0W4yVSQGnHW16Wos52e5vE7PK9FgLDM37/e?= =?us-ascii?Q?4jfpsy9yZEmno7WnekRwCclICdU+Wa+0bf96aPY8YaavefNM+73VkY/16pUR?= =?us-ascii?Q?N5s7+yEX4PP6xh8icqXbNlpI7ZzHazT5CjTfPhdbkLUv+zqD+hXSnTj9Q1c3?= =?us-ascii?Q?Eh+iLZaXlO8m0DylBKA/nfQPqHtEJDiaXWme0gNa8pOVJ9Gx8PFgDKGMte9V?= =?us-ascii?Q?cC+OFSz3uC2J9oTypUzJqIc96OOLvWugb+ka8hZDYhLFhhjZucMrEfaYvaWE?= =?us-ascii?Q?BU270NqpQjYS/k8z+3XViWQFc9KxKiq1q4ThGrFpS57+vQajDxvSw9D+6r6O?= =?us-ascii?Q?JQurcKTuX05GirVCK+vuPn32LUrEmsomimT2IEhu258DTjkKsz9oZzjRJkX5?= =?us-ascii?Q?enuGrYvqjMgranTycRRHs+yIfwnW31rkZoq+go7gWCSjFLOGCcl24eBHJVq1?= =?us-ascii?Q?do5kE+vt1ltPFT0aT7S8vDMALD1cjY3zXxcUp7JW5M7XJPmlhwYPewIHczcd?= =?us-ascii?Q?FF73wb4eO85Gax2PEuxJjh9DVzs7LtDLXbiTMFUknunrCHHdFkEWgizomV5A?= =?us-ascii?Q?wM1FYLhx7y4xSv98lfOb4QROAebWjsQoAdYBN9J9NTMEN/gg5ZIuub3hCtLy?= =?us-ascii?Q?gGwdTWIdVvxu2zExNRHEraEhxT7?= X-Microsoft-Exchange-Diagnostics: 1; SN1PR07MB2255; 6:dltz6kXZVyz+gQP9w7mxkU6SAfWHWugYJ3ijAFehH1M/gdq/g0FocDpSgjYnx28OCiS5gA2hWP1PNldrykxmweWkRV4bgqX0pMQgmVe+hGZoxZATVsMRq+q5Y5w8m0mUd27jMeMWI8l1kVj0yVvZ6NEkD0xH3lMr4PdQZKTtDU720PhRozLBTHOt7ZwXHNcHZ9kemaICZRKeT1H9/9XjB/IU92AouCxMg59sHTfjWr2b5JFJZndf7Jf2Te452DcR0CTDiGZnZsn5dcKo6ADph3+OzJi1x4do/yhxwGSmNSI=; 5:dQ9Mb5hN36U2sgvyKthyeOsuo5VKEjpSV/wWNT7cUJfd+BCXb4iRP6a78ofrUYBEUmSezxB7VPzqGZ0AT0O1jsfNZBXGFIndVk8LmKp/cWkHxEnQg288pApQ6QwHjWW24/rpFw2cM8x800q0XpB2Fw==; 24:XwEaD/dV38HsIfCJtNQOjbo3BhpaJ5nofKghr/82K1hDxwIJ9jcNSv6LBXdOzHh2cas2WZNckBqtz6cMbYg+R8tl3WsdLmBshQCbhpt70G8=; 7:YhPsr6fNZGqTGM65MVbNub85XohZG80pqID8bTsr0EVTqbV8jcJ06Vg93I8cengfV897PHV5kQseBJk87y03OJeUXh17yi2zU9TxHMC0OZrZA1JN7PNjWsbA9vZ1hUtYX5ETMhqkK+jyCeJXHf2vIYtZ5UYJ3D2sg8cm4UsfffmM4hIe6ImJ0QtUmPYqlvFON6hZE3yly4GRDP/3BmPEkC7biFdlivKrVtq5KblMY+h2pJCoPmZsvMQoogVxQAZj SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Aug 2016 12:24:47.0715 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR07MB2255 Hi Adhemerval, Current __lseek() implementation under sysdeps/unix/sysv/linux/generic/wordsize-32/lseek.c is broken if off_t is 64-bit type. In this patch it is redirected to 64-bit __llseek() version. It helps to avoid introducing platform implementation for __lseek() under aarch64/ilp32. Notice that using SYSCALL_LL64() makes LTP hang for me (ltp-pan itself), so I don't use it. I am also not sure this patch does not affect other ports, and that there's no alternative implementations in glibc that we'd cleenup. So I marked it as RFC. Please take a look. If you find it helpful, I'll handle SYSCALL_LL64() issue and resend it. Yury. Signed-off-by: Yury Norov --- sysdeps/unix/sysv/linux/generic/wordsize-32/llseek.c | 7 +++++++ sysdeps/unix/sysv/linux/generic/wordsize-32/lseek.c | 2 ++ 2 files changed, 9 insertions(+) diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/llseek.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/llseek.c index 458964c..3352ffd 100644 --- a/sysdeps/unix/sysv/linux/generic/wordsize-32/llseek.c +++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/llseek.c @@ -39,6 +39,13 @@ strong_alias (__llseek, __libc_lseek64) strong_alias (__llseek, __lseek64) weak_alias (__llseek, lseek64) +#ifdef __OFF_T_MATCHES_OFF64_T +strong_alias (__llseek, __lseek) +libc_hidden_ver (__llseek,__lseek) +weak_alias (__llseek, lseek) +strong_alias (__llseek, __libc_lseek) +#endif + /* llseek doesn't have a prototype. Since the second parameter is a 64bit type, this results in wrong behaviour if no prototype is provided. */ diff --git a/sysdeps/unix/sysv/linux/generic/wordsize-32/lseek.c b/sysdeps/unix/sysv/linux/generic/wordsize-32/lseek.c index dbf0b26..c953e79 100644 --- a/sysdeps/unix/sysv/linux/generic/wordsize-32/lseek.c +++ b/sysdeps/unix/sysv/linux/generic/wordsize-32/lseek.c @@ -23,6 +23,7 @@ #include #include +#ifndef __OFF_T_MATCHES_OFF64_T #include "overflow.h" off_t @@ -36,3 +37,4 @@ __lseek (int fd, off_t offset, int whence) libc_hidden_def (__lseek) weak_alias (__lseek, lseek) strong_alias (__lseek, __libc_lseek) +#endif