Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754818AbaBTNxS (ORCPT ); Thu, 20 Feb 2014 08:53:18 -0500 Received: from multi.imgtec.com ([194.200.65.239]:47610 "EHLO multi.imgtec.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754333AbaBTNxR (ORCPT ); Thu, 20 Feb 2014 08:53:17 -0500 Message-ID: <530608E0.90805@imgtec.com> Date: Thu, 20 Feb 2014 13:53:36 +0000 From: Markos Chandras User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: Richard Weinberger CC: LKML , Michal Marek , Subject: Re: [PATCH] Makefile: Unset stack-protector gcc flag if it is not supported References: <1391793327-9578-1-git-send-email-markos.chandras@imgtec.com> <5305F928.5070600@imgtec.com> In-Reply-To: Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [192.168.154.47] X-SEF-Processed: 7_3_0_01192__2014_02_20_13_53_04 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/20/2014 12:53 PM, Richard Weinberger wrote: > On Thu, Feb 20, 2014 at 1:46 PM, Markos Chandras > wrote: >> On 02/07/2014 05:15 PM, Markos Chandras wrote: >>> >>> In case the compiler does not support the stack-protector option, >>> unset the flag to avoid build failures. Printing a warning is enough >>> to let the user know that this flag will not be used. >>> Fixes the following build problem when using a toolchain which does >>> not support the -fstack-protector-strong flag: >>> >>> Makefile:614: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: >>> -fstack-protector-strong not supported by compiler >>> mips-linux-gnu-gcc: error: unrecognized command line option >>> '-fstack-protector-strong' >>> scripts/Makefile.build:308: recipe for target 'scripts/mod/empty.o' failed >>> make[2]: *** [scripts/mod/empty.o] Error 1 >>> make[2]: *** Waiting for unfinished jobs.... >>> scripts/Makefile.build:455: recipe for target 'scripts/mod' failed >>> >>> Cc: Michal Marek >>> Cc: linux-kbuild@vger.kernel.org >>> Signed-off-by: Markos Chandras >>> --- >>> Makefile | 2 ++ >>> 1 file changed, 2 insertions(+) >>> >>> diff --git a/Makefile b/Makefile >>> index 606ef7c..63a5333 100644 >>> --- a/Makefile >>> +++ b/Makefile >>> @@ -607,12 +607,14 @@ ifdef CONFIG_CC_STACKPROTECTOR_REGULAR >>> ifeq ($(call cc-option, $(stackp-flag)),) >>> $(warning Cannot use CONFIG_CC_STACKPROTECTOR: \ >>> -fstack-protector not supported by compiler)) >>> + stackp-flag := >>> endif >>> else ifdef CONFIG_CC_STACKPROTECTOR_STRONG >>> stackp-flag := -fstack-protector-strong >>> ifeq ($(call cc-option, $(stackp-flag)),) >>> $(warning Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: \ >>> -fstack-protector-strong not supported by compiler) >>> + stackp-flag := >>> endif >>> else >>> # Force off for distro compilers that enable stack protector by >>> default. >>> >> >> Ping again? > > This is by design. We want the build fail if > CONFIG_CC_STACKPROTECTOR_STRONG is set > but the toolchain does not support it. > Otherwise we could end up with a kernel without stackprotector even if > the config symbol is set. > Hi Richard, Then maybe the $(warning...) should be converted to $(error...)? Because it's not really a warning if the build failure is expected to happen. -- markos -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/