On Wed, Jul 17, 2019 at 1:20 AM Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote: > > On Tue, Jul 16, 2019 at 07:42:49AM -0500, Seth Forshee wrote: > > On Tue, Jul 16, 2019 at 03:57:24PM +0900, Masahiro Yamada wrote: > > > (+ Josh Poimboeuf) > > > > > > On Tue, Jul 16, 2019 at 8:44 AM kbuild test robot <lkp@xxxxxxxxx> wrote: > > > > > > > > tree: https://kernel.googlesource.com/pub/scm/linux/kernel/git/masahiroy/linux-kbuild.git kbuild > > > > head: 0ff0c3753e06c0420c80dac1b0187a442b372acb > > > > commit: 2eaf4e87ba258cc3f27e486cdf32d5ba76303c6f [5/19] kbuild: add -fcf-protection=none to retpoline flags > > > > config: x86_64-randconfig-s2-07160214 (attached as .config) > > > > compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4 > > > > reproduce: > > > > git checkout 2eaf4e87ba258cc3f27e486cdf32d5ba76303c6f > > > > # save the attached .config to linux build tree > > > > make ARCH=x86_64 > > > > > > 0-day bot reports objtool warnings with the following applied: > > > https://patchwork.kernel.org/patch/11037379/ > > > > > > I have no idea about objtool. > > > > > > Is it better to drop this patch for now? > > > > I'm surprised that the change would have any impact on a build with > > gcc-4.9, since -fcf-protection seems to have been introduced in gcc-8. I > > guess there's no full build log that would let us see the actual flags > > passed to the compiler. > > > > I'll try to reproduce this result. If you think the patch should be > > dropped in the meantime, that's fine. > > The problem with this patch is that it's breaking the following check in > arch/x86/Makefile. GCC 4.9 doesn't support retpolines, so it's supposed > to fail with the below error. > > ifdef CONFIG_RETPOLINE > ifeq ($(RETPOLINE_CFLAGS),) > @echo "You are building kernel with non-retpoline compiler." >&2 > @echo "Please update your compiler." >&2 > @false > endif > endif > > Maybe the flags should be placed in another variable other than > RETPOLINE_CFLAGS. Josh, Thanks. You are right. Seth, I think you can add the flag to KBUILD_CFLAGS. If you want to make sure this does not affect non-retpoline build, you can surround the code with ifdef. ifdef CONFIG_RETPOLINE KBUILD_CFLAGS += $(call cc-option,-fcf-protection=none) endif -- Best Regards Masahiro Yamada