From patchwork Sun Jun 26 15:38:20 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Emese Revfy X-Patchwork-Id: 9199553 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 5791460754 for ; Sun, 26 Jun 2016 15:49:05 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 47F082854E for ; Sun, 26 Jun 2016 15:49:05 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3BFA428550; Sun, 26 Jun 2016 15:49:05 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A81272854E for ; Sun, 26 Jun 2016 15:49:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751265AbcFZPtE (ORCPT ); Sun, 26 Jun 2016 11:49:04 -0400 Received: from mail-wm0-f68.google.com ([74.125.82.68]:35751 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751821AbcFZPtC (ORCPT ); Sun, 26 Jun 2016 11:49:02 -0400 Received: by mail-wm0-f68.google.com with SMTP id a66so18294143wme.2 for ; Sun, 26 Jun 2016 08:49:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:mime-version :content-transfer-encoding; bh=omHiJzN6VjbgTro8aTAXHq0dyno92XjDQ59CTAIN0L4=; b=k6xllXGw1Ic6X9JaNcJu+8S2nRr4wjgGGpAZRF8bXcjQS6+4vjsdj4873H3jHIXHfC tJSv8uqGdgTtzcmYtEk2XXHwRg/Jxlf/r/YF8JsrqAUB3Vib4HRJ93BSyjiUSKk5Ks8j F75k68GgXul8PGY2AoWAvqdJ/URQFz2DiV5rC1Y+OuaFkyIO7sgocfMIROe9Sk0ryZQ2 YtYqklK3778zfkfCS4EQbkChOj+OrtKiuUjzWT3rZmF3N3PLZFfw5Du7SSzCX1ADy0Gd 7No752M/b6RVDGef9yvLaVJiR7+raqS8/MNBdgKelsW8gsjsJHVv855CiiSjIBMZ9S8G kcvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:mime-version :content-transfer-encoding; bh=omHiJzN6VjbgTro8aTAXHq0dyno92XjDQ59CTAIN0L4=; b=Op2Wq0rfL1FiwjbcAXu6zxLnTjJoL3eSHh8zF1nqWfDhejIngllFfPlMHdJaC2ab43 APtrhzGbSm9MezzPf/sKmzIo6UR/kQ40zgqAipUz8y08KFzzIDYtrTKpSFDdHRnW1Fb1 U3Z+wCrkea/80vvtSZtaK4XYoKp5oMcJ854RTAXo3EeNhjUK9GiIY5swjtDZWRI3nBgd s8Kjee+dzKUmdbK+3kkNweV4ND1GZU5ssMQGMPKobeb3i5ddTNfCU6uJb821zn+Zt/Kt YvcsADYu8RetxAv+C4SMKO/1n3kJBjCXyBKFZ+6Fs50QQU9Tsy1JzaRDu5D5gsTvmxtG na4w== X-Gm-Message-State: ALyK8tIOoBf6k1eYvuNDdlAHrNpk1lDrSwnLzSOB622mJmAy9Qzbke3qPj16eR5Clrp+qg== X-Received: by 10.194.178.199 with SMTP id da7mr11847749wjc.123.1466955107538; Sun, 26 Jun 2016 08:31:47 -0700 (PDT) Received: from localhost (beleg.madhouse-project.org. [128.199.36.147]) by smtp.gmail.com with ESMTPSA id c9sm3897622wjh.49.2016.06.26.08.31.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Jun 2016 08:31:47 -0700 (PDT) Date: Sun, 26 Jun 2016 17:38:20 +0200 From: Emese Revfy To: keescook@chromium.org Cc: mmarek@suse.com, linux-kbuild@vger.kernel.org, kernel-hardening@lists.openwall.com, pageexec@freemail.hu Subject: [PATCH] Add support for complex gcc plugins that don't fit in a single file Message-Id: <20160626173820.13ad67e14e7a29a6563fe129@gmail.com> X-Mailer: Sylpheed 3.5.0 (GTK+ 2.24.30; x86_64-pc-linux-gnu) Mime-Version: 1.0 Sender: linux-kbuild-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kbuild@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Reported-by: PaX Team Signed-off-by: Emese Revfy --- scripts/Makefile.gcc-plugins | 3 ++- scripts/gcc-plugins/Makefile | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/scripts/Makefile.gcc-plugins b/scripts/Makefile.gcc-plugins index 61fc4bb..1f922df 100644 --- a/scripts/Makefile.gcc-plugins +++ b/scripts/Makefile.gcc-plugins @@ -27,7 +27,7 @@ ifdef CONFIG_GCC_PLUGINS GCC_PLUGINS_CFLAGS := $(strip $(addprefix -fplugin=$(objtree)/scripts/gcc-plugins/, $(gcc-plugin-y)) $(gcc-plugin-cflags-y)) - export PLUGINCC GCC_PLUGINS_CFLAGS GCC_PLUGIN SANCOV_PLUGIN DISABLE_LATENT_ENTROPY_PLUGIN + export PLUGINCC GCC_PLUGINS_CFLAGS GCC_PLUGIN GCC_PLUGIN_SUBDIR SANCOV_PLUGIN DISABLE_LATENT_ENTROPY_PLUGIN ifneq ($(PLUGINCC),) # SANCOV_PLUGIN can be only in CFLAGS_KCOV because avoid duplication. @@ -36,6 +36,7 @@ ifdef CONFIG_GCC_PLUGINS KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS) GCC_PLUGIN := $(gcc-plugin-y) + GCC_PLUGIN_SUBDIR := $(gcc-plugin-subdir-y) endif # If plugins aren't supported, abort the build before hard-to-read compiler diff --git a/scripts/gcc-plugins/Makefile b/scripts/gcc-plugins/Makefile index 898449d..94fa139 100644 --- a/scripts/gcc-plugins/Makefile +++ b/scripts/gcc-plugins/Makefile @@ -12,14 +12,17 @@ else export HOST_EXTRACXXFLAGS endif -export GCCPLUGINS_DIR HOSTLIBS - ifneq ($(CFLAGS_KCOV), $(SANCOV_PLUGIN)) GCC_PLUGIN := $(filter-out $(SANCOV_PLUGIN), $(GCC_PLUGIN)) endif -$(HOSTLIBS)-y := $(GCC_PLUGIN) +export HOSTLIBS + +$(HOSTLIBS)-y := $(foreach p,$(GCC_PLUGIN),$(if $(findstring /,$(p)),,$(p))) always := $($(HOSTLIBS)-y) $(foreach p,$($(HOSTLIBS)-y:%.so=%),$(eval $(p)-objs := $(p).o)) +subdir-y := $(GCC_PLUGIN_SUBDIR) +subdir- += $(GCC_PLUGIN_SUBDIR) + clean-files += *.so