Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753077AbcC0VLi (ORCPT ); Sun, 27 Mar 2016 17:11:38 -0400 Received: from mail-wm0-f47.google.com ([74.125.82.47]:34228 "EHLO mail-wm0-f47.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751636AbcC0VLg (ORCPT ); Sun, 27 Mar 2016 17:11:36 -0400 Date: Sun, 27 Mar 2016 23:09:13 +0200 From: Emese Revfy To: Masahiro Yamada Cc: Linux Kbuild mailing list , pageexec@freemail.hu, spender@grsecurity.net, kernel-hardening@lists.openwall.com, Michal Marek , Kees Cook , Rasmus Villemoes , fengguang.wu@intel.com, Dmitry Vyukov , Linux Kernel Mailing List Subject: Re: [PATCH v5 2/5] GCC plugin infrastructure Message-Id: <20160327230913.bbbd9951fddca197b9b13b23@gmail.com> In-Reply-To: References: <20160307000208.1bec3e7dc874489d1b4fcbb4@gmail.com> <20160307000427.c82f18670568e1e656fc9532@gmail.com> <20160324010749.f7e547e1df12b4944c5fa490@gmail.com> X-Mailer: Sylpheed 3.4.3 (GTK+ 2.24.29; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2049 Lines: 53 On Sat, 26 Mar 2016 11:39:32 +0900 Masahiro Yamada wrote: > > I tried to remove the gcc-plugins target but sadly in this case the plugins aren't complied. > > I don't know if I understand how it should work. I pushed a commit: > > https://github.com/ephox-gcc-plugins/gcc-plugins_linux-next/commit/0b005b886bde6c4b9134d01f830d88d464911a65 > > Could you please help me with what I did wrong? > > > Sorry, I missed this problem. > > GCC-plugins must be compiled before descending into ./Kbuild. > > > Please apply the following on top of commit 0b005b88 > and check if it works. > > diff --git a/Makefile b/Makefile > index 1c7a379..bd643d3 100644 > --- a/Makefile > +++ b/Makefile > @@ -1009,6 +1009,9 @@ archprepare: archheaders archscripts prepare1 > scripts_basic > prepare0: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS) > prepare0: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS) > prepare0: archprepare FORCE > +ifdef CONFIG_GCC_PLUGINS > + $(Q)$(MAKE) $(build)=scripts/gcc-plugins > +endif > $(Q)$(MAKE) $(build)=. > > # All the preparing.. > diff --git a/scripts/Makefile b/scripts/Makefile > index 0ba652c..1d80897 100644 > --- a/scripts/Makefile > +++ b/scripts/Makefile > @@ -45,7 +45,6 @@ subdir-y += mod > subdir-$(CONFIG_SECURITY_SELINUX) += selinux > subdir-$(CONFIG_DTC) += dtc > subdir-$(CONFIG_GDB_SCRIPTS) += gdb > -subdir-$(CONFIG_GCC_PLUGINS) += gcc-plugins > > # Let clean descend into subdirs > -subdir- += basic kconfig package > +subdir- += basic kconfig package gcc-plugins Thanks for the patch. I tested it and there is a problem when I run a parallel make. The plugins are compiled later than needed (e.g., scripts/mod/empty.o). There is a lot of important code under scripts/mod which may need the plugins. If the plugins were compiled when the "scripts_basic" target runs it would be good but unfortunately the config symbol CONFIG_GCC_PLUGINS doesn't seem to be defined yet. Could you please help me solve this problem? -- Emese