Messages in this thread | | | Date | Thu, 20 Feb 2014 13:53:36 +0000 | From | Markos Chandras <> | Subject | Re: [PATCH] Makefile: Unset stack-protector gcc flag if it is not supported |
| |
On 02/20/2014 12:53 PM, Richard Weinberger wrote: > On Thu, Feb 20, 2014 at 1:46 PM, Markos Chandras > <Markos.Chandras@imgtec.com> 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 <mmarek@suse.cz> >>> Cc: linux-kbuild@vger.kernel.org >>> Signed-off-by: Markos Chandras <markos.chandras@imgtec.com> >>> --- >>> 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
| |