[PATCH] um: fix stub exe build with CONFIG_GCOV
Nathan Chancellor
nathan at kernel.org
Sun Oct 27 15:09:13 PDT 2024
On Fri, Oct 25, 2024 at 10:27:01AM +0200, Johannes Berg wrote:
> From: Johannes Berg <johannes.berg at intel.com>
>
> CONFIG_GCOV is special and only in UML since it builds the
> kernel with a "userspace" option. This is fine, but the stub
> is even more special and not really a full userspace process,
> so it then fails to link as reported.
>
> For good measure, also remove the GPROF options, even though
> they don't seem to cause build failures now.
>
> To be able to do this, export the specific options (GCOV_OPT
> and GPROF_OPT) but rename them so there's less chance of any
> conflicts.
>
> Reported-by: kernel test robot <lkp at intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202410242238.SXhs2kQ4-lkp@intel.com/
> Fixes: 32e8eaf263d9 ("um: use execveat to create userspace MMs")
> Signed-off-by: Johannes Berg <johannes.berg at intel.com>
Reviewed-by: Nathan Chancellor <nathan at kernel.org>
Tested-by: Nathan Chancellor <nathan at kernel.org>
> ---
> arch/um/Makefile-skas | 14 +++++++-------
> arch/um/kernel/skas/Makefile | 2 +-
> 2 files changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/arch/um/Makefile-skas b/arch/um/Makefile-skas
> index 67323b028999..1a27e65bcb9c 100644
> --- a/arch/um/Makefile-skas
> +++ b/arch/um/Makefile-skas
> @@ -3,15 +3,15 @@
> # Licensed under the GPL
> #
>
> -GPROF_OPT += -pg
> +export UM_GPROF_OPT += -pg
>
> ifdef CONFIG_CC_IS_CLANG
> -GCOV_OPT += -fprofile-instr-generate -fcoverage-mapping
> +export UM_GCOV_OPT += -fprofile-instr-generate -fcoverage-mapping
> else
> -GCOV_OPT += -fprofile-arcs -ftest-coverage
> +export UM_GCOV_OPT += -fprofile-arcs -ftest-coverage
> endif
>
> -CFLAGS-$(CONFIG_GCOV) += $(GCOV_OPT)
> -CFLAGS-$(CONFIG_GPROF) += $(GPROF_OPT)
> -LINK-$(CONFIG_GCOV) += $(GCOV_OPT)
> -LINK-$(CONFIG_GPROF) += $(GPROF_OPT)
> +CFLAGS-$(CONFIG_GCOV) += $(UM_GCOV_OPT)
> +CFLAGS-$(CONFIG_GPROF) += $(UM_GPROF_OPT)
> +LINK-$(CONFIG_GCOV) += $(UM_GCOV_OPT)
> +LINK-$(CONFIG_GPROF) += $(UM_GPROF_OPT)
> diff --git a/arch/um/kernel/skas/Makefile b/arch/um/kernel/skas/Makefile
> index f6a219074772..3384be42691f 100644
> --- a/arch/um/kernel/skas/Makefile
> +++ b/arch/um/kernel/skas/Makefile
> @@ -24,7 +24,7 @@ $(obj)/stub_exe: $(obj)/stub_exe.dbg FORCE
>
> quiet_cmd_stub_exe = STUB_EXE $@
> cmd_stub_exe = $(CC) -nostdlib -o $@ \
> - $(KBUILD_CFLAGS) $(STUB_EXE_LDFLAGS) \
> + $(filter-out $(UM_GPROF_OPT) $(UM_GCOV_OPT),$(KBUILD_CFLAGS)) $(STUB_EXE_LDFLAGS) \
Not that it matters much but it might be more readable to have
$(STUB_EXE_LDFLAGS) on its own line now.
> $(filter %.o,$^)
>
> STUB_EXE_LDFLAGS = -Wl,-n -static
> --
> 2.47.0
>
More information about the linux-um
mailing list