From patchwork Mon Aug 20 16:53:35 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Weimer X-Patchwork-Id: 28982 Received: (qmail 82633 invoked by alias); 20 Aug 2018 16:53:40 -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 82618 invoked by uid 89); 20 Aug 2018 16:53:40 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-23.9 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LAZY_DOMAIN_SECURITY, KAM_SHORT, SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=2011, Chris, chris, contributed X-HELO: mx1.redhat.com Subject: Re: [PATCH] __readlink_chk: Assume HAVE_INLINED_SYSCALLS To: Adhemerval Zanella , libc-alpha@sourceware.org References: <20180820144032.DC8D94028A147@oldenburg.str.redhat.com> From: Florian Weimer Message-ID: Date: Mon, 20 Aug 2018 18:53:35 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: On 08/20/2018 06:21 PM, Adhemerval Zanella wrote: > > > On 20/08/2018 13:18, Adhemerval Zanella wrote: >> >> >> On 20/08/2018 11:40, Florian Weimer wrote: >>> HAVE_INLINED_SYSCALLS is always defined on Linux. >>> >>> 2018-08-20 Florian Weimer >>> >>> * sysdeps/unix/sysv/linux/generic/readlink_chk.c: Remove >>> HAVE_INLINED_SYSCALLS conditionals >> >> LGTM. > > In fact, do we really need to have a duplicated Linux implementation > for this micro-optimization? Couldn't we just use default debug > one and call '__readlink' instead? Like this? Thanks, Florian Subject: [PATCH] __readlink_chk: Remove micro-optimization To: libc-alpha@sourceware.org 2018-08-20 Florian Weimer * debug/readlink_chk.c (__readlink_chk): Always call __readlink. * sysdeps/unix/sysv/linux/generic/readlink_chk.c: Remove file. diff --git a/debug/readlink_chk.c b/debug/readlink_chk.c index c44d1d8c37..e3204004d2 100644 --- a/debug/readlink_chk.c +++ b/debug/readlink_chk.c @@ -29,9 +29,5 @@ __readlink_chk (const char *path, void *buf, size_t len, size_t buflen) if (len > buflen) __chk_fail (); -#ifdef HAVE_INLINED_SYSCALLS - return INLINE_SYSCALL (readlink, 3, path, buf, len); -#else return __readlink (path, buf, len); -#endif } diff --git a/sysdeps/unix/sysv/linux/generic/readlink_chk.c b/sysdeps/unix/sysv/linux/generic/readlink_chk.c deleted file mode 100644 index 52d1f5b522..0000000000 --- a/sysdeps/unix/sysv/linux/generic/readlink_chk.c +++ /dev/null @@ -1,33 +0,0 @@ -/* Copyright (C) 2011-2018 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Chris Metcalf , 2011. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - . */ - -#include -#include -#include -# include -# include - - -ssize_t -__readlink_chk (const char *path, void *buf, size_t len, size_t buflen) -{ - if (len > buflen) - __chk_fail (); - - return INLINE_SYSCALL_CALL (readlinkat, AT_FDCWD, path, buf, len); -}