lkml.org 
[lkml]   [2014]   [Feb]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH] Makefile: Unset stack-protector gcc flag if it is not supported
    From
    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.

    --
    Thanks,
    //richard


    \
     
     \ /
      Last update: 2014-02-20 14:21    [W:3.341 / U:0.480 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site