From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751964AbdBAXE3 (ORCPT ); Wed, 1 Feb 2017 18:04:29 -0500 Received: from mail-pf0-f173.google.com ([209.85.192.173]:33835 "EHLO mail-pf0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751788AbdBAXE1 (ORCPT ); Wed, 1 Feb 2017 18:04:27 -0500 Date: Wed, 1 Feb 2017 15:04:25 -0800 From: Kees Cook To: linux-kernel@vger.kernel.org Cc: Michal Marek , linux-kbuild@vger.kernel.org Subject: [PATCH] Kbuild: support designated_init attribute Message-ID: <20170201230425.GA75891@beast> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If a structure is marked with __attribute__((designated_init)) from GCC or Sparse, it needs to have all static initializers using designated initialization. Fail the build for any missing cases. This attribute will be used by the randstruct plugin to make sure randomized structures are being correctly initialized. Signed-off-by: Kees Cook --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index 96b27a888285..d4e0550e7abd 100644 --- a/Makefile +++ b/Makefile @@ -793,6 +793,9 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=date-time) # enforce correct pointer usage KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types) +# Require designated initializers for all marked structures +KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init) + # use the deterministic mode of AR if available KBUILD_ARFLAGS := $(call ar-option,D) -- 2.7.4 -- Kees Cook Pixel Security