From patchwork Tue Dec 5 15:32:30 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 120695 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp5891471qgn; Tue, 5 Dec 2017 07:33:41 -0800 (PST) X-Google-Smtp-Source: AGs4zMZX+tq5VVyoAw6ia4GmoMa6rUex6fBcPp/72ZsxsT14i0QqOThaOFyn+gD19O3S1ddSe6u7 X-Received: by 10.99.109.75 with SMTP id i72mr18103500pgc.43.1512488021516; Tue, 05 Dec 2017 07:33:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512488021; cv=none; d=google.com; s=arc-20160816; b=xFnwNI+27CXcBDQFLbVnjcL7WfKVg7F37zIh6vv4wJL34EUbbBxpQsYNgZIePgD9gS OObuB0/Qf9cWWildreFTxZaWmrp40UKPzf0GObYVDmri9PqsIAF6ivDQ+3phtYrzrLI6 aBk7g5E3tMY5H0BKZyAm3kqM+R+WQ9kYd3soYz/VThAftqfoLCwoL5zcClw9gfTpNb/G WzyMipENaf19JgiN1Gq70M2yux9rjtFrRGcaMmDe2JH4EKstCU+hC6ZagXO67A2q0SIq mekw7W87atc0Zy1UcgpOwgaQGTF5WYCmtIQzrRTRc8hRb91/QaAhKzhUv5Nfl49Swckc XL9A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=K6kR/o1CJpN6oNbjbazwtSzpKbCETqMxaJR50XOF/ok=; b=jojeJW8yyvnHoTQxMiD4AJeIKq6hqQVHcRmJqe2bSUP0BHnUG3L0JoN+XiCBO+wcmp a38wTW3IxJascZVE1Q3XauEUdoAo/KMXgzHDz/QstnFopDUZEvTAS/t5Nn3k7bd4FRBn KU8tBeA3wkGHFxOdTdeN08ivklHkML5GL4R7KPquKTtjn9EQmm32BNdTQTZA9q05ffdS WUz9dY7Nt7ay4Up1zQlaqch5YpbAFfTwt/37rMgtllMbMLyLtg7OD0EUdgP7uWmR1vu5 Z/0TiAkHIBatiRXInOhQTTA1k9q/EO7iIt9iOWR+CIYf7H+kx6I8pIxvYaXSh5UI+fXv s53w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u6si228640plm.432.2017.12.05.07.33.41; Tue, 05 Dec 2017 07:33:41 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752969AbdLEPdj (ORCPT + 28 others); Tue, 5 Dec 2017 10:33:39 -0500 Received: from mout.kundenserver.de ([212.227.17.24]:63860 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752754AbdLEPdi (ORCPT ); Tue, 5 Dec 2017 10:33:38 -0500 Received: from wuerfel.lan ([149.172.96.106]) by mrelayeu.kundenserver.de (mreue105 [212.227.15.145]) with ESMTPA (Nemesis) id 0M6VWV-1fJH7W16BX-00yScs; Tue, 05 Dec 2017 16:33:09 +0100 From: Arnd Bergmann To: linux-kbuild@vger.kernel.org Cc: Michal Marek , Masahiro Yamada , Douglas Anderson , Al Viro , Heiko Carstens , Mauro Carvalho Chehab , Matthew Wilcox , Matthias Kaehlcke , Arnd Bergmann , Ingo Molnar , Josh Poimboeuf , Kees Cook , Andrew Morton , Thomas Gleixner , Gideon Israel Dsouza , linux-kernel@vger.kernel.org Subject: [PATCH 1/2] [RFC] kbuild: add macro for controlling warnings to linux/compiler.h Date: Tue, 5 Dec 2017 16:32:30 +0100 Message-Id: <20171205153259.2522368-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:8/ghzxYl/KT1qjYVmxlMHXhgfESWKDM8bBcVsfQMcUUmxxFb5Mh 7QJrBGxwOuftN97V8I0LptyczmhspNt8BGb6CRyvk2WAjRpUrDvqL3vqF6nXvN6ArZJ8MYK rom5Cmf7XChetSaBDR4B8SHMuhszQ6UnkwdQjaQGUVJRDiimRJXG5Acs5FKjcShKcUWEo2J bm/z7wnwVJeNJC+A43qFA== X-UI-Out-Filterresults: notjunk:1; V01:K0:jKwRyFmy92M=:8oy9BTlPY+8OtvlC2RZJZF plp3QPedMog7MLUZSGIUSJZDmwU3OxtDGyEjAjXr8V/wOEe4oCJDcEGcMtZtncmP6aeOwNUJr kpQngrzegseuJpWUP+RPL8lGIAIOHCc1wkXxRj8Nof6MckH2DMaoDafG27+MAqjI5WZgSpHCt PJ21+E46rLenrZIumqaH2/ncFBx/kW/8Jn8Nv830zGkMqhyKGx4v0PQsi/mh5eWocEwx2iJlb nDXBbppXBPHmqgnhHHPat3G2PrmARU/z6AcXsSvIrENgXu6YCbXUIlxRgoUE9/Thc+OHduA9g +AWn8YswhR3siT6yEnDWy6u5o8yvwroatJKdIB5n67tVCi4xrpiOQn/SKhjRw0jx9cr+tp1fa 5kbeAcvWhAVv3+/oqVapzwzq60QPsNIdW2nJvNNv56BNrqexOCpRvtX1zBUoEvv1MnFOH+/pt IhBiprGQlGimSXtJgNQdCiquwTAZNTN+Onn4BIFQMdK8e3gMWqwBiIZrZ5m9HCAOBh1LZqMeX LJti0G7rysNPfokYVZeahDQ6GHZunSn2j/T77Ce5tutc6zHK0flXgVmcswiOVHfx+3S/9DcDM 5GsTrNQlux/yhKIlMz+KFK3FR9DV+aTrlIBjnhTR3mvbmoEk1xkantC2uMbwmVYZVM/B9s0oL aL4SeKnLc6eSrop/MZF0QE+nWoNVfajUvcQtZCZSib6r0BJttufpdCNO4M7Eum3NaMQiPSLpf E2pYKAOFWv7LefM2CQvYpYAhYJF3RUUBHgrGpw== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org I have occasionally run into a situation where it would make sense to control a compiler warning from a source file rather than doing so from a Makefile using the $(cc-disable-warning, ...) or $(cc-option, ...) helpers. The approach here is similar to what glibc uses, using __diag() and related macros to encapsulate a _Pragma("GCC diagnostic ...") statement that gets turned into the respective "#pragma GCC diagnostic ..." by the preprocessor when the macro gets expanded. Like glibc, I also have an argument to pass the affected compiler version, but decided to actually evaluate that one. For now, this supports GCC_4_6, GCC_4_7, GCC_4_8, GCC_4_9, GCC_5, GCC_6, GCC_7, GCC_8 and GCC_9. Adding support for CLANG_5 and other interesting versions is straightforward here. GNU compilers starting with gcc-4.2 could support it in principle, but "#pragma GCC diagnostic push" was only added in gcc-4.6, so it seems simpler to not deal with those at all. The same versions show a large number of warnings already, so it seems easier to just leave it at that and not do a more fine-grained control for them. The use cases I found so far include: - turning off the gcc-8 -Wattribute-alias warning inside of the SYSCALL_DEFINEx() macro without having to do it globally. - Reducing the build time for a simple re-make after a change, once we move the warnings from ./Makefile and ./scripts/Makefile.extrawarn into linux/compiler.h - More control over the warnings based on other configurations, using preprocessor syntax instead of Makefile syntax. This should make it easier for the average developer to understand and change things. - Adding an easy way to turn the W=1 option on unconditionally for a subdirectory or a specific file. This has been requested by several developers in the past that want to have their subsystems W=1 clean. - Integrating clang better into the build systems. Clang supports more warnings than GCC, and we probably want to classify them as default, W=1, W=2 etc, but there are cases in which the warnings should be classified differently due to excessive false positives from one or the other compiler. - Adding a way to turn the default warnings into errors (e.g. using a new "make E=0" tag) while not also turning the W=1 warnings into errors. This patch for now just adds the minimal infrastructure in order to do the first of the list above. As the #pragma GCC diagnostic takes precedence over command line options, the next step would be to convert a lot of the individual Makefiles that set nonstandard options to use __diag() instead. Signed-off-by: Arnd Bergmann --- I'm marking this RFC for now, as I'd like to get consensus about whether we want to go down this particular route first, and maybe if someone can come up with better naming for the macros. --- include/linux/compiler-gcc.h | 64 ++++++++++++++++++++++++++++++++++++++++++ include/linux/compiler_types.h | 10 +++++++ 2 files changed, 74 insertions(+) -- 2.9.0 diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h index 2272ded07496..5d595cfdb2c4 100644 --- a/include/linux/compiler-gcc.h +++ b/include/linux/compiler-gcc.h @@ -329,3 +329,67 @@ * code */ #define uninitialized_var(x) x = x + +/* + * turn individual warnings and errors on and off locally, depending + * on version. + */ +#if GCC_VERSION >= 40600 +#define __diag_str1(s) #s +#define __diag_str(s) __diag_str1(s) +#define __diag(s) _Pragma(__diag_str(GCC diagnostic s)) + +/* compilers before gcc-4.6 do not understand "#pragma GCC diagnostic push" */ +#define __diag_GCC_4_6(s) __diag(s) +#else +#define __diag(s) +#define __diag_GCC_4_6(s) +#endif + +#if GCC_VERSION >= 40700 +#define __diag_GCC_4_7(s) __diag(s) +#else +#define __diag_GCC_4_7(s) +#endif + +#if GCC_VERSION >= 40800 +#define __diag_GCC_4_8(s) __diag(s) +#else +#define __diag_GCC_4_8(s) +#endif + +#if GCC_VERSION >= 40900 +#define __diag_GCC_4_9(s) __diag(s) +#else +#define __diag_GCC_4_9(s) +#endif + +#if GCC_VERSION >= 50000 +#define __diag_GCC_5(s) __diag(s) +#else +#define __diag_GCC_5(s) +#endif + +#if GCC_VERSION >= 60000 +#define __diag_GCC_6(s) __diag(s) +#else +#define __diag_GCC_6(s) +#endif + +#if GCC_VERSION >= 70000 +#define __diag_GCC_7(s) __diag(s) +#else +#define __diag_GCC_7(s) +#endif + +#if GCC_VERSION >= 80000 +#define __diag_GCC_8(s) __diag(s) +#else +#define __diag_GCC_8(s) +#endif + +#if GCC_VERSION >= 90000 +#define __diag_GCC_9(s) __diag(s) +#else +#define __diag_GCC_9(s) +#endif diff --git a/include/linux/compiler_types.h b/include/linux/compiler_types.h index 6b79a9bba9a7..7e7664d57adb 100644 --- a/include/linux/compiler_types.h +++ b/include/linux/compiler_types.h @@ -271,4 +271,14 @@ struct ftrace_likely_data { # define __native_word(t) (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long)) #endif +#ifndef __diag +#define __diag(string) +#endif + +#define __diag_push() __diag(push) +#define __diag_ignore(version, option) __diag_ ## version (ignored option) +#define __diag_warn(version, option) __diag_ ## version (warning option) +#define __diag_error(version, option) __diag_ ## version (error option) +#define __diag_pop() __diag(pop) + #endif /* __LINUX_COMPILER_TYPES_H */ From patchwork Tue Dec 5 16:06:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 120712 Delivered-To: patch@linaro.org Received: by 10.140.22.227 with SMTP id 90csp5930418qgn; Tue, 5 Dec 2017 08:07:39 -0800 (PST) X-Google-Smtp-Source: AGs4zMaYLTgCvFCWZTHumSGuPcOyZKLQU6GRqu+YDBhBCfghAdX2QkQrrnTYQELaaSA1QSRXybxK X-Received: by 10.159.194.1 with SMTP id x1mr18424875pln.235.1512490059184; Tue, 05 Dec 2017 08:07:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1512490059; cv=none; d=google.com; s=arc-20160816; b=yxnpxu76F1RNmqVcHKdGoc5YrF/yRuVNAU3U87bh9yaEenfO3Xj8/TXIbVLAnlkvFF 8YoElmo0xVTvkPozMasBOO0/aZjJsHdwa2rMUUqLDncBpokvoNBvXcIbtkZW4JJLgX5b OTXujln8OE/c4jI0IsMYLGYcAFrK0ACijRMC8G5+YaVEP33FuRu4FXdUZxNOkz5qTysP 4vfmGhgePC7pEPQAWAKN9TCY6tnclUS4N2mSRKt8lIfD9Yqs3DMgar7Vqk6IvBSScuA/ f1iGzZFbHlD2hyKD7Yi6zJt1M/jNBKrbfYhgcXeqTTXD7QLs8g33YxJM6SPITv0C4JDs RO9Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:arc-authentication-results; bh=0UdWpQA69chh1fAimRno3XgrnrpVNzyYyCCuTaoc6fs=; b=xjIhHyOu6Rpm4pa8VKrxT0KE1mTHjdM/q1wFnfGa5NsgRmKdfTUu3orHFp8shMtQ9P xXKhz56VmTgx2invGD12TgCaUP8DOmL3l2E5noZIlXWERxjminKiZROTlEZn4tN9PGIB R9aleEv0/NDxYs1Jiyz+imR9qDZy7WjdLwWC/8HeSBwWK4AnOCtHTLnulDVrGlwJ+L+j egUBmyqLaGpx/nUXQbGaJAXaUcOKYr3bFQZFJnTTg/7ax80D3w/HzaxcFJCTeYPZ4b9o 87+o2wsmkT6IxANEXvtLz1hlxN2d/OcrUpD0dUNUoElvujodU6WfCbLXrQIbYlU1IqDy UgFQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id j14si253027pga.407.2017.12.05.08.07.38; Tue, 05 Dec 2017 08:07:39 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752783AbdLEQHh (ORCPT + 28 others); Tue, 5 Dec 2017 11:07:37 -0500 Received: from mout.kundenserver.de ([212.227.126.134]:52496 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752151AbdLEQHe (ORCPT ); Tue, 5 Dec 2017 11:07:34 -0500 Received: from wuerfel.lan ([149.172.96.106]) by mrelayeu.kundenserver.de (mreue001 [212.227.15.129]) with ESMTPA (Nemesis) id 0LjR72-1exWRM2RLM-00ba0Y; Tue, 05 Dec 2017 17:06:56 +0100 From: Arnd Bergmann To: linux-kbuild@vger.kernel.org Cc: Michal Marek , Masahiro Yamada , Douglas Anderson , Al Viro , Heiko Carstens , Mauro Carvalho Chehab , Matthew Wilcox , Matthias Kaehlcke , Arnd Bergmann , Deepa Dinamani , Thomas Gleixner , Frederic Weisbecker , Stephan Mueller , "David S. Miller" , Yonghong Song , Thomas Garnier , David Howells , linux-kernel@vger.kernel.org, linux-api@vger.kernel.org Subject: [PATCH 2/2] [RFC] disable -Wattribute-alias warning for SYSCALL_DEFINEx() Date: Tue, 5 Dec 2017 17:06:31 +0100 Message-Id: <20171205160651.2920270-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20171205153259.2522368-1-arnd@arndb.de> References: <20171205153259.2522368-1-arnd@arndb.de> X-Provags-ID: V03:K0:riqrdhpkPRQTQMaH8El28ozZ0JbWDYmgBRsKidykT9KgqwL+n2w Js4Hz7phj/cmHKp4h+1pHhuemMOGVShBZJBbBYFNz1y64BB0l+qXDJ3g8q/uq8jfaIWBX/R zShUqjT8xB/TQO2D7acDuVnrKkwpn1VNyeCaTwddznKobabCAZfbVkTOmWkLZr+V+Jv20c6 5yJ6572XZCkds5JLfjmJQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:a8cEjts1WmA=:rsc8ELXnMsVqtcr5yAt6QR wA8GqIKhZuBz9TJ1iEYPM1UqFH0rT56oPoxVXy0Y3leOkYvv2JK7hH5AbHRcpfukbO8J41U14 cUD/Y6gSX1QSALDitT6IWcA+0WBgycXreX3jy9V7nZo1GBkkJvwzFEIHIKtQe7fQozCye44at PWz15e3MJYuWeTl/lHafNR4+cKXMiAWHaXDFAoacyUyB8ebXn4HlCSW2ybu0+HJkF+CxYlGX7 TZ3qufzVZV2dQg0pKwCrzaX2AF/DLLJDkLvf+rAEfx8Gk8GvjxVGHcXhk2SSjCLWsddFCswDw kDDIgNxxtOVF4jk2KrykPw20kXMYqQkss77CNp3BJkbdHEra4oCEnlsjMOQy52oBQm8bBCtji PUCa8g8LUb2ubdQIa962nf6vex3kMTR8NmCm8KrZMPl9/7kpLva3ouWQqQWeenNgGs7rOszwS nejrMwasFK/mSIKC1GGeZ6IrDEwAA70SbsGJBbXOM0eZOrK+1MX9UcM1zQGvytzGr8GQe5vNu mKn9TEmXKM4FhwzAF8SzTQoX4SRKrP2Zjs2ILvginbpofHnCTX2EERStFLpLpTfcaEmhevdeS dvYf2GjJczRXY5nH5+i3biFU9ogayMsLFkteJVFgcLmmqtpvRxs1JOXx16bB+q7ogTSCRKbFp ZssU0al4olOjETaJxAYDsT371EO5hOlrao5hBls6njv5JpC0xXAu7qSVzVMtgcSfZqRm0VnLM uS044NplVKLfnUiVIShjiCXw8E3frvka2YgSoQ== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org gcc-8 warns for every single definition of a system call entry point, e.g.: include/linux/compat.h:56:18: error: 'compat_sys_rt_sigprocmask' alias between functions of incompatible types 'long int(int, compat_sigset_t *, compat_sigset_t *, compat_size_t)' {aka 'long int(int, struct *, struct *, unsigned int)'} and 'long int(long int, long int, long int, long int)' [-Werror=attribute-alias] asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\ ^~~~~~~~~~ include/linux/compat.h:45:2: note: in expansion of macro 'COMPAT_SYSCALL_DEFINEx' COMPAT_SYSCALL_DEFINEx(4, _##name, __VA_ARGS__) ^~~~~~~~~~~~~~~~~~~~~~ kernel/signal.c:2601:1: note: in expansion of macro 'COMPAT_SYSCALL_DEFINE4' COMPAT_SYSCALL_DEFINE4(rt_sigprocmask, int, how, compat_sigset_t __user *, nset, ^~~~~~~~~~~~~~~~~~~~~~ include/linux/compat.h:60:18: note: aliased declaration here asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\ ^~~~~~~~~~ The new warning seems reasonable in principle, but it doesn't help us here, since we rely on the type mismatch to sanitize the system call arguments. After I reported this as GCC PR82435, a new -Wno-attribute-alias option was added that could be used to turn the warning off globally on the command line, but I'd prefer to do it a little more fine-grained. Interestingly, turning a warning off and on again inside of a single macro doesn't always work, in this case I had to add an extra statement inbetween and decided to copy the __SC_TEST one from the native syscall to the compat syscall macro. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83256 for more details about this. Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82435 Signed-off-by: Arnd Bergmann --- include/linux/compat.h | 7 ++++++- include/linux/syscalls.h | 3 +++ 2 files changed, 9 insertions(+), 1 deletion(-) -- 2.9.0 diff --git a/include/linux/compat.h b/include/linux/compat.h index 1165036d091f..27b4a429df77 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h @@ -49,14 +49,19 @@ COMPAT_SYSCALL_DEFINEx(6, _##name, __VA_ARGS__) #define COMPAT_SYSCALL_DEFINEx(x, name, ...) \ + __diag_push(); \ + __diag_ignore(GCC_8, "-Wattribute-alias"); \ asmlinkage long compat_sys##name(__MAP(x,__SC_DECL,__VA_ARGS__))\ __attribute__((alias(__stringify(compat_SyS##name)))); \ static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__));\ asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__));\ asmlinkage long compat_SyS##name(__MAP(x,__SC_LONG,__VA_ARGS__))\ { \ - return C_SYSC##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__)); \ + long ret = C_SYSC##name(__MAP(x,__SC_DELOUSE,__VA_ARGS__));\ + __MAP(x,__SC_TEST,__VA_ARGS__); \ + return ret; \ } \ + __diag_pop(); \ static inline long C_SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)) #ifdef CONFIG_COMPAT diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index 4df16a70b0d7..dcf6ceabda44 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h @@ -208,6 +208,8 @@ static inline int is_syscall_trace_event(struct trace_event_call *tp_event) #define __PROTECT(...) asmlinkage_protect(__VA_ARGS__) #define __SYSCALL_DEFINEx(x, name, ...) \ + __diag_push(); \ + __diag_ignore(GCC_8, "-Wattribute-alias"); \ asmlinkage long sys##name(__MAP(x,__SC_DECL,__VA_ARGS__)) \ __attribute__((alias(__stringify(SyS##name)))); \ static inline long SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)); \ @@ -219,6 +221,7 @@ static inline int is_syscall_trace_event(struct trace_event_call *tp_event) __PROTECT(x, ret,__MAP(x,__SC_ARGS,__VA_ARGS__)); \ return ret; \ } \ + __diag_pop(); \ static inline long SYSC##name(__MAP(x,__SC_DECL,__VA_ARGS__)) /*