Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S934099AbcCIUug (ORCPT ); Wed, 9 Mar 2016 15:50:36 -0500 Received: from mail-io0-f178.google.com ([209.85.223.178]:36182 "EHLO mail-io0-f178.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751999AbcCIUu2 (ORCPT ); Wed, 9 Mar 2016 15:50:28 -0500 MIME-Version: 1.0 In-Reply-To: <20160309090115.GA6964@davidb.org> References: <20160307000208.1bec3e7dc874489d1b4fcbb4@gmail.com> <20160307000427.c82f18670568e1e656fc9532@gmail.com> <20160309090115.GA6964@davidb.org> Date: Wed, 9 Mar 2016 12:50:26 -0800 X-Google-Sender-Auth: ZRD44xMKDuHWaIt6i2u4fXxHR-k Message-ID: Subject: Re: [kernel-hardening] [PATCH v5 2/5] GCC plugin infrastructure From: Kees Cook To: David Brown Cc: Emese Revfy , "kernel-hardening@lists.openwall.com" , linux-kbuild , PaX Team , Brad Spengler , Michal Marek , Rasmus Villemoes , Fengguang Wu , Dmitry Vyukov , LKML Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2009 Lines: 60 On Wed, Mar 9, 2016 at 1:01 AM, David Brown wrote: > On Mon, Mar 07, 2016 at 12:04:27AM +0100, Emese Revfy wrote: > >> This patch allows to build the whole kernel with GCC plugins. It was >> ported from >> grsecurity/PaX. The infrastructure supports building out-of-tree modules >> and >> building in a separate directory. Cross-compilation is supported too but >> currently only the x86 architecture enables plugins. > > > I've tested this with both ARM and ARM64. There are some missing > headers in the arm64 gcc, reported here: > https://bugs.linaro.org/show_bug.cgi?id=2123 (also upstream), but this > should work once that is fixed. > > Feel free to fold these into your patch, or, if you prefer, I can send > out separate patches for them. Ah-ha, great! Thanks for testing! Emese, if you're not interested in carrying this, I can add it to my tree. -Kees > > Signed-off-by: David Brown > > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig > index 4f799e5..67ee8e3 100644 > --- a/arch/arm/Kconfig > +++ b/arch/arm/Kconfig > @@ -54,6 +54,7 @@ config ARM > select HAVE_FUNCTION_GRAPH_TRACER if (!THUMB2_KERNEL) > select HAVE_FUNCTION_TRACER if (!XIP_KERNEL) > select HAVE_GENERIC_DMA_COHERENT > + select HAVE_GCC_PLUGINS > select HAVE_HW_BREAKPOINT if (PERF_EVENTS && (CPU_V6 || CPU_V6K || > CPU_V7)) > select HAVE_IDE if PCI || ISA || PCMCIA > select HAVE_IRQ_TIME_ACCOUNTING > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 8cc6228..6d6e4f8 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -70,6 +70,7 @@ config ARM64 > select HAVE_FTRACE_MCOUNT_RECORD > select HAVE_FUNCTION_TRACER > select HAVE_FUNCTION_GRAPH_TRACER > + select HAVE_GCC_PLUGINS > select HAVE_GENERIC_DMA_COHERENT > select HAVE_HW_BREAKPOINT if PERF_EVENTS > select HAVE_IRQ_TIME_ACCOUNTING > -- -- Kees Cook Chrome OS & Brillo Security