| From 7269e59e48cf66de9a974a5cd0d3cc2eeb86e2ca Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 17 Jul 2019 11:06:26 -0500 |
| Subject: kbuild: add -fcf-protection=none when using retpoline flags |
| |
| From: Seth Forshee <seth.forshee@canonical.com> |
| |
| [ Upstream commit 29be86d7f9cb18df4123f309ac7857570513e8bc ] |
| |
| The gcc -fcf-protection=branch option is not compatible with |
| -mindirect-branch=thunk-extern. The latter is used when |
| CONFIG_RETPOLINE is selected, and this will fail to build with |
| a gcc which has -fcf-protection=branch enabled by default. Adding |
| -fcf-protection=none when building with retpoline enabled |
| prevents such build failures. |
| |
| Signed-off-by: Seth Forshee <seth.forshee@canonical.com> |
| Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| Makefile | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| diff --git a/Makefile b/Makefile |
| index 61660387eb34b..52aaa6150099e 100644 |
| --- a/Makefile |
| +++ b/Makefile |
| @@ -843,6 +843,12 @@ KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init) |
| # change __FILE__ to the relative path from the srctree |
| KBUILD_CFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=) |
| |
| +# ensure -fcf-protection is disabled when using retpoline as it is |
| +# incompatible with -mindirect-branch=thunk-extern |
| +ifdef CONFIG_RETPOLINE |
| +KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none) |
| +endif |
| + |
| # use the deterministic mode of AR if available |
| KBUILD_ARFLAGS := $(call ar-option,D) |
| |
| -- |
| 2.20.1 |
| |