Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp2194120pxu; Fri, 18 Dec 2020 07:36:55 -0800 (PST) X-Google-Smtp-Source: ABdhPJy44tWFmD7UlWkv87wEKmaC0YRFa3aJ0SDrgO46TcyHOUpPgomIsX+lDh1i3R9kIL1BSHDs X-Received: by 2002:aa7:c749:: with SMTP id c9mr5007759eds.3.1608305815526; Fri, 18 Dec 2020 07:36:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1608305815; cv=none; d=google.com; s=arc-20160816; b=NQ+mdNYkB/nU+Rbaf72cuvyjhYEzR7b9M/Jf+2E+ZBUO+zqNtX6WjwuAUBVlarVVGM KJ/UL89n5fNHIwQguD1bal6qfJTa3p//5TyQfzsAyNtB/7SpKpF79a6w24RcTw+W4mmt vzzsmXdlNcSk6Mzk8q15y0mWlJLl9tQNykw5j86R0Q14GvhFcclGu6+og7zlHa/ylBLk C8VhjZZfi80MFwU0vArEVGvTkeNZ+f11lnj5g7RBWZg6YBmIkvebHmqTavKYmtZfcwiu q8KCkZlR47VF1knlg8hkwYg+5/Hdy3lPtMaMFn3Mpe+dL6LGMo1/rhlJMkbqC4psZuhi M85Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:dkim-signature:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:references:cc:to:from:subject; bh=odSmLfTxrpZot9VnSSEPJy+l6LjXBu7/qmxNqGpwNp8=; b=BVjsKq+JsB1+gD0XUdNkhxHkk5BpBIibDLO/8/M6SNM11HaBUQ8WGv3L8VjuSs7Cvf ON0CpXxTzUH/LrMAf4kBhSwbygM+uuYNPIZJLzAcZTnyBtX2sBfrkh+/tVTIgiIr6zC+ 6Gon+Qu8dER4eotfZCqwZupJRmLRBjxj6RCRO78Rbxj87mKcFKQd0cJHO/RYSCtUVGKv zrvZRUVdG4rvac4BwsH8soFN7kmqh1XjjEIouFVR5FZJzhCEeoTYW1F5dhOOXJB+orXi fsmtK9TMvr0XaQn8eh5da+0XezuoKkXVhvGkldDEHGMxKdW8tic6ZOaAyJ0GrVom28Yj EBgw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b=C2uI9yVK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id nl1si1305982ejb.470.2020.12.18.07.36.31; Fri, 18 Dec 2020 07:36:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b=C2uI9yVK; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728531AbgLRPe2 (ORCPT + 99 others); Fri, 18 Dec 2020 10:34:28 -0500 Received: from hqnvemgate26.nvidia.com ([216.228.121.65]:3157 "EHLO hqnvemgate26.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725878AbgLRPe1 (ORCPT ); Fri, 18 Dec 2020 10:34:27 -0500 Received: from hqmail.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate26.nvidia.com (using TLS: TLSv1.2, AES256-SHA) id ; Fri, 18 Dec 2020 07:33:47 -0800 Received: from [10.26.73.104] (172.20.145.6) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 18 Dec 2020 15:33:38 +0000 Subject: Re: [PATCH] gcc-plugins: simplify GCC plugin-dev capability test From: Jon Hunter To: Marek Szyprowski , Masahiro Yamada CC: Linux Kbuild mailing list , Kees Cook , Emese Revfy , , Linus Torvalds , Nathan Chancellor , Nick Desaulniers , clang-built-linux , "Linux Kernel Mailing List" , linux-tegra References: <20201203125700.161354-1-masahiroy@kernel.org> <9f959875-1a30-b1a1-b626-3805e24a6df3@samsung.com> <25030057-86b1-5619-25fd-acfa0728b850@samsung.com> <4ab4f62f-8b37-01e1-f81c-270155b13a51@nvidia.com> Message-ID: <7e691a61-bf4b-0594-8d6d-36d62a5def0b@nvidia.com> Date: Fri, 18 Dec 2020 15:33:36 +0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <4ab4f62f-8b37-01e1-f81c-270155b13a51@nvidia.com> Content-Type: text/plain; charset="utf-8" Content-Language: en-US Content-Transfer-Encoding: 7bit X-Originating-IP: [172.20.145.6] X-ClientProxiedBy: HQMAIL107.nvidia.com (172.20.187.13) To HQMAIL107.nvidia.com (172.20.187.13) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1608305627; bh=odSmLfTxrpZot9VnSSEPJy+l6LjXBu7/qmxNqGpwNp8=; h=Subject:From:To:CC:References:Message-ID:Date:User-Agent: MIME-Version:In-Reply-To:Content-Type:Content-Language: Content-Transfer-Encoding:X-Originating-IP:X-ClientProxiedBy; b=C2uI9yVKVlz8ad8fIlMzAOeFWPr7FYEHAFVDH7mZDWcH4ntrEqavDASBKgv0qjQIq sz9y2GdmH9b96cpFrclG2jVrxQybNv8GwxNOsuU35GPwyNBKI4pXY4Hc5R0rw1KGii NI/fKPYjuo9n9sLQgPHqqu9tRSi42OJ3tEhhEz5j+JGU0YuJowNvp6yWy9D444RBIm dgZD48aN0rRvUXqPtGugiKlxc/kc3RR4aRv4j+xgEKJsaa6ZR1XfA4U1Vr3u+M3RmP vkMZ46DtlQ0wi/EgiszwvMyZfsGDmdd63nR2L9X2OWXsynwgPNYFzPZSvS2TEGqo1b flMrWPRv9XoZQ== Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 18/12/2020 15:12, Jon Hunter wrote: > > On 18/12/2020 15:09, Marek Szyprowski wrote: >> >> On 18.12.2020 16:03, Jon Hunter wrote: >>> On 18/12/2020 10:05, Marek Szyprowski wrote: >>>> On 18.12.2020 10:43, Masahiro Yamada wrote: >>>>> On Fri, Dec 18, 2020 at 4:58 PM Marek Szyprowski >>>>> wrote: >>>>>> On 03.12.2020 13:57, Masahiro Yamada wrote: >>>>>>> Linus pointed out a third of the time in the Kconfig parse stage comes >>>>>>> from the single invocation of cc1plus in scripts/gcc-plugin.sh [1], >>>>>>> and directly testing plugin-version.h for existence cuts down the >>>>>>> overhead a lot. [2] >>>>>>> >>>>>>> This commit takes one step further to kill the build test entirely. >>>>>>> >>>>>>> The small piece of code was probably intended to test the C++ designated >>>>>>> initializer, which was not supported until C++20. >>>>>>> >>>>>>> In fact, with -pedantic option given, both GCC and Clang emit a warning. >>>>>>> >>>>>>> $ echo 'class test { public: int test; } test = { .test = 1 };' | g++ -x c++ -pedantic - -fsyntax-only >>>>>>> :1:43: warning: C++ designated initializers only available with '-std=c++2a' or '-std=gnu++2a' [-Wpedantic] >>>>>>> $ echo 'class test { public: int test; } test = { .test = 1 };' | clang++ -x c++ -pedantic - -fsyntax-only >>>>>>> :1:43: warning: designated initializers are a C++20 extension [-Wc++20-designator] >>>>>>> class test { public: int test; } test = { .test = 1 }; >>>>>>> ^ >>>>>>> 1 warning generated. >>>>>>> >>>>>>> Otherwise, modern C++ compilers should be able to build the code, and >>>>>>> hopefully skipping this test should not make any practical problem. >>>>>>> >>>>>>> Checking the existence of plugin-version.h is still needed to ensure >>>>>>> the plugin-dev package is installed. The test code is now small enough >>>>>>> to be embedded in scripts/gcc-plugins/Kconfig. >>>>>>> >>>>>>> [1] https://protect2.fireeye.com/v1/url?k=03db90e1-5c40a828-03da1bae-0cc47a336fae-4cc36f5830aeb78d&q=1&e=dfdc1cf9-82d6-4ca5-b35d-1782e918bde3&u=https%3A%2F%2Flore.kernel.org%2Flkml%2FCAHk-%3DwjU4DCuwQ4pXshRbwDCUQB31ScaeuDo1tjoZ0_PjhLHzQ%40mail.gmail.com%2F >>>>>>> [2] https://protect2.fireeye.com/v1/url?k=965b670a-c9c05fc3-965aec45-0cc47a336fae-e34339513ff747c0&q=1&e=dfdc1cf9-82d6-4ca5-b35d-1782e918bde3&u=https%3A%2F%2Flore.kernel.org%2Flkml%2FCAHk-%3DwhK0aQxs6Q5ijJmYF1n2ch8cVFSUzU5yUM_HOjig%3D%2Bvnw%40mail.gmail.com%2F >>>>>>> >>>>>>> Reported-by: Linus Torvalds >>>>>>> Signed-off-by: Masahiro Yamada >>>>>> This patch landed in linux next-20201217 as commit 1e860048c53e >>>>>> ("gcc-plugins: simplify GCC plugin-dev capability test"). >>>>>> >>>>>> It causes a build break with my tests setup, but I'm not sure weather it >>>>>> is really an issue of this commit or a toolchain I use. However I've >>>>>> checked various versions of the gcc cross-compilers released by Linaro >>>>>> at https://protect2.fireeye.com/v1/url?k=053727b6-5aac1f7f-0536acf9-0cc47a336fae-5bd799e7ce6b1b9b&q=1&e=dfdc1cf9-82d6-4ca5-b35d-1782e918bde3&u=https%3A%2F%2Freleases.linaro.org%2Fcomponents%2Ftoolchain%2Fbinaries%2F and all >>>>>> fails with the same error: >>>>>> >>>>>> $ make ARCH=arm >>>>>> CROSS_COMPILE=../../cross/gcc-arm-10.2-2020.11-x86_64-arm-none-eabi/bin/arm-none-eabi- >>>>>> zImage >>>>>> HOSTCXX scripts/gcc-plugins/arm_ssp_per_task_plugin.so >>>>>> In file included from >>>>>> /home/mszyprow/dev/cross/gcc-arm-10.2-2020.11-x86_64-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/10.2.1/plugin/include/gcc-plugin.h:28:0, >>>>>> from scripts/gcc-plugins/gcc-common.h:7, >>>>>> from scripts/gcc-plugins/arm_ssp_per_task_plugin.c:3: >>>>>> /home/mszyprow/dev/cross/gcc-arm-10.2-2020.11-x86_64-arm-none-eabi/bin/../lib/gcc/arm-none-eabi/10.2.1/plugin/include/system.h:687:10: >>>>>> fatal error: gmp.h: No such file or directory >>>>>> #include >>>>>> ^~~~~~~ >>>>>> compilation terminated. >>>>>> scripts/gcc-plugins/Makefile:47: recipe for target >>>>>> 'scripts/gcc-plugins/arm_ssp_per_task_plugin.so' failed >>>>>> make[2]: *** [scripts/gcc-plugins/arm_ssp_per_task_plugin.so] Error 1 >>>>>> scripts/Makefile.build:496: recipe for target 'scripts/gcc-plugins' failed >>>>>> make[1]: *** [scripts/gcc-plugins] Error 2 >>>>>> Makefile:1190: recipe for target 'scripts' failed >>>>>> make: *** [scripts] Error 2 >>>>>> >>>>>> Compilation works if I use the cross-gcc provided by >>>>>> gcc-7-arm-linux-gnueabi/gcc-arm-linux-gnueabi Ubuntu packages, which is: >>>>>> >>>>>> $ arm-linux-gnueabi-gcc --version >>>>>> arm-linux-gnueabi-gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0 >>>>>> >>>>> I can compile gcc-plugins with Linaro toolchians. >>>>> >>>>> The version of mine is this: >>>>> >>>>> masahiro@oscar:~/ref/linux-next$ >>>>> ~/tools/arm-linaro-7.5/bin/arm-linux-gnueabihf-gcc --version >>>>> arm-linux-gnueabihf-gcc (Linaro GCC 7.5-2019.12) 7.5.0 >>>>> Copyright (C) 2017 Free Software Foundation, Inc. >>>>> This is free software; see the source for copying conditions. There is NO >>>>> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. >>>>> >>>>> >>>>> >>>>> >>>>> Maybe, it depends on the host environment? >>>>> >>>>> >>>>> Please try this: >>>>> >>>>> $ sudo apt install libgmp-dev >>>> Indeed, it was missing on my setup. Sorry for the noise. >>> >>> So this change also breaks the build on our farm build machines and >>> while we can request that packages are installed on these machines, it >>> takes time. Is there anyway to avoid this? >> >> You can temporarily revert 1e860048c53e (this patch). > > > Again that works locally, but these automated builders just pull the > latest -next branch and build. However, if you are saying that this is a problem/bug with our builders, then of course we will have to get this fixed. Jon -- nvpublic